1、数据库原理与应用课程实验数据库原理与应用实验报告题目: 数据库的完整性学号:_姓名:_教师:_实验题目数据库的完整性1、 实验内容理解以下几张表的内容,根据实际情况设计属性名、数据类型、及各种完整性约束(primary key、foreign key、not null、unique、check),用数据定义语言实现,然后设计实验数据验证约束的效果,当操作违反了完整性约束条件时,数据库管理系统是如何处理的。1、创建数据库S_T。2、新建一张学生信息表,该表至少包含学号,姓名,性别,出生日期,专业,身份证号,联系方式等属性,根据以下学生信息为每个属性选择合适的数据类型。学号姓名性别出生日期专业身份
2、证号联系方式09011101李彤女1989-6-5JK33020319890605234X654234要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique),为性别设置检查约束(check)使该属性只能取“男”或 “女”。3、新建一张专业信息表,该表至少包含专业号,专业名称,专业负责人,专业简介等属性,根据以下专业信息为每个属性选择合适的数据类型。专业号专业名称专业负责人专业简介JK计算机科学与技术女Null要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique)。4、新建一张课程信息表,
3、该表至少包含课程号,课程名称,学分,开课学期等属性,根据以下课程信息为每个属性选择合适的数据类型。课程号课程名称学分开课学期10001数据库原理35要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),为学分设置约束使该属性取值范围为1到10之间的整数。5、新建一张选课信息表,该表至少包含学号,课程号,成绩,基点等属性,根据以下选课信息为每个属性选择合适的数据类型。学号课程号成绩基点0901110110001893.0要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),为成绩设置约束使该属性取值范围为0到100之间的整数。为基点设置
4、约束使该属性取值为0或者大于等于1的值。6、修改学生信息表,选择该表中合适的属性设置外码约束(foreign key),实现表间数据的参考完整性。7、修改选课信息表,选择该表中合适的属性设置外码约束(foreign key),要求允许级联更新,但不允许级联删除。2、 实验目的与要求1、理解数据库完整性的内容以及各类约束的作用。2、掌握设置数据表中的各类约束的SQL语句。3、根据要求为数据表设计数据类型、完整性约束实现数据库的完整性,设计数据验证各类约束的效果,并根据数据库管理系统的提示分析各种出现违反完整性约束的情况。3、 实验环境已安装SQL Server 2008 企业版的计算机;具有局域
5、网环境,有固定IP;4、 实验结果与分析2、新建一张学生信息表,该表至少包含学号,姓名,性别,出生日期,专业,身份证号,联系方式等属性,根据以下学生信息为每个属性选择合适的数据类型。学号姓名性别出生日期专业身份证号联系方式09011101李彤女1989-6-5JK33020319890605234X654234要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique),为性别设置检查约束(check)使该属性只能取“男”或 “女”。create table student(sno char(9) primary key,sname varcha
6、r(20),ssex char(2) check(ssex in (男,女),sbirth date,sdept varchar(10),sid char(18) unique,sphone varchar(20)3、新建一张专业信息表,该表至少包含专业号,专业名称,专业负责人,专业简介等属性,根据以下专业信息为每个属性选择合适的数据类型。专业号专业名称专业负责人专业简介JK计算机科学与技术女Null要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique)。create table dept(dno varchar(10) primary k
7、ey,dname varchar(20) unique,drpaname varchar(20),ddescrib varchar(50)4、新建一张课程信息表,该表至少包含课程号,课程名称,学分,开课学期等属性,根据以下课程信息为每个属性选择合适的数据类型。课程号课程名称学分开课学期10001数据库原理35要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),为学分设置约束使该属性取值范围为1到10之间的整数。create table course(cno char(5) primary key,cname varchar(20),ccredit smallin
8、t check(ccredit=1 and ccredit=0 and grade=1),primary key(sno,cno)6、修改学生信息表,选择该表中合适的属性设置外码约束(foreign key),实现表间数据的参考完整性。create table student(sno char(9) primary key,sname varchar(20),ssex char(2) check(ssex in (男,女),sbirth date,sdept varchar(10),sid char(18) unique,sphone varchar(20),foreign key (sdep
9、t) references dept(dno)7、修改选课信息表,选择该表中合适的属性设置外码约束(foreign key),要求允许级联更新,但不允许级联删除。create table sc(sno char(9) not null,cno char(5) not null,grade smallint check(grade=0 and grade=1),primary key(sno,cno),foreign key(sno) references student(sno)on delete no actionon update cascade,foreign key(cno) refe
10、rences course(cno)on delete no actionon update cascade测试:表里的约束设置完后,可通过向表输入数据来检测设置的约束是否有效。请为每张表设计测试方案,检验你设置的约束是否有效。1、学生信息表insert into student values(09011101,李彤,女,1989-6-5,JK,33020319890605234X,654234) sid唯一约束:insert into student values(09011102,王城,男,1989-7-5,JK,33020319890605234X,652224)性别不再约束范围: in
11、sert into student values(09011102,王城,1,1989-7-5,JK,330203198906052221,652224)专业没有参照dept表:insert into student values(09011102,王城,男,1989-7-5,ST,330203198906052221,652224)2、专业信息表insert into dept values(JK,计算机科学与技术,张兰,NULL)insert into dept values(DK,电子科学与技术,李磊,NULL)insert into dept values(KJ,会计学,韩梅,NULL)专业名唯一约束insert into dept values(DK,计算机科学与技术,张兰,NULL)3、课程信息表insert into course values(10001,数据库原理,3,5)学分超出范围:insert into course values(10002,数据结构,11,5)4、选课信息表insert into sc values(09011101,10001,89,3)成绩超出范围:insert into sc values(09011103,10011,101,3)7
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100