数据库第5章(原第10章)数据库完整性课件.ppt

数据库第5章(原第10章)数据库完整性课件.ppt

ID:57001641

大小:50.00 KB

页数:19页

时间:2020-07-26

数据库第5章(原第10章)数据库完整性课件.ppt_第1页
数据库第5章(原第10章)数据库完整性课件.ppt_第2页
数据库第5章(原第10章)数据库完整性课件.ppt_第3页
数据库第5章(原第10章)数据库完整性课件.ppt_第4页
数据库第5章(原第10章)数据库完整性课件.ppt_第5页
资源描述:

《数据库第5章(原第10章)数据库完整性课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、广东工业大学计算机学院数据库系统概论AnIntroductiontoDatabaseSystem第五章数据库完整性第五章数据库完整性什么是数据库的完整性数据的正确性和相容性防止不合语义的数据进入数据库。例:学生的年龄必须是整数,取值范围为14--29;学生的性别只能是男或女;学生的学号一定是唯一的;学生所在的系必须是学校开设的系;完整性:否真实地反映现实世界区分数据的完整性和安全性数据的完整性:防止数据库中存在不符合语义的数据(不正确的数据)数据的安全性:保护数据库防止恶意的破坏和非法的存取。完整性控制机制1.完整性约束条件定义机制2.完整性检查机制3.违约处理5.1实体完整性5.1.1实体

2、完整性定义关系模型的实体完整性在CREATETABLE中用PRIMARYKEY定义,用列级完整约束或表级完整性约束条件来表达。[例1]CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR(1),SageINT,SdeptCHAR(15));5.1实体完整性[例2]建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno,Cno)为主码。CREATETABLESC(SnoCHAR(5)REFERENCESStudent(Sno),CnoCHAR(3)REFERENCE

3、SCourse(Cno),Gradeint,Primarykey(Sno,Cno));5.1实体完整性5.1.2实体完整性检查与违约处理检查方法:每当用户程序对基本表插入一条记录或者对主属性进行更新操作时,DBMS将检查1、主码值是否唯一,如果不唯一则拒绝插入或修改;2、检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。5.2参照完整性5.2.1参照完整性定义关系模型的参照完整性在CREATETABLE中用FOREIGNKEY定义外码,用REFERENCES短语指明这些外码参照了哪些主码。[例3]建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中

4、Sno和Cno为外码,分别参照了Student(Sno)和Course(Cno)。CREATETABLESC(SnoCHAR(5)REFERENCESStudent(Sno),CnoCHAR(3)REFERENCESCourse(Cno),Gradeint,Primarykey(Sno,Cno));5.2参照完整性RDBMS实现参照完整性时需要考虑四个方面的问题:1、外码能否可以接受空值:依赖于应用环境的语义,系统除应提供定义外码机制外,还提供定义外码列允许为空否的机制。学生–选课数据库中Student关系为被参照关系,其主码为Sno;SC为参照关系,外码为Sno。若SC的Sno为空值:表明

5、尚不存在的某个学生,或者某个不知学号的学生,选修了某门课程,其成绩记录在Grade中,与学校的应用环境是不相符的,因此SC的Sno列不能取空值。5.2参照完整性RDBMS实现参照完整性时需要考虑以下四个方面的问题:2、在被参照关系中删除元组时的问题:参照关系有若干元组的外码值与被删除的被参照关系的主码值相同,这时有三种不同策略:⑴级联删除:将参照关系中外码值与被参照关系中要删除元组主码值相对应的元组一起删除。⑵受限删除:当参照关系中没有任何元组的外码值与要删除的被参照关系的元组的主码值相对应时,系统才执行删除操作,否则拒绝此删除操作。(3)置空值删除:5.2参照完整性置空值删除:删除被参照关

6、系的元组,并将参照关系中与被参照关系中被删除元组主码值相等的外码值置为空值。Student(sno,sname,depno)95001张三D195002李四D2Dept(Depno,Dname)D1ISD2CS删除D1IS则95001张三D1变为95001张三NULL该删除操作也要综合语义和其他约束限制进行操作。5.2参照完整性RDBMS实现参照完整性时需要考虑以下四个方面的问题:3、在参照关系中插入元组时的问题:当参照关系插入某个元组,而被参照关系不存在相应的元组,其主码值与参照关系插入元组的外码值相同,这时可以两种策略:Student(sno,sname,depno)95001张三D19

7、5002李四D2Dept(Depno,Dname)D1ISD2CS插入95003王五D3⑴受限插入:仅当被参照关系中存在相应元组其主码值与参照关系插入元组的外码值相同时,系统才执行插入操作,否则拒绝此操作。Student(sno,sname,depno)95001张三D195002李四D2Dept(Depno,Dname)D1ISD2CS插入95003王五D3⑵递归插入:首先向被参照关系中插入相应的元组,其主

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。