欢迎来到天天文库
浏览记录
ID:41102358
大小:358.50 KB
页数:52页
时间:2019-08-16
《WindowsServer数据库课件-第05章数据库完整性(3学时)ne》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库系统概论AnIntroductiontoDatabaseSystem第五章数据库完整性1AnIntroductiontoDatabaseSystem第五章数据库完整性什么是数据库的完整性?数据的正确性和相容性防止不合语义的、不正确的数据进入数据库。例:学生的年龄必须是整数,取值在6-50间;学生的性别只能是男或女;学生的学号一定是唯一的;学生所在的系必须是学校已有的系;完整性:保证数据库能否真实地反映现实世界.区别数据完整性和安全性的两个概念。2AnIntroductiontoDatabaseSystem完整性约束条件是数据模型的组成部分,约束数据库中数据的语义。检查用户发出的
2、操作请求是否违背了完整性约束条件。操作违背了完整性约束条件,则采取一定的操作来保证数据的完整性。为保证完整性,DBMS必须做到:1.完整性约束条件定义机制2.完整性检查机制3.违约反应第五章数据库完整性3AnIntroductiontoDatabaseSystem第五章数据库完整性5.1实体完整性5.2参照完整性5.3用户定义完整性5.4完整性约束命名子句5.5触发器4AnIntroductiontoDatabaseSystem5.1实体完整性1.实体完整性定义在CREATETABLE语句中用PRIMARYKEY定义码由单字段构成:定义可以为列级或表级约束;码由多字段构成:定义只能为
3、表级约束;5AnIntroductiontoDatabaseSystem5.1实体完整性[例1]在数据库中,定义Student表的Sno属性为主码。定义在列级约束:CREATETABLEStudent(SnoCHAR(8),SnameCHAR(8),SageINT);定义在表级约束:CREATETABLEStudent(SnoCHAR(8),SnameCHAR(8),SageINT,);PRIMARYKEY,PRIMARYKEY(Sno));6AnIntroductiontoDatabaseSystem5.1实体完整性[例2]在SC表中定义(Sno,Cno)为主码。CREATETAB
4、LESC(SnoCHAR(5),CnoCHAR(2),GradeSMALLINT,PRIMARYKEY(Sno,Cno));7AnIntroductiontoDatabaseSystem5.1实体完整性2.实体完整性检查和违约处理(1)完整性检查当用户进行插入记录或修改主码时,DBMS系统自动检查:检查主码值是否惟一;检查每个主属性值是否为空。(2)违约处理拒绝插入或修改操作。8AnIntroductiontoDatabaseSystem5.1实体完整性2.实体完整性检查和违约处理(3)检查主码是否惟一的方法全表扫描依次判断表中每一个记录的主码值与插入记录的主码值是否一致。缺点:效率
5、低利用主码的B+索引优点:效率高9AnIntroductiontoDatabaseSystem5.1实体完整性keyF1F2F33………25………20………15………93………79………65………84………71………51………7………30………41………54………65………69………68………2551123066783715202530415154656869717679849310AnIntroductiontoDatabaseSystem第五章数据库完整性5.1实体完整性5.2参照完整性5.3用户定义完整性5.4完整性约束命名子句5.5触发器11AnIntroductiontoD
6、atabaseSystem5.2参照完整性1.参照完整性定义在CREATETABLE语句中:用FOREIGNKEY短语定义外码列;用REFERENCES短语指明外码参照哪个表的主码。12AnIntroductiontoDatabaseSystem5.2参照完整性[例3]在SC表中的参照完整性。CREATETABLESC(SnoCHAR(8)NOTNULL,CnoCHAR(3)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Cno)REFERENCEScourse(Cno)ONDELETECASCADE);REFERENCESs
7、tudent(Sno),13AnIntroductiontoDatabaseSystem5.2参照完整性[例3]在SC表中的参照完整性。ALTERTABLESCADDFOREIGNKEY(SNO)REFERENCESSTUDENT(SNO)14AnIntroductiontoDatabaseSystem2.参照完整性检查和违约处理对被参照表和参照表进行增、删、改操作时进行检查有四种情况可能破坏参照完整性:参照表中插入一个新元组;修改外码值;被参照表中删除一
此文档下载收益归作者所有