实验六数据库的完整性定义与检查_第1页
实验六数据库的完整性定义与检查_第2页
实验六数据库的完整性定义与检查_第3页
实验六数据库的完整性定义与检查_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验六数据库的完整性定义与检查实验冃的:1. 充分理解关系数据库中关丁数据库完整性的概念。2. 掌握实体完整性的定义和检查方法。3. 掌握参照完整性的定义和检查方法。4. 掌握用户自定义完整性的定义和检查方法。实验内容:一、在企业管理器中定义以下数据表中各字段的完整性约束(包括实体完整性、 参照完整性和用户定义完整性)。1. student表。记录学生基本信息。表1-1 student表结构列名说明数据类型约束sno学号字符串,长度为7主码sname姓名字符串,长度为10非空ssex性别字符串,长度为2取“男”或“女”sage年龄整数取值15-45sdept所在系字符串,长度为20默认为“计算

2、机系”create table dbo.student(sno char(9) primary key;sname char 8 not null,ssex char(2) check(ssex in(女t男叽sage smallint check (sage>=15 and sage<=45)z sdept char(20) default!'计算机')2. course表。记录课程信息。表1-2 course表结构列名说明数据类型约束cno课程号字符串,长度为10主码cname课程名字符串,长度为20非空ccredit学分整数取值大于0semester学期整数取

3、值大于0period学时整数取值大于0create table dbo.course(cno char(10) primary key,cname char(20) not null,ccredit smallint check(ccredit>o), semester smallint check (semester>0),period smallint check (period>0),3sc表。记录学生选修课程的信息。表1-3 sc表结构列名说明数据类型约束sno学号字符串,长度为7主屈性,引用student的外码cno课程号字符串,长度为10主屈性,引用course的

4、外码grade成绩整数取 0-100create table dbo.sc(sno char(9) not null,cno char(10) not null,gradesmallint check(grade>=0 and grade<=100),primary key (sno,cno),foreign key (sno)references student(sno),foreign key (cno)references course(cno)二、在查询编辑器中,写出创建表的语句同时写出设置实体完整性、参照完整性 和用户自定义完整性的语句。三、完整性检查(在查询编辑器中输入

5、sql语句,执行语句后,dbms自动进行 完整性的检查)1. 实体完整性检查(1) 在student表中插入一条学生记录,其中插入的学号值为表中已存在的一 个学号值,执行语句,查看结果。insertinto student (snosnamesex.sage.sdept)values ('0012','冯小楠t女,;20'z,cs,)消息2627,级别14,状态1,第1行违反了primary key约束'pk_student'o不能在对象'dbo.student*屮插入重复键。语句已终止。(2) 在sc表中插入一条学生选课记录,学号值为空

6、或课程号值为空,执行语句, 查看结果。into sc(snozcno,grade)values (";00290)消息547,级别16,状态o, ml行insert 语句与foreign key 约束芋k_sc_student“冲突。该冲突发生于数据库“studentscore”,表“dbo.student舄 column 'sno'。语句已终止。2. 参照完整性检查(1) 在sc表中插入一条学生选课记录,插入的学号值为student表屮没有的一 个学号,或插入的课程号的值为course表屮没有的一个课程号。insertinto sc(sno,cno尼rade)val

7、ues (9013:002',90)消息547,级别16,状态o, ml行insert 语句与foreign key 约束芋k_sc_student“冲突。该冲突发生于数据库“studentscore”,表“dbo.student舄 column no'o语句已终止。(2) 修改student表中某一学生的学号值,该学生在sc表中有选课记录,执行 语句,查看结果。update studentset sno=0016where sname二"何楠'消息547,级别16,状态0,第1行update 语句与reference 约束,fk_sc_studentn冲栄。

8、该冲突发生于数据库“studentscore”,表”dbo.sc蔦 column'sno'。语句已终止。3 用户自定义完整性检查(1) 在student表屮插入一条学生记录,其屮插入的年龄值为50,执行语句, 查看结果。insertinto student (snosname,ssex,sage,sdept;values ('00157)4楠,,'女t50tcs')消息547,级别16,状态0,第1行insert 语句与check 约束"ck-studentjl”冲突。该冲突发生于数据库i,studentscore, 农”dbo.student”, column 'sage'o语句己终止。(2) 在sc表中插入一条学生选课记录,其中插入的成绩值为120,执行语句, 查看结果。into sc(s no,eno .gradevalues (,0015,;2,;120,)消息547,级别16,状态o, ml行insert 语句与check 约束”ck_sc"冲突。该冲突发生于数据库"studentscore",表"dbo.sc",

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论