实验九 参照完整性 1、 实验目的 学习建立外键,以及利用 FOREIGN KEY…REFERENCES 子句以及各种约束保证参照完整性
2、 实验内容 (1) 为演示参照完整性,建立表 Cou rse,令 Cno 为其主键,并在 Stu _Union中插入数据
为下面的实验步骤做预先准备
(2) 建立表 SC,令 Sno 和 Cno 分别为参照 Stu _Union 表以及 Cou rse 表的外键,设定为级联删除,并令(Sno,Cno)为其主键
在不违反参照完整性的前提下,插入数据
(3) 演示违反参照完整性的插入数据
(4) 在 Stu _Union 中删除数据,演示级联删除
(5) 在 Cou rse 中删除数据,演示级联删除
(6) 为了演示多重级联删除,建立 Stu _Card 表,令 Stu _id 为参数 Stu _Union表的外键,令 Card_id 为其主键,并插入数据
(7) 为了演示多重级联删除,建立 ICBC_Card 表,令 Stu _card_id 为参数Stu _Union 表的外键,令 Card_id 为其主键,并插入数据
(8) 通过删除 Stu dents 表中的一条记录,演示三个表的多重级联删除
(9) 演示事务中进行多重级联删除失败的处理
修改 ICBC_Card 表的外键属性,使其变为 On delete No action,演示事务中通过删除 Stu dents表中的一条记录,多重级联删除失败,整个事务回滚到事务的初始状态
(10)演示互参考问题及其解决方法
要建立教师授课和课程指定教师听课关系的两张表,规定一个教师可以授多门课,但是每个课程只能指定一个教师去听课,所以要为两张表建立相互之间的参照关系
3、 实验步骤 以系统管理员或 sa 账号登录到 SSMS,在新建查询窗口中输入如下命令,运行并观察和记