资源描述:
《实验五完整性和触发器设计.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、嘉应学院计算机学院2012年12月12日一、实验目的通过实验掌握完整性设计方法及触发器的原理和基本设计方法。二、实验原理数据库的完整性是指数据的正确性和相容性,可以通过触发器来维护数据库的完整性。触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。允许为任何给定的INSERT、UPDATE或DELETE语句创建多个触发器。基本语法:createtrigger触发器名on表名forinsert/update/deleteasT-sql三、实验环境Windowxpsqlserver2000二、实
2、验内容(一)完整性设计方法一、在设计表时定义约束删除数据库school,建立新数据库school11.定义约束2.检验约束插入下列记录请设计系列测试用例逐一检查每一个定义的约束是否生效例如:检查student表的主键约束是否生效,测试用例insertintostudentvalues('95001','测试','男',20,'CS')检查student表的唯一约束是否生效,测试用例insertintostudentvalues('95005','李勇','男',20,'CS')检查student表的检查约束是否生效,测试
3、用例insertintostudentvalues('95005','李刚','牛',20,'CS')方法二、在表定义完成后,添加修改约束建立新数据库school21.定义表2.添加修改约束(1).添加主键约束altertable表名addconstraint约束名primarykey(主键)(2).添加外键约束altertable从表addconstraint约束名foreignkey(属性名)references主表(属性名)(3).外键约束+级联(删除/更新)altertable从表addconstraint约束名
4、foreignkey(属性名)references主表(属性名)ONDELETECASCADE/*级联删除SC表中相应的元组*/ONUPDATECASCADE(4).添加唯一约束altertable表名addconstraint约束名unique(属性名)(5).添加默认约束altertable表名addconstraint约束名default('默认内容')for字段(6).添加检查check约束,altertable表名addconstraint约束名check(属性名约束条件)(二)触发器删除触发器droptrig
5、ger触发器名1.先了解下列触发器的设计在STUDENT表中作任何操作有什么变化?请查看MASTER数据库中的扩展存储过程xp_sendmail数据能正常插入,2.触发器设计实验(1)更新触发器设计在pubs数据库中建立下列触发器:在表sales中创建了更新触发器,在sales表中更新title_id的销售数据(qty值),将自动在titles表中更新总计的数据。注意:deleted和inserted为临时表。触发器中加入了select*fromdeleted,select*frominserted请用SQL语句在表sa
6、les中做更新操作,在titles中观察输出结果.查询更新前的数据selecttitle_id,ytd_salesfromtitleswheretitle_id='bu1032'记录查询结果测试用例updatesalessetqty=qty+100wheretitle_id='bu1032'再次运行selecttitle_id,ytd_salesfromtitleswheretitle_id='bu1032',记录结果,与前面的查询记录比较测试用例updatesalessetqty=qty-100wheretitle_i
7、d='bu1032'再次运行selecttitle_id,ytd_salesfromtitleswheretitle_id='bu1032',记录结果,与前面的查询记录比较(2)插入触发器设计在数据库school1中创建两个新表在此表创建一个触发器,确保输入的数据中,如果职称为教授,输入的工资数据如果低于4000,但将自动变为4000,同时自动在表Sal_logg中添加相关记录。在表Teacher1中,创建插入触发器在表teacher1中,创建更新触发器请设计测试用例,检验触发器是否生效。检查结果select*fromt
8、eacher1select*fromSal_logg六、结论通过本次实验学会和掌握了完整性设计方法及触发器的原理和基本设计方法,在实验的过程中按照实验的要求一步步的做,没有遇到太多的问题,实验过程比较顺利