ImageVerifierCode 换一换
格式:PPT , 页数:65 ,大小:629.50KB ,
资源ID:2701651      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2701651.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(常熟理工数据库原理教程PPT-05.ppt)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

常熟理工数据库原理教程PPT-05.ppt

1、数据库原理与应用数据库原理与应用数据库系统概论第四版王 珊 萨师煊第第5章章 数据库完整性数据库完整性数据库完整性机制触发器存储过程第第5章章 数据库完整性数据库完整性 数据库的完整性是指数据的数据库的完整性是指数据的正确性正确性和和相容性相容性。完完整整性性检检查查和和控控制制的的防防范范对对象象是是不不合合语语义义的的、不不正正确的数据。确的数据。DBMSDBMS对完整性的维护机制:对完整性的维护机制:1 1、提供定义完整性约束条件的机制、提供定义完整性约束条件的机制 2 2、提供完整性检查的方法、提供完整性检查的方法 3 3、违约处理、违约处理5.1 实体完整性实体完整性1、实体完整性定

2、义PRIMARY KEY单属性构成的码有两种说明方法单属性构成的码有两种说明方法 定义为列级约束条件定义为表级约束条件多个属性构成的码只有一种说明方法多个属性构成的码只有一种说明方法定义为表级约束条件 5.1 实体完整性(续)实体完整性(续)如:如:CREATE TABLE Student(Sno CHAR(9)PRIMARY KEY,/*在列级定义主码*/Sname CHAR(20)NOT NULL,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20);5.1 实体完整性(续)实体完整性(续)如:如:CREATE TABLE Student(Sno CHAR(9

3、),Sname CHAR(20)NOT NULL,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20),PRIMARY KEY(Sno)/*在表级定义主码*/);5.1 实体完整性(续)实体完整性(续)如:如:CREATE TABLE SC(Sno CHAR(9)NOT NULL,Cno CHAR(4)NOT NULL,Grade SMALLINT,PRIMARY KEY(Sno,Cno)/*只能在表级定义主码*/);5.1 实体完整性(续)实体完整性(续)2、实体完整性检查和违约处理插插入入记记录录或或对对主主码码列列进进行行更更新新操操作作时时,按按照照实实体

4、完整性规则自动进行检查。包括:体完整性规则自动进行检查。包括:检查主码值是否唯一,如果不唯一则拒绝插入或修改。检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。检查方法:全表扫描(耗时),索引检查方法:全表扫描(耗时),索引5.2 参照完整性参照完整性可能破坏参照完整性的情况及违约处理被参照表被参照表(如如Student)Student)参照表参照表(如如SC)SC)违约处理违约处理可能破坏参照完整性可能破坏参照完整性插入元组插入元组拒绝拒绝可能破坏参照完整性可能破坏参照完整性修改外码值修改外码值拒绝拒绝删除元组删除元组可能破坏参照完整性可能破坏参照完整性拒绝拒绝/级连删除级连删除/

5、设置为空值设置为空值修改主码值修改主码值可能破坏参照完整性可能破坏参照完整性拒绝拒绝/级连修改级连修改/设置为空值设置为空值5.2 参照完整性(续)参照完整性(续)1、参照完整性定义FOREIGN KEY (属性列)/*定义列为外码*/REFERENCES 表名(主码)/*参照哪些表的主码*/2、参照完整性检查和处理 拒绝拒绝(NO ACTION)执行执行默认策略 级联级联(CASCADE)操作操作 设置为空值(设置为空值(SET-NULL)对于参照完整性,除了应该定义外码,还应定义外码列是否允许空值。5.2 参照完整性(续)参照完整性(续)如:如:CREATE TABLE SC(Sno CH

6、AR(9)NOT NULL,Cno CHAR(4)NOT NULL,Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno);5.2 参照完整性(续)参照完整性(续)如:如:CREATE TABLE SC(Sno CHAR(9)NOT NULL,Cno CHAR(4)NOT NULL,Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(

7、Sno)ON DELETE CASCADE /*删除Student记录时级联删除SC相应记录*/ON UPDATE CASCADE,/*更新Student记录时级联更新SC相应记录*/FOREIGN KEY(Cno)REFERENCES Course(Cno)ON DELETE NO ACTION /*删除Course记录使与SC不一致则拒绝删除*/ON UPDATE CASCADE /*更新Course的Cno时级联更新SC相应记录*/);5.3 用户自定义完整性用户自定义完整性1、不允许取空值NOT NULL 2、列值唯一UNIQUE3、CHECK子句CHECK(约束条件表达式)4、违约处

8、理方式拒绝5.3 用户自定义完整性(续)用户自定义完整性(续)如:如:CREATE TABLE SC(Sno CHAR(9)NOT NULL,/*不允许取空值*/Cno CHAR(4)NOT NULL,/*不允许取空值*/Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno);5.3 用户自定义完整性(续)用户自定义完整性(续)如:如:CREATE TABLE DEPT(Deptno NUMERIC(2),Dname CH

9、AR(9)UNIQUE,/*列值唯一*/Location CHAR(10),PRIMARY KEY(Deptno);5.3 用户自定义完整性(续)用户自定义完整性(续)如:如:CREATE TABLE Student(Sno CHAR(9)PRIMARY KEY,Sname CHAR(20)NOT NULL,Ssex CHAR(2)CHECK(Ssex IN男,女,),/*Ssex属性只允许取男或女*/Sage SMALLINT,Sdept CHAR(20);5.3 用户自定义完整性(续)用户自定义完整性(续)如:如:CREATE TABLE SC(Sno CHAR(9)NOT NULL,Cn

10、o CHAR(4)NOT NULL,Grade SMALLINT CHECK(Grade=0 AND Grade=100),/*Grade只能取0-100之间的整数*/PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno);5.3 用户自定义完整性(续)用户自定义完整性(续)如:如:CREATE TABLE Student(Sno CHAR(9),Sname CHAR(20)NOT NULL,Ssex CHAR(2)Sage SMALLINT,Sdep

11、t CHAR(20),PRIMARY KEY(Sno),CHECK(Ssex=女 OR Sname NOT LIKE Ms.%)/*元组上的约束条件定义*/);5.4 完整性约束命名子句完整性约束命名子句1、语法格式CONSTRAINT 如:如:CREATE TABLE Student(Sno NUMERIC(6),Sname CHAR(20)CONSTRAINT C1 NOT NULL,Ssex CHAR(2)CONSTRAINT C2 CHECK(Ssex IN(男,女),Sage SMALLINT CONSTRAINT C3 CHECK(Sage 1 beginprint Cannot

12、insertrollback transaction endUPDATE UPDATE 触发器的工作过程(续)触发器的工作过程(续)5.4 触发器(续)触发器(续)INSTEAD OF触发器可可以以在在表表和和视视图图上上定定义义INSTEAD OF触触发发器器。INSTEAD OF触触发发器器代代替替原原触触发发动动作作执执行行,增增加了视图上所能进行的更新的种类。加了视图上所能进行的更新的种类。每每个个表表上上对对每每个个触触发发动动作作(INSERT、UPDATE或或DELETE)只能定义一个只能定义一个INSTEAD OF触发器。触发器。不不能能在在具具有有WITH CHECK OPT

13、ION选选项项的的视视图图上创建上创建INSTEAD OF触发器。触发器。例6:创建一个包括学生和教师编号、姓名以及类别的视图,在视图上建立更新触发器,可通过视图更新结果返回到源基本表中。create view vw_s_t(ID,Name,Type)as SELECT gh,xm,teacher FROM js UNION SELECT xh,xm,student FROM xsCREATE TRIGGER trg_vw_s_t_updateON vw_s_tINSTEAD OF UPDATEASbegin IF UPDATE(Name)begin declare ID nvarchar(2

14、55),name nvarchar(255),type nvarchar(15)select ID=ID,name=name,type=type from inserted if type=student update xs set xm=name where xh=ID if type=teacher update js set xm=name where gh=ID endend1、插入选课记录时,检查若选课人数已满、插入选课记录时,检查若选课人数已满5人,则拒绝插入。人,则拒绝插入。2、在订单表、在订单表(ORDER)中插入或修改订购数量中插入或修改订购数量(NUM),必须满必须满足客户

15、相应等级的数量上限和下限。足客户相应等级的数量上限和下限。CUSTOMERCUSTOMERLEVELORDER练习练习 3、创创建建一一个个显显示示所所有有雇雇员员和和客客户户姓名的视图姓名的视图create view vw_AllRelativesasselect customerID as RelativeID,customerName as RelativeName,Customer as RelativeType from Customersunionselect EmployeeID as RelativeID,FirstName+LastName as RelativeName,E

16、mployee as RelativeType from EmployeesGo希望通过视图删除其中的雇员或顾客信息希望通过视图删除其中的雇员或顾客信息delete from vw_AllRelatives where relativeid=10008练习练习1、插入选课记录时,检查若该课程的选课人数已满、插入选课记录时,检查若该课程的选课人数已满5人,则人,则拒绝插入。拒绝插入。CREATE TRIGGER trg_SC_insert ON SC AFTER INSERTASIF(SELECT COUNT(*)FROM SC,INSERTED WHERE SC.CNO=INSERTED.CNO)5 BEGINPRINT 选课已满选课已满ROLLBACK transactionEND练习1:2、在订单表、在订单表(ORDER)中插入或修改订购数量中插入或修改订购数量(NUM),必须满必须满足客户相应等级的数量上限和下限。足客户相应等级的数量上限和下限。CUSTOMERCUSTOMERLEVELORDER练习2:CREATE TRIGGER CHECK_NUM ON ORDER AFTE

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1