实验指导08(数据库完整性)

实验指导08(数据库完整性)

ID:46671040

大小:98.50 KB

页数:4页

时间:2019-11-26

实验指导08(数据库完整性)_第1页
实验指导08(数据库完整性)_第2页
实验指导08(数据库完整性)_第3页
实验指导08(数据库完整性)_第4页
资源描述:

《实验指导08(数据库完整性)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1实验八:数据库完整性1.1实验背景“存储在数据库中的所有数据值均是止确的状态。如果数据库中存储有不止确的数据值,则该数据库称为已丧失数据完整性。”这是SQLServer2000中给出数据库完整性的解释,但是我们要问两个问题:•什么是数据正确的状态?•如何确保数据是疋确的?对于笫一个问题,确实很难回答,因为:“I比界上所有事物本无正确与错误”,但是一些不符合逻辑的、前后矛盾的、没有满足人们需求的,可以说是“不正确的”。女心一个人的年龄是“-20岁”,这就是不符合逻辑的;在一个地方,这个人叫“张三”,但是换了个地方却记

2、成“张山”,这就是矛盾;如果一笔订单金额没有达到1万元,却给记成打了8折,实际只能打9折,这就是不满足需求。造成上述各种不正确的原因是什么呢?无外乎是人们输入错误、业务不熟悉、或者是捣乱分子故意为Z。那么关键问题是我们如何在数据库中预防这种不正确的惜况呢?这就是要问的第二个问题。这需要靠数据库管理系统(DBMS)提供一套完整性约朿机制来预防这种情况的发乞。但是人们常说一句话“人无完人,金无足赤”,同样,要完全靠DBMS帮我们防住所冇的不正确,本身就是不正确的,这不符合辩证哲学的观点。这说明DBMS只能是尽可能的预防。

3、那么人们要深入硏究冇哪些完整性约束,DBMS应该提供哪些保障机制。首先,完整性约束主要有以下几种:•实体完整性约朿•参照完整性约朿•用户能义完整性约束其次,在关系型数据库中保证上述完整性约束的方法冇以下几种:表1数据库提供的约束数据库提供的约束理论上的完整性约束主码约束实体完整性约束外码约束参照完整性约束Chock约束用户定义完整性约束Null约束索引约束触发器存储过程我们可以看出主码、外码是我们经常接触到的数据库提供的约束方法,也是最重要的约束。但是,外码约束并没冇我们想象那样简单,即只要把外码关系建立起来就行了,

4、还要考虑到约朿强度的问题:表2参照完整性约束的类型与强度数抓库系统原理,《实验指导卩》参照完整性类型约束强度说明不实施参照完整性约束强度为零这种情况最好要避免。实施级联更新参照完整性约束中等强度可以实施。当主码修改了,外码自动被修改。实施级联删除参照完整性约束中等强度谨慎实施。当父表记录删除了,子表记录被自动删除。实施更新参照完整性约束高强度放心实施。对于存在子表数据的主码不允许修改。实施删除参照完整性约束高强度放心实施。对于存在子表数据的父表记录不允许删除。实施插入参照完整性约束高强度绝对实施。当父表中不存在外码对

5、应的记录,子表不允许插入数据。那么,用户定义的参照完整性如何实现?一般的DBMS都提供了相应的对策,如:Check约束、Null约束、索引约束、触发器、存储过程等。SQLServer中还提到了域约束。在SQLServer2000的联机丛书中都详细地阐述了上述所有的完整性约束,以及如何操作SQLServer2000去实现这些完整性约束。表3SQLServer2000中用户定义约束的实施约束方法说明Check约束使用“企业管理器”构建。使用rtCreate/AlterTable…Check"的SQL构建。Null约束使用

6、“企业管理器”构建。使用aCreate/AlterTable…Null/NotNull"的SQL构建。索引约束使用“企业管理器”构建。使用“CreateIndex”的SQL构建。触发器约束使用“企业管理器"构建。使用aCreate/AlterTrigger"的SQL构建。存储过程使用“企业管理器”构建。使用aCreate/AlterProcedurew的SQL构建。1.2实验目标能使用SQLServer2000创建完整性约束。1.3实验任务序号任务1本次实验需要用到SQLServer2000。2创建实验7的数据库,取

7、名为“SalesDB'o3为每个表创建主码。4为所有存在关系的表构建参照完整性约束。5列出不能为Null的非主码字段,并加入NotNull约束。6使用Check约束,确保:(1)订货数量、未发货量不能为小于()的整数。(2)折扣金额不能大于订货金额。7使用触发器约束,确保:(1)未发货数量随着每笔订单的发货,而自动减少。2实验报告2.1实验人信息姓名:学号:实验吋间:2.2实验结果1.写出每张表及其主码:2.写出父表和子表的关系以及它们的参照完整性强度:3.写出所有不能为Null的非主码字段及其所在的表,并写出其中一

8、个NotNull约束的创建SQL:4.写出任务6中的创建Check约束的SQL:5.写出任务7中的创建触发器约束的SQL:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。