实验六 数据库的完整性

实验六 数据库的完整性
实验六 数据库的完整性

《数据库系统原理》实验报告六

题目:实验六数据库的完整性

学号: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

相关主题
相关文档
最新文档