收藏 分销(赏)

数据库实验——数据库的完整性.doc

上传人:pc****0 文档编号:5882288 上传时间:2024-11-22 格式:DOC 页数:7 大小:141.50KB
下载 相关 举报
数据库实验——数据库的完整性.doc_第1页
第1页 / 共7页
数据库实验——数据库的完整性.doc_第2页
第2页 / 共7页
点击查看更多>>
资源描述
《数据库原理与应用》课程实验 数据库原理与应用 实验报告 题目: 数据库的完整性 学号:________________ 姓名:________________ 教师:________________ 实验题目 数据库的完整性 1、 实验内容 理解以下几张表的内容,根据实际情况设计属性名、数据类型、及各种完整性约束(primary key、foreign key、not null、unique、check),用数据定义语言实现,然后设计实验数据验证约束的效果,当操作违反了完整性约束条件时,数据库管理系统是如何处理的。 1、创建数据库S_T。 2、新建一张学生信息表,该表至少包含学号,姓名,性别,出生日期,专业,身份证号,联系方式等属性,根据以下学生信息为每个属性选择合适的数据类型。 学号 姓名 性别 出生日期 专业 身份证号 联系方式 09011101 李彤 女 1989-6-5 JK 33020319890605234X 654234 要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique),为性别设置检查约束(check)使该属性只能取“男”或 “女”。 3、新建一张专业信息表,该表至少包含专业号,专业名称,专业负责人,专业简介等属性,根据以下专业信息为每个属性选择合适的数据类型。 专业号 专业名称 专业负责人 专业简介 JK 计算机科学与技术 女 Null 要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique)。 4、新建一张课程信息表,该表至少包含课程号,课程名称,学分,开课学期等属性,根据以下课程信息为每个属性选择合适的数据类型。 课程号 课程名称 学分 开课学期 10001 数据库原理 3 5 要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),为学分设置约束使该属性取值范围为1到10之间的整数。 5、新建一张选课信息表,该表至少包含学号,课程号,成绩,基点等属性,根据以下选课信息为每个属性选择合适的数据类型。 学号 课程号 成绩 基点 09011101 10001 89 3.0 要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),为成绩设置约束使该属性取值范围为0到100之间的整数。为基点设置约束使该属性取值为0或者大于等于1的值。 6、修改学生信息表,选择该表中合适的属性设置外码约束(foreign key),实现表间数据的参考完整性。 7、修改选课信息表,选择该表中合适的属性设置外码约束(foreign key),要求允许级联更新,但不允许级联删除。 2、 实验目的与要求 1、理解数据库完整性的内容以及各类约束的作用。 2、掌握设置数据表中的各类约束的SQL语句。 3、根据要求为数据表设计数据类型、完整性约束实现数据库的完整性,设计数据验证各类约束的效果,并根据数据库管理系统的提示分析各种出现违反完整性约束的情况。 3、 实验环境 已安装SQL Server 2008 企业版的计算机; 具有局域网环境,有固定IP; 4、 实验结果与分析 2、新建一张学生信息表,该表至少包含学号,姓名,性别,出生日期,专业,身份证号,联系方式等属性,根据以下学生信息为每个属性选择合适的数据类型。 学号 姓名 性别 出生日期 专业 身份证号 联系方式 09011101 李彤 女 1989-6-5 JK 33020319890605234X 654234 要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique),为性别设置检查约束(check)使该属性只能取“男”或 “女”。 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) ) 3、新建一张专业信息表,该表至少包含专业号,专业名称,专业负责人,专业简介等属性,根据以下专业信息为每个属性选择合适的数据类型。 专业号 专业名称 专业负责人 专业简介 JK 计算机科学与技术 女 Null 要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique)。 create table dept (dno varchar(10) primary key, dname varchar(20) unique, drpaname varchar(20), ddescrib varchar(50) ) 4、新建一张课程信息表,该表至少包含课程号,课程名称,学分,开课学期等属性,根据以下课程信息为每个属性选择合适的数据类型。 课程号 课程名称 学分 开课学期 10001 数据库原理 3 5 要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),为学分设置约束使该属性取值范围为1到10之间的整数。 create table course (cno char(5) primary key, cname varchar(20), ccredit smallint check(ccredit>=1 and ccredit<=10), csem smallint, ) 5、新建一张选课信息表,该表至少包含学号,课程号,成绩,基点等属性,根据以下选课信息为每个属性选择合适的数据类型。 学号 课程号 成绩 基点 09011101 10001 89 3.0 要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),为成绩设置约束使该属性取值范围为0到100之间的整数。为基点设置约束使该属性取值为0或者大于等于1的值。 create table sc (sno char(9) not null, cno char(5) not null, grade smallint check(grade>=0 and grade<=100), gradepoint smallint check(gradepoint=0 or gradepoint>=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 (sdept) 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<=100), gradepoint smallint check(gradepoint=0 or gradepoint>=1), primary key(sno,cno), foreign key(sno) references student(sno) on delete no action on update cascade, foreign key(cno) references course(cno) on delete no action on 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') 性别不再约束范围: insert 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
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 应用文书 > 心得体会

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服