数据库_实验报告3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科实验报告
课程名称:数据库系统原理
实验项目:数据完整性
实验地点:致远楼B503
专业班级:软件1202班学号:2012004997 学生姓名:赵明晶
指导教师:安建成
2014年4月25 日
一目的与要求
(1)了解 SQL Serer 数据库系统中数据完整性控制的基本方法
(2)熟练掌握常用 CREATE 或 ALTER 在创建或修改表时设置约束
(3)了解触发器的机制和使用
(4)验证数据库系统数据完整性控制
二实验设备与环境
Windows XP 或者 Windows 2003 Server。
使用 SQL Server 数据库管理系统提供的 SSMS 和查询编辑器。
三实验内容、实验记录及实验结果与分析
结合 ST 数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、
检查约束、非空约束等,掌握各约束的定义方法。
设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。设计一些示例数据,验证完整性检查机制。
要求包括如下方面的内容:
3.1 使用 SQL 语句设置约束
使用 CREATE 或 ALTER 语句完成如下的操作,包括:
1.设置各表的主键约束
2.设置相关表的外键
3. 设置相关属性的非空约束、默认值约束、唯一约束
4. 设置相关属性的 CHECK 约束
3.2 使用触发器
创建一个触发器,实现如下的完整性约束;当向 SC 表中插入一行数据时,自动将学分累加到总学分中。
记录修改学分的操作。
3.4 检查约束和触发器
分向相关表插入若干条记录,检查你设置的完整性约束是否有效:
1.插入若干条包正确数据的记录,检查插入情况
2.分针对设置的各个约束,插入违反约束的数据,检查操作能否进行
3.向 SC 表插入若干行数据,检查触发器能否实现其数据一致性功能。
4实验报告
要求写出实验的基本过程。解释操作过程中出现的现象。
参考示例参参考考示示例例参考示例::::
建立一个学生选课数据库,熟悉约束及触发器的使用方法。
1.创建基本表及约束
(1)创建Student表
CREATE TABLE Student
( Sno CHAR(8) PRIMARY KEY,
Sname CHAR(8) NOT NULL,
Ssex CHAR(2) CHECK( Ssex in ('男','女')),
Sage SMALLINT,
Sdept CHAR(20),
Sclass CHAR(4) NOT NULL,
Stotal smallint DEFAULT 0
);
掌握主键约束、非空约束、CHECK约束、默认值的定义格式。
(2)创建Course表
CREATE TABLE Course
( Cno CHAR(4) CONSTRAINT PK_Course PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4) ,
Ccredit SMALLINT
);
(3)创建SC表
CREATE TABLE SC
( Sno CHAR(8) FOREIGN KEY (Sno) REFERENCES Student(Sno),
Cno CHAR(4),
Grade SMALLINT CONSTRAINT SC_CHECK CHECK(Grade >0 AND Grade<100), PRIMARY KEY (Sno,Cno),
CONSTRAINT FK_SC FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
(4)检查表是否创建成功。
2插入数据
(1)插入学生信息到Student表
INSERT INTO Student V ALUES('20100001','李勇','男',20,'CS','1001',0)
INSERT INTO Student V ALUES('20100002','刘晨','女',19,'CS','1001',0)
请写出插入其余行的插入语句,并插入数据。
INSERT INTO Student V ALUES('20100021',’王敏’,’女’,18,’MA’,’1002’,0)
INSERT INTO Student V ALUES('20100031',’张立’,男’,19,’IS’,’1003’,0)
INSERT INTO Student V ALUES('20100003',’刘洋’,’女’,NULL,NULL,’1001’,0) INSERT INTO Student V ALUES('20100010',’赵斌’,’男’,19,’IS’,’1005’,0)
INSERT INTO Student V ALUES('20100022',’张明明’,’男’,19,’CS’,’1002’,0)
(2)插入到课程信息到Course表
INSERT INTO Course(Cno,Cname,Cpno,Ccredit) V ALUES('1','数据库系统原理', '5',4) INSERT INTO Course(Cno,Cname,Cpno,Ccredit) V ALUES('2','高等数学', null,2)
请写出插入其余行的插入语句,并插入数据。
INSERT INTO Course(Cno,Cname,Cpno,Ccredit)V ALUES('3','管理信息系统','1',4) INSERT INTO Course(Cno,Cname,Cpno,Ccredit)V ALUES('4','操作系统原理','6',3) INSERT INTO Course(Cno,Cname,Cpno,Ccredit)V ALUES('5','数据结构','7',4)