- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
◆ 数据库的建立和维护 包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及性能监测分析等功能。 ◆ 其它功能 包括DBMS的网络通信功能,一个DBMS与另一个DBMS或文件系统的数据转换功能;异构数据库之间的互访和互操作能力等。 * * 第 16 讲 索引、触发器和存储过程、 DBMS的基本功能和系统结构 数据库技术 一、触发器和存储过程 当对一个表执行特定的操作时,被调用或者被“触发”的SQL语句称为触发器。触发器能够依次调用SQL语句或者存储过程。 触发器是事件驱动的SQL代码,当插入、删除、修改指定的表和列中的数据时,这些代码将自动执行,因此触发器总是与特定的数据库表及特定的数据库事件(如插入(Insert)、删除(Delete)、修改(Update)等)相联系。 触发器的优点 触发器不依赖于任何客户端应用程序,也不依赖于访问数据库的语言。触发器有如下优点: 1、标准化。在整个应用上,触发器保证了数据的完整性和一致性,一旦在表上建立了触发器,它就存储在数据库中;这种方法消除了各个客户应用程序的冗余编码,便于规则发生变化时对编码进行修改; 2、高效率。触发器初始执行后,作为编译的代码执行。它的运行速度快,与在客户工作站上执行这些代码相比,在服务器上执行这些代码减少了网络通讯量和网络冲突;触发器把数据完整性代码放在服务器平台上比放在客户工作站上更有效; 3、安全性。触发器运行要有表主人的授权,但是,触发器能够被在表中插入、删除、修改记录的任何一个用户触发。任何一个应用程序或交互式子用户都无法避开触发器。 触发器的功能 触发器对于强制执行的工作是非常有用的,它主要用于下面两种情况: 1、保证数据的完整性和一致性。当规则太复杂,不能用数据定义语言(DDL)定义它们、这时使用触发器非常有效; 2、实现数据之间逻辑联系的业务规则。 例如:在职工表中插入一个新的职工记录时,业务规则要求职工的工作终止日期字段是一个空值。这个规则不能使用数据定义语言中CREATE TABLE语句定义,它需要一个触发器。 对于不能由其它手段实现的规则可考虑使用触发器,以此改善系统的效率。如:参照完整性、表或列的约束等。 触发器的类型 触发器是根据所触发事件的类型进行分类的。通常的RDBMS支持三种类型的触发器: ●插入触发器 (lnsent trigger),在表中企图插入记录时触发; ●删除触发器 (Delete trigger),在表中企图删除记录时触发; ●修改触发器 (Update trigger),在表中企图修改记录时触发。 存储过程 存储过程是从客户应用或访问数据库的语句中分离出来的。存储过程的设置大大提高了SQL语句的功能、效率和灵活性,具体表现在: 1、改善了性能。 存储过程与原始SQL语句或批处理中的SQL语句的最大区别在于它是预先编译好的,当第一次运行一个过程时,数据库服务器对它进行分析并准备好一个执行计划,最后把这个计划存储在系统表中,以后过程的每次执行都可以依据这个存储的计划,由于大部 分查询处理工作已做好,不需再花费时间进行编译,因此存储过程的执行较快。 在客户工作站上,通常调用存储过程比把一系列的SQL语句发送到数据库引擎上更有效。当一份申请首次调用存储过程时,它被编译进数据库引擎的虚拟内存中,并在内存中运行。编译后的代码,被保留在内存中以便于以后的运行,这个工作完全在数据库服务器平台上执行,该平台比客户工作站执行效率更高。 2、改善了安全性。 存储过程简化了安全机制,它可以简化对某些操作的授权。例如,假如一个用户不希望别人在他的表上使用SELECT语句,他可以写一个仅可以修改这个表的某些行或列的存储过程,然后将调用该过程的权限授给特定的用户,这样其它用户就可以通过该存储过程访问这个表。 3、减少了网络通讯量。 在客户/服务器环境下,存储过程经过编译和优化后,存储在服务器端而不是客户端。 这样,在网络上传输的只是一个远程调用和最终的执行结果,而不是一系列的SQL语句和它们的返回结果,从而大大减少了网络上的传输量,提高了系统性能。 4、完成一些难以完成的工作。 如果本地数据库服务器和远程数据库服务器都允许远程登录,那么本地数据库服务器 就可以执行其它数据库服务器上的存储过程。
原创力文档


文档评论(0)