第一范文网 - 专业文章范例文档资料分享平台

数据库实验3

来源:用户分享 时间:2025/7/28 4:28:59 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

浙江大学实验报告

课程名称: 数据库系统原理 实验类型: 上机 实验项目名称: SQL数据完整性 实验目的和要求

熟悉通过SQL进行数据完整性控制的方法。

一、 实验内容和原理

1. 定义若干表,其中包括primary key, foreign key 和check的定义。 2. 让表中插入数据,考察primary key如何控制实体完整性。

3. 删除被引用表中的行,考察foreign key 中on delete 子句如何控制参照完整性。

4. 修改被引用表中的行的primary key,考察foreign key 中on update 子句如何控制参照完整性。

5. 定义一个asseration, 并通过修改表中数据考察断言如何控制数据完整性。

6. 定义一个trigger, 并通过修改表中数据考察触发器如何起作用。 7. 完成实验报告。

二、 实验平台

数据库管理系统:SQL Server 或MySQL

四、

操作方法与实验步骤及结果

1. 定义若干表,其中包括primary key, foreign key 和check的定义。 如下图所示,建立了三个表分别为classroom,department 和course,其中主键分别被定义为building,dept_name,然后又定义了course中的的dept_name

6

为外键。在course的定义中还有一个定义check的语句。

2. 让表中插入数据,考察primary key如何控制实体完整性。

向department中插入主键为null的数据是报错,从而控制了实体完整性。

但当插入数据其他属性为0(不为主键)时,可以进行成功的插入操作。

插入后的结果显示如下。

3. 删除被引用表中的行,考察foreign key 中on delete 子句如何控制参照完整性。

首先建立两个表school和students,并向其中插入数据,显示结果如下。

6

在先前定义了students表school_name为school中这一属性的外键,下面将进行删除的操作。

删除school中一项学校名字是‘huzhou’的数据,结果如下,可以看出students表中的这行也被删去,从而控制了参照完整性。

4. 修改被引用表中的行的primary key,考察foreign key 中on update 子句如何控制参照完整性。

仍利用上一部分的表,进行更新的操作,将school中的一项更新,结

6

果如下图所示,students中的也同样被更新。

5. 定义一个asseration, 并通过修改表中数据考察断言如何控制数据完整性。

在MySQL中,可能是我没有找到相关的资料或者对其语言应用并不熟悉,并没有找到

asseration的定义,在网上查找资料后发现MySQL中constraint可以起到与asseration相同的作用,细微在差别在于约束的范围不同,在本次实验中可以忽略不计。所以下面进行有关constraint的定义。

如图,定义一个constraint,对room表中seats属性进行约束。当输入限制以外的部分是报错名结果如下。

6. 定义一个trigger, 并通过修改表中数据考察触发器如何起作用。 如图定义了两个表,图中查看两个表的内容。

6

定义一个触发器

在test1进行删除操作时在test2中删除相同元素,运行后结果如下。成功地进行了操作。

五、心得与体会

本次实验,定义若干表,其中包括primary key, foreign key 和check的定义。

6

搜索更多关于: 数据库实验3 的文档
数据库实验3.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3qljd0kw1f553973044s2xc786b4hd00yrk_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top