[工学]数据库3章.ppt

  1. 1、本文档共106页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]数据库3章

3.8 过程SQL----SQL3的编程扩充 例:通过循环变量i来控制n增加的次数并输出结果。 SET SERVEROUTPUT ON DECLARE n INTEGER :=80; i INTEGER :=0; BEGIN FOR i IN 1..10 LOOP n:=n+1; END LOOP; DBMS_OUTPUT.PUT_LINE(n的值:||TO_CHAR(n)); END; 3.8 过程SQL----SQL3的编程扩充 Oracle提供了四种类型的可存储的命名程序块: 存储过程、函数、包和触发器。 存储过程是一个PL/SQL程序块,可有多个参数作为输入或输出源。它不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用。 可通过SQL语句创建、重命名、执行和删除存储过程。 创建存储过程 CREATEP OR REPLACE PROCEDURE 过程名 [(参数1[,参数2,...])] //过程首部 AS PL/SQL块; //存储过程体 调用存储过程 CALL PROCEDURE过程名([实参1,实参2…]) 3.8 过程SQL----SQL3的编程扩充 例: 一个简单的存储过程。 设表:product(pno,…standard_price,sale_price),建立一设置出售价格的过程, 标准价为400美元或更高的产品降价10%,低于400美元的产品降价15%。 CREATE OR REPLACE PROCDEDURE p-sale AS BEGIN UPDATE PRODUCT SET sale_price=0.90*standard_price WHERE standard_price=400; UPDATE PRODUCT SET sale_price=0.85*standard_price WHERE standard_price400; END; 3.8 过程SQL----SQL3的编程扩充 触发器(trigger):与一个表或数据库事件联系在一起,当一个触发器事件发生时,定义在表上的触发器被触发。触发器是一种特殊的存储过程,主要用于多表之间的消息传递。 包(package):是被组合在一起的相关对象的集合。当包中任何函数或存储过程被调用,包就被加载到内存中,这将大大加快包中程序的访问速度。 包主要是对一组功能相近的过程和函数进行封装。包由两个部分组成:规范和包体,规范描述变量、常量、游标和子程序,包体完全定义子程序和游标。 3.8 过程SQL----SQL3的编程扩充 PL/SQL程序块的区别 程序块 描 述 应用环境 存储过程 、函数 可接受参数并返回结果的PL/SQL 块,存储在服务器端,可被重复调用 任何客户端和 服务器环境 包 有名PL/SQL块,是相关过程、函数、标识符的集合,存储在服务器端,可被重复调用。 任何客户端和 服务器环境 数据库 触发器 与数据库表相关的PL/SQL块, 存储在服务器端,在客户与服务器端的触发事件发生时自动触发。 任何客户端和 服务器环境 应用 触发器 与一个应用事件相关的PL/SQL块, 存储在应用程序中,在应用程序的触发事件发生时自动触发。 各种工具 3.9 数据库访问中间件 一、中间件的产生及概念 所谓中间件就是分布式环境中保证操作系统、通信协议、数据库等之间进行对话、互操作的软件系统。 中间件用于:隐藏各种复杂性、屏蔽各种系统间差异。 ①新的软硬件平台不断推出,需要使它们之间的信息共享; ②新的应用需求相继出现,需要新的方法将不同环境中的应用集成起来; ③网络应用带来的安全问题。 中间件分类: 终端仿真/屏幕转换中间件 数据库访问中间件 远程过程调用中间件 面向消息中间件 分布式事务处理中间件 对象调用中间件 3.9 数据库访问中间件 二、数据库访问中间件 造成不同DBMS中数据不能完全共享的原因: (1)各个厂商支持的SQL版本不同或者对标准SQL做了特殊的扩展 如微软的SQL Server使用的是Transaction-SQL,而Oracle用的是PL/SQL。 (2)各个厂商的DBMS在客户端和服务器之间所使用的通信协议不同 SQL标准只对查询语言进行了规定,但是对C/S方式下的通信协议没有进行规定。 数据库访问中间件的作用:屏蔽不同DBMS之间的差异(包括查询语言和

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档