实验八数据完整性实现1.doc
文本预览下载声明
实验八 数据完整性实现
年级:信管1107专业:信息管理与信息系统学号: 姓名:
实验日期:2013年5月15日
一、实验目的
掌握关系数据模型的基本概念,了解数据模型的三要素。了解实现数据完整性的意义和实现方法。掌握使用SQL命令创建表并实现数据完整性约束。
二、实验内容
1 已知选课系统中学生、课程和选课三个实体的关系模式如下:
学生关系模式:studentx(Sno , Sname, Ssex, Sage,Sdept,Stelp)
主码:Sno
课程关系模式:Coursex(Cno,Cname,Cpno,Ccredit)
主码:Cno
选课关系模式:SCX(Sno,Cno,Grade)
主码:(Sno,Cno) 外码:Sno,Cno
其中学生关系模式中的Sno、Sname、Ssex、Sage、Sdept、Stelp分别表示学号、姓名、性别、年龄、所在系、联系电话;课程关系模式中的Cno、Cname、Cpno、Ccredit分别表示课程号、课程名、前驱课号、课程学分;选课关系模式中的Sno、Cno、Grade分别表示学号、课程号、成绩。要求在mydb数据库中采用SQL命令建立该三个表,并实现数据完整性约束。具体约束如下:
(1)实现各个表的主码、外码的设置。
create table student
( Sno char(10),
Sname char(20) not null,
Ssex char(2),
Sage smallint,
Sdept char(20),
Stelp char(20),
primary key(Sno)
);
create table Coursex
( Cno char(20),
Cname char(20) not null,
Cpno char(20),
Credit char(20),
primary key(Cno)
);
create table SCX
( Sno char(10) not null,
Cno char(20) not null,
Grade smallint,
primary key(Sno,Cno),
foreign key(Sno) references student(Sno),
foreign key(Cno) references Coursex(Cno),
);
(2)对学生表规定性别的默认值为“男”,取值范围{“男”,“女”}
create table student
(Sno char(10),
Sname char(20) not null,
Ssex char(2) check(Ssex in(男,女)),
Sage smallint,
Sdept char(20),
Stelp char(20),
primary key(Sno)
);
(3)对课程表规定学分值必须小于6 。
create table Coursex
(Cno char(20),
Cname char(20) not null,
Cpno char(20),
Credit smallint check( Credit6),
primary key(Cno)
);
(4)对选课表规定成绩取值范围在[0,100]区间。
create table SCX
( Sno char(10) not null,
Cno char(20) not null,
Grade smallint check(Grade=0 and
显示全部