《数据库原理与应用》实验模板

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 表的结构定义如下:

相关文档
最新文档