当前位置:文档之家› 数据库 实验八 数据完整性

数据库 实验八 数据完整性

图二
(2)UNIQUE(唯一)约束
为tCourse中的Cno列创建唯一约束,则插入相同的Cno的时候,系统会提示错误,如图三所示
图三m
(3)NOT NULL(非空)约束
对于tStudent表,存在一个学号(Sno),就必须存在其相应的姓名,这时,就应该设置姓名字段不能空。
图四
(4)CHECK(检查)约束
二,实验总结:
1,实体完整性检查和违约处理
(1).检查主码值是否唯一,如果不唯一则拒绝插入或修改。
(2).检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。
2,可能破坏参照完整性的情况及违约处理
被参照表(例如Student)
参照表(例如SC)
违约处理
可能破坏参照完整性
插入元组
拒绝
可能破坏参照完整性
图七
(6)FOREIGN KEY(外键)约束
通过外键约束可以为相关联的两个表建立联系,实现数据的参照完整性,维护两个表之间数据的一致性关系
图八
由于两个表的Cno不具有一致性,tSC_tCourse'。
ODBC错误:[Microsoft][ODBC SQL Server Driver][SQL Server]ALTER TABLE语句与COLUMN FOREIGN KEY约束'FK_tSC_tCourse'冲突。该冲突发生于数据库'XK007STD11',表'tCourse', column 'Cno'。
修改外码值
拒绝
删除元组
可能破坏参照完整性
拒绝/级连删除/设置为空值
修改主码值
可能破坏参照完整性
拒绝/级连修改/设置为空值
3,用户自定义完整性
当往表中插入元组或修改属性的值时,RDBMS就检查元组上的约束条件是否被满足,如果不满足则操作被拒绝执行。
对于学生成绩的取值应该限制在0到100之间,这时就应该为成绩列创建检查约束,使其取值在正常范围内。设置过程如图五所示。
验证的结果如图六所示。
图五
图六
(5)DEFAULT(默认)约束
默认约束用来强制数据的域完整性,它为表中某列建立一个默认值,当用户插入记录时,如果没有为该列提供输入值,则系统会自动将默认值赋给该列。
《数据库系统概论》实验报告
题目:数据完整性
姓名
日期
2013-10-30
一,实验内容完成情况
(1)PRIMARY KEY(主键)约束
在tSC表中可以将Sno和Cno设置为主键,用来保证表中学生选课记录的唯一性,如图一所示。
图一
但是由于tSC表中,存在学生选课记录重复的情况,所以系统提示错误,如图二所示。
相关主题