《数据库原理与应用》实验模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理与应用》实验报告
实验序号:实验项目名称:完整性约束与触发器
学号姓名专业、班
实验地点指导教师实验时间
一、实验目的
1、认识完整性约束对数据库的重要性
2、掌握实体完整性的创建、修改、维护
3、掌握域完整性的创建、修改、维护
4、掌握参照完整性的创建、修改、维护
5、掌握用户定义的完整性的创建、修改、维护
6、掌握交互式创建触发器的方法
7、掌握使用T-SQL创建触发器的方法
8、掌握触发器的执行方法
二、实验设备(环境)及要求
Virtualpc+SQLServer2005
三、实验内容与步骤
5.1 实体完整性约束
(1)交互式为数据库表S创建PRIMARY KEY 约束
(2)交互式创建数据库表TEST_SC,并创建PRIMARY KEY 约束,TEST_SC 表的结构定义如下:
表名:TEST_SC.
包含的列如下:
学号:SNO CHAR(2);
课号:CNO CHAR(2);
成绩:SCORE TINYINT;
主键:(SNO,CNO);
(3)用SQL为现有表T在TNO 列上创建PRIMARY KEY约束
(4)用SQL创建数据库表TEST_C,并以列约束形式创建PRIMARY KEY约束。
TEST_C表的结构定义如下:
表名:TEST_C.
包含的列如下:
课号:CNO CHAR(2)
课名:CN CHAR(10)
课时:CT TINYINT
主键:CNO;
主键约束名:PK_TEST_C.
(5)用SQL创建数据库表TEST_TC,并以表约束形式创建PRIMARY KEY约束。TEST_TC 表的结构定义如下:
表名:TEST_TC
包含的列如下:
教师号:TNO CHAR(2)
课号:CNO CHAR(2)
主键:(TNO,CNO)
主键约束名:PK_TEST_TC.
(6)交互式为现有表TEST_TC中的CNO和TNO列创建“UNIQUE约束”
(7)用SQL为现有表C中的CN列创建“UNIQUE约束”
(8)交互式为现有表TEST_SC增加新列ID_SC,并创建此列属性为IDENTITY
(9)用SQL为现有表TEST_TC增加新列ID_TC,并创建此列属性为IDENTITY.
(10)交互式删除现有表TEST_SC的主键PK_TEST_SC并取消ID_SC列的标识属性。
(11)用SQL删除表C中CN列的UNIQUE约束UNIQUE_C.
5.2 域完整性约束
(1)交互式为现有数据库表T创建DEFAULT和CHECK约束。
要求:CHECK约束对已有数据不做检查。
①性别列SEX的DEFAULT约束:DEFAULT=‘男’
② PROF列与COMM列之间限定取值关系的CHECK约束。要求此约束对表
T中已有数据不做检查。
(2)用SQL为现有数据库表S创建CHECK约束。要求:本科生的年龄限制在14~40岁之间,此约束对表S中已有数据做检查。
(3)用SQL创建一数据库表TEST_S,包含DEFAULT和CHECK约束。表TEST_S 的结构定义如表4-2所示。(P77)
(4)用SQL删除表T中列PROF和COMM之间的CHECK约束CHECK_T. (5)交互式删除表TEST_S中列SEX的DEFAULT约束及列AGE的CHECK约束。
5.3 参照完整性约束
(1)交互式创建表S与表SC之间的参照关系。表S与表SC通过外键SNO 实现参照完整性约束(约束名采用系统默认):子表SC中SNO的取值要参
照主表S中SNO的取值。要求:取消“创建中检查现有数据”,选择“级联更新相关字段”。
(2)用SQL创建表T与表TC之间的参照关系。表T与表TC通过外键TNO 实现参照完整性约束FK_T_TC:子表TC中TNO的取值要参照主表T中TNO的取值。要求:取消“创建中检查现有数据”,选择“级联删除相关记录”。
(3)创建数据库jxsk中5个表之间的关联关系图。
(4)交互式删除表C和表TC之间的参照关系。
5.4 创建和执行触发器
(1)交互式为数据库表S创建一级联更新触发器TRIGGER_S.要求:若修改S表中一学生的学号,则SC表中与该学生相关的学号自动修改。(2)交互式为数据库表SC创建一限制更新触发器TRIGGER_SC。要求:若修改SC表中以记录的学号,则要检查表S中是否存在与该学号相同的记录,若存在则不许修改,若不存在则可修改。
(3)用SQL为数据库表SC创建一触发器Score_SC_TRI.要求:当插入一个记录或修改成绩时,确保此记录的成绩在0~100分之间。
(4)用SQL为数据库表C创建一级联删除触发器TRIGGER_DC。要求:从C 表中删除某课程信息时,同时删除SC表中与此课程相关的选课记录。
5.5 修改触发器
(1)交互式修改触发器TRIGGER_S。要求:若删除数据库表S中某一个学生的记录信息,则自动删除SC表中与该学生相关的记录信息。
(2)用SQL修改数据库表C的触发器TRIGGER_DC。要求:从数据库表C中删除某课程信息时,同时删除数据库表SC和TC中与此课程相关的记录。
5.6 删除触发器
(1)交互式删除数据库表S的触发器TRIGGER_S.
(2)用SQL删除数据库表C的触发器TRIGGER_DC.
四、实验结果与数据处理
5.1 实体完整性约束
(1)交互式为数据库表S创建PRIMARY KEY 约束
(2)交互式创建数据库表TEST_SC,并创建PRIMARY KEY 约束,TEST_SC 表的结构定义如下: