数据库基本原理课件第五章PPT推荐.ppt

上传人:b****1 文档编号:14647635 上传时间:2022-10-23 格式:PPT 页数:62 大小:919.50KB
下载 相关 举报
数据库基本原理课件第五章PPT推荐.ppt_第1页
第1页 / 共62页
数据库基本原理课件第五章PPT推荐.ppt_第2页
第2页 / 共62页
数据库基本原理课件第五章PPT推荐.ppt_第3页
第3页 / 共62页
数据库基本原理课件第五章PPT推荐.ppt_第4页
第4页 / 共62页
数据库基本原理课件第五章PPT推荐.ppt_第5页
第5页 / 共62页
点击查看更多>>
下载资源
资源描述

数据库基本原理课件第五章PPT推荐.ppt

《数据库基本原理课件第五章PPT推荐.ppt》由会员分享,可在线阅读,更多相关《数据库基本原理课件第五章PPT推荐.ppt(62页珍藏版)》请在冰豆网上搜索。

数据库基本原理课件第五章PPT推荐.ppt

,2022年10月23日星期日,数据库的完整性数据的正确性和相容性数据的完整性和安全性是两个不同概念数据的完整性防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据防范对象:

不合语义的、不正确的数据数据的安全性保护数据库防止恶意的破坏和非法的存取防范对象:

非法用户和非法操作,AnIntroductiontoDatabaseSystem,数据库完整性,为维护数据库的完整性,DBMS必须:

1.提供定义完整性约束条件的机制2.提供完整性检查的方法3.违约处理,AnIntroductiontoDatabaseSystem,数据库完整性(续),5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名字句*5.5域中的完整性限制5.6触发器5.7小结,AnIntroductiontoDatabaseSystem,第五章数据库完整性,5.1.1实体完整性定义5.1.2实体完整性检查和违约处理,AnIntroductiontoDatabaseSystem,5.1实体完整性,关系模型的实体完整性CREATETABLE中用PRIMARYKEY定义单属性构成的码有两种说明方法定义为列级约束条件定义为表级约束条件对多个属性构成的码只有一种说明方法定义为表级约束条件,AnIntroductiontoDatabaseSystem,5.1.1实体完整性定义,例1将Student表中的Sno属性定义为码

(1)在列级定义主码CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,SnameCHAR(20)NOTNULL,SsexCHAR

(2),SageSMALLINT,SdeptCHAR(20);

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)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno)/*只能在表级定义主码*/);

AnIntroductiontoDatabaseSystem,实体完整性定义(续),5.1.1实体完整性定义5.1.2实体完整性检查和违约处理,AnIntroductiontoDatabaseSystem,5.1实体完整性,插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。

包括:

1.检查主码值是否唯一,如果不唯一则拒绝插入或修改2.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改,AnIntroductiontoDatabaseSystem,5.1.2实体完整性检查和违约处理,检查记录中主码值是否唯一的一种方法是进行全表扫描,AnIntroductiontoDatabaseSystem,实体完整性检查和违约处理(续),索引,AnIntroductiontoDatabaseSystem,实体完整性检查和违约处理(续),5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名字句*5.5域中的完整性限制5.6触发器5.7小结,AnIntroductiontoDatabaseSystem,第五章数据库完整性,5.2.1参照完整性定义5.2.2参照完整性检查和违约处理,AnIntroductiontoDatabaseSystem,5.2参照完整性,关系模型的参照完整性定义在CREATETABLE中用FOREIGNKEY短语定义哪些列为外码用REFERENCES短语指明这些外码参照哪些表的主码,AnIntroductiontoDatabaseSystem,5.2.1参照完整性定义,例如,关系SC中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码。

Sno,Cno分别参照引用Student表的主码和Course表的主码例3定义SC中的参照完整性CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno),/*在表级定义实体完整性*/FOREIGNKEY(Sno)REFERENCESStudent(Sno),/*在表级定义参照完整性*/FOREIGNKEY(Cno)REFERENCESCourse(Cno)/*在表级定义参照完整性*/);

AnIntroductiontoDatabaseSystem,参照完整性定义(续),5.2.1参照完整性定义5.2.2参照完整性检查和违约处理,AnIntroductiontoDatabaseSystem,5.2参照完整性,AnIntroductiontoDatabaseSystem,参照完整性检查和违约处理,可能破坏参照完整性的情况及违约处理,参照完整性违约处理1.拒绝(NOACTION)执行默认策略2.级联(CASCADE)操作3.设置为空值(SET-NULL)对于参照完整性,除了应该定义外码,还应定义外码列是否允许空值,AnIntroductiontoDatabaseSystem,违约处理,例4显式说明参照完整性的违约处理示例(非常重要!

)CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESStudent(Sno)ONDELETECASCADE/*级联删除SC表中相应的元组*/ONUPDATECASCADE,/*级联更新SC表中相应的元组*/FOREIGNKEY(Cno)REFERENCESCourse(Cno)ONDELETENOACTION/*当删除course表中的元组造成了与SC表不一致时拒绝删除*/ONUPDATECASCADE/*当更新course表中的cno时,级联更新SC表中相应的元组*/);

AnIntroductiontoDatabaseSystem,违约处理(续),5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名字句*5.5域中的完整性限制5.6触发器5.7小结,AnIntroductiontoDatabaseSystem,第五章数据库完整性,用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求RDBMS提供,而不必由应用程序承担,AnIntroductiontoDatabaseSystem,5.3用户定义的完整性,5.3.1属性上的约束条件的定义5.3.2属性上的约束条件检查和违约处理5.3.3元组上的约束条件的定义5.3.4元组上的约束条件检查和违约处理,AnIntroductiontoDatabaseSystem,5.3用户定义的完整性,CREATETABLE时定义列值非空(NOTNULL)列值唯一(UNIQUE)检查列值是否满足一个布尔表达式(CHECK),AnIntroductiontoDatabaseSystem,5.3.1属性上的约束条件的定义,1.不允许取空值例5在定义SC表时,说明Sno、Cno、Grade属性不允许取空值。

CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeSMALLINTNOTNULL,PRIMARYKEY(Sno,Cno),/*如果在表级定义实体完整性,隐含了Sno,Cno不允许取空值,则在列级不允许取空值的定义就不必写了*/);

AnIntroductiontoDatabaseSystem,属性上的约束条件的定义(续),2.列值唯一例6建立部门表DEPT,要求部门名称Dname列取值唯一,部门编号Deptno列为主码CREATETABLEDEPT(DeptnoNUMERIC

(2),DnameCHAR(9)UNIQUE,/*要求Dname列值唯一*/LocationCHAR(10),PRIMARYKEY(Deptno);

AnIntroductiontoDatabaseSystem,属性上的约束条件的定义(续),3.用CHECK短语指定列值应该满足的条件例7Student表的Ssex只允许取“男”或“女”。

CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,SnameCHAR(8)NOTNULL,SsexCHAR

(2)CHECK(SsexIN(男,女),/*性别属性Ssex只允许取男或女*/SageSMALLINT,SdeptCHAR(20);

AnIntroductiontoDatabaseSystem,属性上的约束条件的定义(续),5.3.1属性上的约束条件的定义5.3.2属性上的约束条件检查和违约处理5.3.3元组上的约束条件的定义5.3.4元组上的约束条件检查和违约处理,AnIntroductiontoDatabaseSystem,5.3用户定义的完整性,插入元组或修改属性的值时,RDBMS检查属性上的约束条件是否被满足如果不满足则操作被拒绝执行,AnIntroductiontoDatabaseSystem,5.3.2属性上的约束条件检查和违约处理,5.3.1属性上的约束条件的定义5.3.2属性上的约束条件检查和违约处理5.3.3元组上的约束条件的定义5.3.4元组上的约束条件检查和违约处理,AnIntroductiontoDatabaseSystem,5.3用户定义的完整性,在CREATETABLE时可以用CHECK短语定义元组上的约束条件,即元组级的限制同属性值限制相比,元组级的限制可以设置不同属性之间的取值的相互约束条件,AnIntroductiontoDatabaseSystem,5.3.3元组上的约束条件的定义,例9当学生的性别是男时,其名字不能以Ms.打头。

CREATETABLEStudent(SnoCHAR(9),SnameCHAR(8)NOTNULL,SsexCHAR

(2),SageSMALLINT,SdeptCHAR(20),PRIMARYKEY(Sno),CHECK(Ssex=女ORSnameNOTLIKEMs.%)/*定义了元组中Sname和Ssex两个属性值之间的约束条件*/);

性别是女性的元组都能通过该项检查,因为Ssex=女成立;

当性别是男性时,要通过检查则名字一定不能以Ms.打头,AnIntroductiontoDatabaseSystem,元组上的约束条件的定义(续),5.3.1属性上的约束条件的定义5.3.2属性上的约束条件检查和违约处理5.3.3元组上的约束条件的定义5.3.4元组上的约束条件检查和违约处理,AnIntroductiontoDatabaseSystem,5.3用户定义的完整性,插入元

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

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

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