实验六 数据库的完整性
![实验六 数据库的完整性](https://img.360docs.net/imge6/06xhuw0n8ml2ynnnmy7k-61.webp)
![实验六 数据库的完整性](https://img.360docs.net/imge6/06xhuw0n8ml2ynnnmy7k-f2.webp)
《数据库系统原理》实验报告六
题目:实验六数据库的完整性
学号:xxxxxxxxxxxxx 姓名:lrm_1036 日期:2010-12-28
一、实验环境:SQL server 2005
二、实验目的:
1. 熟悉通过 SQL 对数据进行完整性控制;
2. 完成上机练习。
三、实验内容与完成情况:
1. 实体完整性
(1)定义表Student(Sno, Sname, Ssex, Sage, Sdept),并将其中的Sno 属性定义为主码,如图1.1所示;
(2)定义表SC(Sno, Cno, Grade),将其中的属性Sno 和Cno 定义为主码,如图1.2所示;
图1.1 定义表Student
图1.2 定义表SC
2. 参照完整性
(1)定义表SC 的外码,其中Sno 参照表Student 的主码Sno,Cno 参照表Course 的主码Cno,如图2所示。
图2 定义表SC
3. 用户定义完整性
(1)在定义表SC 时,Sno、Cno 和Grade 属性都不允许取空值,如图3.1所示;
(2)建立部门表DEPT(Dno, Dname, Location),要求部门名称Dname 取值唯一,部门编号Dno 属性为主码,如图3.2所示;
(3)定义表Student,属性Ssex 的值只允许取“男”或“女”,如图3.4所示;
(4)定义表SC,属性Grade 的值定义在0-100 之间,如图3.3所示;
(5)定义表Student,要求当学生性别为男时,其名字不能以MS.打头,如图3.4所示。
图3.1 定义表SC
图3.2 定义表DEPT
图3.3 定义表SC(Grade)
图3.4 定义表Student
4. CONSTRAINT 完整性约束命名子句
(1)定义表Student,要求学号在0001-1000 之间,姓名不能取空值,年龄小于30,性别只能是“男”或“女”。要求全部用约束命名子句实现;
(2)修改表Student 中的完整性限制,去掉对性别的限制,并将年龄的限制由小于
30 改为小于40;
图4.1 定义表Student
图4.2 修改表Student