欢迎来到天天文库
浏览记录
ID:46233908
大小:300.50 KB
页数:33页
时间:2019-11-21
《数据库原理课件-05数据库完整性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库系统概论AnIntroductiontoDatabaseSystem第五章数据库完整性1第五章数据库完整性数据库中完整性(Integrity)是指数据的正确性、有效性和相容性,防止错误的数据进入数据库。正确性指数据的合法性,例如数值型数据中只能包含数字而不能含字母。有效性指数据是否属于所定义的有效范围,如月份只能用1~12的正整数表示。相容性指表示同一事实的两个数据应相同,不一致就是不相容。2区分数据的完整性和安全性数据的完整性:保护数据以防止合法用户无意中造成的破坏。防范对象是不合语义的、不正确的数据,防止它们进入数据库
2、。数据的安全性:保护数据以防止非法用户故意造成的破坏。防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取。3完整性控制机制1.完整性约束条件定义机制2.完整性检查机制3.违约反应4完整性控制机制1、完整性约束条件定义机制完整性约束条件:数据模型的组成部分,约束数据库中数据的语义。DBMS应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入数据库中。返回5完整性控制机制2、完整性检查机制检查用户发出的操作请求是否违背了完整性约束条件。一般在INSERT、UPDATE、DELETE语句执行后开始检查,也可在事务提交
3、时检查。返回6完整性控制机制3、违约反应如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。返回7第五章数据库完整性5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名子句5.5域中的完整性限制5.6触发器85.1实体完整性5.1.1实体完整性定义5.1.2实体完整性检查和违约处理返回95.1.1实体完整性定义用CREATETABLE中的PRIMARYKEY来定义。可定义为列级约束条件和表级约束条件10实体完整性定义(续)CREATETABLEstudent(snoCHAR
4、(8)PRIMARYKEY,snameCHAR(8)notnull,ssexCHAR(2),sageSMALLINT,sdeptCHAR(20));CREATETABLEstudent(snoCHAR(8),snameCHAR(8)notnull,ssexCHAR(2),sageSMALLINT,sdeptCHAR(20),PRIMARYKEY(sno));对单属性构成的码可定义为列级约束条件也可定义为表级约束条件。[例1]将student表中的sno定义为码。11实体完整性定义(续)[例2]将SC表中的sno,cno属性组定义
5、为码。CREATETABLESC(snoCHAR(8)NOTNULL,cnoCHAR(4)NOTNULL,gradeSMALLINT,PRIMARYKEY(sno,cno));对多个属性构成的码只能定义为表级约束条件。返回125.1.2实体完整性检查和违约处理当用PRIMARYKEY短语定义了关系的主码后,每当对表做插入或对主码列更新时,RDBMS会按实体完整性规则自动做如下检查:检查主码值是否唯一,如果不唯一则拒绝插入或修改;检查主码的各个属性是否为空,只要有一个不为空就拒绝插入或修改。13实体完整性检查和违约处理(续)检查记
6、录中主码值是否唯一的方法:全表扫描。依次判断表中每条记录的主码值与将插入记录上的主码值(或修改的新主码值)是否相同。十分耗时。在主码上自动建立索引(如B+树索引)。可大大提高效率。返回145.2参照完整性5.2.1参照完整性定义在CREATETABLE中用FOREIGNKEY短语来定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。155.2参照完整性例如,关系SC中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码。Sno,Cno分别参照引用Student表的主码和Course表的主码[例
7、3]定义SC中的参照完整性CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno),/*在表级定义实体完整性*/FOREIGNKEY(Sno)REFERENCESStudent(Sno),/*在表级定义参照完整性*/FOREIGNKEY(Cno)REFERENCESCourse(Cno)/*在表级定义参照完整性*/);165.2参照完整性5.2.2参照完整性检查和违约处理表5.1可能破坏参照完整性的情况及违约处理被参照表
8、(如student)参照表(如sc)违约处理可能破坏参照完整性插入元组拒绝可能破坏参照完整性修改外码值拒绝删除元组可能破坏参照完整性拒绝/级连删除/设置为空值修改主码值可能破坏参照完整性拒绝/级连修改/设置为空值17参照完整性检查和违约处理(续)当发生不一致时,
此文档下载收益归作者所有