数据库_实验报告3

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

相关文档
最新文档