1、.实验七:数据完整性实验实验目的:加深对数据完整性的理解。实验内容:数据库的完整性设置。实验步骤:可视化界面的操作方法:一、实体完整性 1将student表的“sno”字段设为主键:在表设计界面中,单击左边的行选定块,选定“sno”字段,单击工具按钮设置主键。如图1所示: 图11 将“sc”表的“sno”和“cno”设置为主键:在表设计界面中,单击并按住Ctrl键拖动左边的行选定块,选定sno和cno字段,单击工具按钮设置主键。如图2所示:图2二、域完整性3. 将“ssex”字段设置为只能取“男”,“女”两值:在表设计界面,点击鼠标右键CHECK约束,添加约束,添加CK_student_sex
2、名称,然后在约束表达式框中输入“ ssex in (男,女) ”。如图3所示。图3三、参照完整性4. 将“student”表和“sc”表中的“sno”字段设为参照: 打开“sc”表的设计界面, 点击工具栏按钮, 在弹出的属性(properties)对话框中点击“新建”按钮,在“主键表(Primary key table)”下拉框中选择“student”表,在其下的字段选择框中选择“sno”,在“外键表(Foreign key table)”下拉框中选择“sc”表,在其下的字段选择框中选择“sno”,单击关闭即可。见图4。图4命令方式操作方法:一、实体完整性1将“student”表的“sno”字
3、段设为主键:当“student”表已存在则执行:当“student”表不存在则执行: 注:可用命令“drop table student”删除“student”表2. 添加一身份证号字段,设置其惟一性.(注: 操作前应删除表中的所有记录)3. 将“sc”表的“sno”和“cno”设置为主键:当“sc”表已存在则执行:当“sc”表不存在则执行:二、域完整性4. 将“ssex”字段设置为只能取“男”,“女”两值:当“student”表已存在则执行:当“student”表不存在则执行:5. 设置学号字段只能输入数字: 6. 设置身份证号的输入格式:7. 设置18位身份证号的第7位到第10位为合法的年
4、份(1900-2050)三、参照完整性 9. 设置男生的年龄必须大于22, 女生的年龄必须大于20. 10. 将“student”表和“sc”表中的“sno”字段设为参照:当“sc”表已存在则执行:当“sc”表不存在则执行:四、完整性验证1 实体完整性: 在“student”表数据浏览可视化界面中输入学号相同的两条记录将会出现错误如图5所示:图5或者在命令窗口输入下面两条命令也会出现错误提示:insert into student values(95003,张三,男,24,CS,42222919901012903X)insert into student values(95001,李四,女,2
5、1,CS,422229199510129031)图6下面的语句用来验证“sc”表中的实体完整性:insert into sc values(95002, 10,65)insert into sc values(95002, 10,90) 图72. 域完整性: 使用下面的语句验证“ssex”字段的域完整性:insert into student values(95009,张匀,大,20,CS, 42222919901012904X)3参照完整性:使用下面的语句“验证”sc表中的“sno”字段的域完整性(假设student表中没有学号为“95998”的学生记录):insert into sc values(98998, 10,98)思考: 建立课程的实体完整性, 和课程号cno的参照完整性;实验小结:.