存储过程与触发器实验

上传人:枫** 文档编号:458239401 上传时间:2023-02-11 格式:DOCX 页数:8 大小:200.03KB
返回 下载 相关 举报
存储过程与触发器实验_第1页
第1页 / 共8页
存储过程与触发器实验_第2页
第2页 / 共8页
存储过程与触发器实验_第3页
第3页 / 共8页
存储过程与触发器实验_第4页
第4页 / 共8页
存储过程与触发器实验_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《存储过程与触发器实验》由会员分享,可在线阅读,更多相关《存储过程与触发器实验(8页珍藏版)》请在金锄头文库上搜索。

1、北京邮电大学实验报告课程名称数据库系统概念实验名称实验10存储过程与触发器实验_系_班姓名_系_班姓名教师 成绩2011 年 5月 30日实验目的1理解存储过程的工作原理和作用。2掌握存储过程设置和程序设计过程。3理解触发器的工作原理和作用。4掌握触发器编写方法。实验环境采用IBM DB2或Sybase数据库管理系统作为实验平台。其中,DB2可以采用DB2 Express-C 或 DB2 V8 Enterprise。 Sybase 数据库可以采用 Sybase SQL Anywhere Studi(o SAS) 或 Sybase Adaptive Server Enterprise(ASE)。

2、实验内容一、存储过程实验1针对下面 2 个完整性约束条件,建立存储过程,实现当数据导入或更新时,可以自动修 改拥塞率、半速率话务量比例(1) 拥塞率 = 拥塞数量/呼叫数量(2) 半速率话务量比例 = 半速率话务量/全速率话务量2将存储过程添加到数据库服务器上3在客户端编写调用存储过程的主程序例如,在插入一条数据的时候,调用存储过程的程序为SOL Statementsi nsert into HuaJAuvalues (lijijij- yijijijO. 28000, 23, 7_. 7.匚 T.匚 7)execute aidResultsExecLjtion time: U .111 se

3、co nds2 record(s) inserted4运行客户端程序,调用存储过程,观察存储过程执行过程和数据更新情况单独插入一条数据:数据情况为:运行asd这个存储过程后的数据情况为:Execute asd、触发器实验1. 针对下列约束条件,分别建立1 个触发器:1)每个小区/扇区最多占用 14 个 TCH 频点,合法频点范围在1,60 之间。当向小区中新加 入频点时,如果小区中现有频点数目已达到 14个,则用新加入的频点替换现有频点中的最 小频点;当修改或新加入频点时,如果发现频点不在合法范围内,则输出提示信息,并拒 绝该操作。create trigger Pin_Dian_to_CELL

4、onPin_Dianforinsert,update asif exists(selectinserted.CellIDfrominserted,Pin_Dian,( select Pin_Dian.CellID,count(distinct Freq) as Freq_numberfromPin_Dian,CELLwherePin_Dian.CellID = CELL.CellID group by Pin_Dian.CellID) as Pin_Dian_Count_CellwhereFreq_number 14 )begindelete fromPin_DianwhereFreq=(se

5、lect min(Pin_Dian.Freq) from Pin_Dian, inserted where Pin_Dian.CellID=inserted.CellID and Pin_Dian.Freq!=inserted.Freq)print A CELL can only manage at most 14 TCH.if exists(selectinserted.Freqfrominserted,Pin_Dian,( select Pin_Dian.Freq as Freq_number fromPin_Dian,CELLwherePin_Dian.CellID = CELL.Cel

6、lID group by Pin_Dian.CellID) asPin_Dian_Count_CellwhereFreq_number60 or Freq_number1 or Bcch_number90 or Bcch_number270)beginprint A Bcch can only be between 70 and 90.rollback transactionend3) 每个小区与其邻小区的BCCH不允许相同。当修改某小区的BCCH频点值时,如果发现 修改后与其它邻区的BCCH频点相同,则输出提示信息,并拒绝该操作。create trigger CELL_to_Lin_Quon

7、 CELLfor update asif exists(selectCELL.CellID fromLin_Qu,inserted,CELL whereinserted.CellID = Lin_Qu.CEL_CellID and Lin_Qu.CellID = CELL.CellID and inserted.Bcch = CELL.Bcch)beginprint This BCCH is Already Exists,Operation Denied rollback transactionend 2将触发器添加到数据库服务器上3向数据库添加新的TCH、BCCH频点数据,或修改已有TCH、

8、BCCH频点数据,观察当 违反上述 3条约束时,触发器的执行情况。1.当插入了多于14个的TCH频点时,情况如下:2.当插入了多于60的频率的数据元组后:在已经满14的情况下成功插入了一个元组,替换掉了之前的Freq为1的情况:ins er t intu F i tl_D i:htl v:dlueE(9152, 10)ResultsCelllDFreq19152492915234391522049152895915217691523679152778915221991522210915223119152241291522513915226149152103.当插入一个BCCH为21的元组时:S

9、QL Statementsi nsei-1 int口 匚ELL y:=lLuai(9010,QVEEEE3/ KT . 14119, 121. 99999 40. 8888888. 9. 400, 21)ResultsExecLjfiijn tirrie: U.0S5 aecoridsu recordCs) insertedA CELL can only have at rriost 1 日匚匚H.4、Bcch can only be between 70 and 904.检查Bcch的值,并且更新值:SQL Statementsnip la t 屯 C ELL set E c ch= S2

10、vrh er e C ellIIl=yiJ 13ResultsExecution time: 0.219 seconds0 record(s) updatedThis BCCH is Already Exists .Operation Deried实验总结在最开始的时候,由于理解偏差,虽然在实验中没有碰见什么问题, 但是后来在做进一步实验的时候,发现存储过程不是像子函数那么简 单,经过资料查证,得知存储过程的定义为:存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句 集,是利用SQL Server所提供的Transact-SQL语言所编写的程序。 经编译后存储在数据库中。存储过程是数据库中的一个重要对象,用 户通过指定存储过程的名字并给出参数(如果该存储过程带有参数) 来执行它。存储过程是由流控制和SQL语句书写的过程,这个过程经 编译和优化后存储在数据库服务器中,存储过程可由应用程序通过一 个调用来执行,而且允许用户声明变量。同时,存储过程可以接收 和输出参数、返回执行存储过程的状态值,也可以嵌套调用。因此,存储过程可以进行类似事务的操作,比如提交和回滚等等,这 个和子函数差别很大。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号