1 / 12
文档名称:

数据库实验报告04.docx

格式:docx   大小:431KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据库实验报告04.docx

上传人:q2299971 2017/8/8 文件大小:431 KB

下载得到文件列表

数据库实验报告04.docx

相关文档

文档介绍

文档介绍:本科实验报告
课程名称: 数据库系统概论
实验项目: 数据完整性
实验地点: 软件楼208
专业班级: 软件1401 学号: 2014005490
学生姓名: 崔正宇
指导教师: 安建成

2016年6 月20日
实验4 数据完整性
一、实验目的和要求
(1)了解 SQL Serer 数据库系统中数据完整性控制的基本方法
(2)熟练掌握常用 CREATE 或 ALTER 在创建或修改表时设置约束
(3)了解触发器的机制和使用
(4)验证数据库系统数据完整性控制

使用 SQL Server 数据库管理系统提供的 SSMS 和查询编辑器。
三、实验内容和原理
结合 ST 数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、
检查约束、非空约束等,掌握各约束的定义方法。
设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。
设计一些示例数据,验证完整性检查机制。
要求包括如下方面的内容:
使用 SQL 语句设置约束
使用 CREATE 或 ALTER 语句完成如下的操作,包括:
1. 设置各表的主键约束
2. 设置相关表的外键
3. 设置相关属性的非空约束、默认值约束、唯一约束
4. 设置相关属性的 CHECK 约束
使用触发器
创建一个触发器,实现如下的完整性约束:

当向 SC 表中插入一行数据时,自动将学分累加到总学分中。
l 记录修改学分的操作。
检查约束和触发器
分别向相关表插入若干条记录,检查你设置的完整性约束是否有效:
1. 插入若干条包含正确数据的记录,检查插入情况
2. 分别针对设置的各个约束,插入违反约束的数据,检查操作能否进行
3. 向 SC 表插入若干行数据,检查触发器能否实现其数据一致性功能。
实验内容实验结果与分析
创建学生选课数据库 TEST,包括三个基本表,其中 Student 表保存学生基本信息,Course
表保存课程信息,SC 表保存学生选课信息,其结构如下表:

(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
);
(2)创建 Course 表
CREATE TABLE Course
( Cno CHAR(4) CONSTRAINT FK_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 (o),
CONSTRAINT FK_SC FOREIGN KEY (Cno) REFERENCES o) );
插入数据
(1)插入学生信息到Student表
INSERT INTO student VALUES('20100001','李勇','男',20,'CS','1001',0)
INSERT INTO Student VALUES('20100002','刘晨','女',19,'CS','1001',0)
INSERT INTO Student VALUES('20100021','王敏','女',18,'MA','1002',0)
INSERT INTO Student VALUES('20100031','张立','男',19,'IS','1003',0)
INSERT INTO Student VALUES('20100003','刘洋','女',NULL,NULL,'1001',0)
INSERT INTO Student VALUES('20100010','赵斌','男',19,'IS','1005',0)
INSERT INTO Student VAL