欢迎来到天天文库
浏览记录
ID:33609662
大小:465.01 KB
页数:61页
时间:2018-05-23
《数据库原理及应用3》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西北工业大学明德学院数据库系统概论AnIntroductiontoDatabaseSystem第五章数据库完整性AnIntroductiontoDatabaseSystem数据库完整性数据库的完整性数据的正确性和相容性数据的完整性和安全性是两个不同概念数据的完整性防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据防范对象:不合语义的、不正确的数据数据的安全性保护数据库防止恶意的破坏和非法的存取防范对象:非法用户和非法操作AnIntroductiontoDatabaseSystem数据库完整性(续)为维护
2、数据库的完整性,DBMS必须:1.提供定义完整性约束条件的机制2.提供完整性检查的方法3.违约处理AnIntroductiontoDatabaseSystem第五章数据库完整性5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名字句*5.5域中的完整性限制5.6触发器5.7小结AnIntroductiontoDatabaseSystem5.1实体完整性5.1.1实体完整性定义5.1.2实体完整性检查和违约处理AnIntroductiontoDatabaseSystem5.1.1实体完整性定义关系模型
3、的实体完整性CREATETABLE中用PRIMARYKEY定义单属性构成的码有两种说明方法定义为列级约束条件定义为表级约束条件对多个属性构成的码只有一种说明方法定义为表级约束条件AnIntroductiontoDatabaseSystem实体完整性定义(续)[例1]将Student表中的Sno属性定义为码(1)在列级定义主码CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,SnameCHAR(20)NOTNULL,SsexCHAR(2),SageSMALLINT,SdeptCHAR(20))
4、;AnIntroductiontoDatabaseSystem实体完整性定义(续)(2)在表级定义主码CREATETABLEStudent(SnoCHAR(9),SnameCHAR(20)NOTNULL,SsexCHAR(2),SageSMALLINT,SdeptCHAR(20),PRIMARYKEY(Sno));AnIntroductiontoDatabaseSystem实体完整性定义(续)[例2]将SC表中的Sno,Cno属性组定义为码CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4
5、)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno)/*只能在表级定义主码*/);AnIntroductiontoDatabaseSystem5.1实体完整性5.1.1实体完整性定义5.1.2实体完整性检查和违约处理AnIntroductiontoDatabaseSystem5.1.2实体完整性检查和违约处理插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:1.检查主码值是否唯一,如果不唯一则拒绝插入或修改2.检查主码的各个属性是否为空,只要有一个为空就拒绝插入
6、或修改AnIntroductiontoDatabaseSystem实体完整性检查和违约处理(续)检查记录中主码值是否唯一的一种方法是进行全表扫描AnIntroductiontoDatabaseSystem实体完整性检查和违约处理(续)索引AnIntroductiontoDatabaseSystem第五章数据库完整性5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名字句*5.5域中的完整性限制5.6触发器5.7小结AnIntroductiontoDatabaseSystem5.2参照完整性5.2.1
7、参照完整性定义5.2.2参照完整性检查和违约处理AnIntroductiontoDatabaseSystem5.2.1参照完整性定义关系模型的参照完整性定义在CREATETABLE中用FOREIGNKEY短语定义哪些列为外码用REFERENCES短语指明这些外码参照哪些表的主码AnIntroductiontoDatabaseSystem参照完整性定义(续)例如,关系SC中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码。Sno,Cno分别参照引用Student表的主码和Course表的主码[例3]定义S
8、C中的参照完整性CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno),/*在表级定义实体完整性*/FOREIGNKEY(Sno)REFERENCESStudent(Sno),/*在表级定义参照完整性*/F
此文档下载收益归作者所有