《数据库原理及应用》实验.docx
- 文档编号:598795
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:25
- 大小:864.09KB
《数据库原理及应用》实验.docx
《《数据库原理及应用》实验.docx》由会员分享,可在线阅读,更多相关《《数据库原理及应用》实验.docx(25页珍藏版)》请在冰豆网上搜索。
《数据库原理及应用》实验
《数据库原理与应用》实验报告
实验序号:
实验项目名称:
完整性约束与触发器
学 号
姓 名
专业、班
实验地点
指导教师
实验时间
一、实验目的
1、认识完整性约束对数据库的重要性
2、掌握实体完整性的创建、修改、维护
3、掌握域完整性的创建、修改、维护
4、掌握参照完整性的创建、修改、维护
5、掌握用户定义的完整性的创建、修改、维护
6、掌握交互式创建触发器的方法
7、掌握使用T-SQL创建触发器的方法
8、掌握触发器的执行方法
二、实验设备(环境)及要求
Virtualpc+SQLServer2005
三、实验内容与步骤
5.1实体完整性约束
(1)交互式为数据库表S创建PRIMARYKEY约束
(2)交互式创建数据库表TEST_SC,并创建PRIMARYKEY约束,TEST_SC表的结构定义如下:
表名:
TEST_SC.
包含的列如下:
学号:
SNOCHAR
(2);
课号:
CNOCHAR
(2);
成绩:
SCORETINYINT;
主键:
(SNO,CNO);
(3)用SQL为现有表T在TNO列上创建PRIMARYKEY约束
(4)用SQL创建数据库表TEST_C,并以列约束形式创建PRIMARYKEY约束。
TEST_C表的结构定义如下:
表名:
TEST_C.
包含的列如下:
课号:
CNOCHAR
(2)
课名:
CNCHAR(10)
课时:
CTTINYINT
主键:
CNO;
主键约束名:
PK_TEST_C.
(5)用SQL创建数据库表TEST_TC,并以表约束形式创建PRIMARYKEY约束。
TEST_TC表的结构定义如下:
表名:
TEST_TC
包含的列如下:
教师号:
TNOCHAR
(2)
课号:
CNOCHAR
(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约束对已有数据不做检查。
1性别列SEX的DEFAULT约束:
DEFAULT=‘男’
2PROF列与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创建PRIMARYKEY约束
(2)交互式创建数据库表TEST_SC,并创建PRIMARYKEY约束,TEST_SC表的结构定义如下:
表名:
TEST_SC.
包含的列如下:
学号:
SNOCHAR
(2);
课号:
CNOCHAR
(2);
成绩:
SCORETINYINT;
主键:
(SNO,CNO);
(3)用SQL为现有表T在TNO列上创建PRIMARYKEY约束
(4)用SQL创建数据库表TEST_C,并以列约束形式创建PRIMARYKEY约束。
TEST_C表的结构定义如下:
表名:
TEST_C.
包含的列如下:
课号:
CNOCHAR
(2)
课名:
CNCHAR(10)
课时:
CTTINYINT
主键:
CNO;
主键约束名:
PK_TEST_C.
(5)用SQL创建数据库表TEST_TC,并以表约束形式创建PRIMARYKEY约束。
TEST_TC表的结构定义如下:
表名:
TEST_TC
包含的列如下:
教师号:
TNOCHAR
(2)
课号:
CNOCHAR
(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约束对已有数据不做检查。
1性别列SEX的DEFAULT约束:
DEFAULT=‘男’
2PROF列与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.
五、分析与讨论
六、教师评语
签名:
日期:
成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理及应用 数据库 原理 应用 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)