大型数据库实验数据库完整性

一、 实验目的

(1)掌握实现数据完整性方法

二、 实验器材

(1)PC机

(2)SQL Server数据库

三、 实验要求

(1)理解数据完整性的作用

(2)掌握实现数据完整性方法

四、 实验内容与步骤

(1)完整性分类

        数据完整性指的是存储在数据库中的数据的一致性和准确性。

  1. 实体完整性

实体完整性将一特定表中的每一个数据行都定义为唯一实体,即它要求表中的每一条记录(每一行数据)是唯一的,每一数据行必须至少拥有一个唯一标识以区分不同的数据行。实体完整性是通过唯一性索引、唯一值约束、标识IDENTITY或主键约束来强制表的标识符列或主键的完整性。

  1. 域完整性

域完整性(Domain Integrity)是指数据库表中的列必须满足某种特定的数据类型或约束。其中约束又包括取值范围、精度等规定。表中的CHECK、FOREIGN KEY 约束和DEFAULT、 NOT NULL定义都属于域完整性的范畴。

  1. 引用完整性

引用完整性又叫参照完整性(Referential Integrity),属于表间规则。对于永久关系的相关表,在更新、插入或删除记录时,如果只改其一,就会影响数据的完整性。如删除父表的某记录后,子表的相应记录未删除,致使这些记录称为孤立记录。对于更新、插入或删除表间数据的完整性,统称为参照完整性。通常,在客观现实中的实体之间存在一定联系,在关系模型中实体及实体间的联系都是以关系进行描述,因此,操作时就可能存在着关系与关系间的关联和引用。

  1. 用户定义完整性

用户定义完整性( User-defined Integrity )是对数据表中字段属性的约束, 用户定义完整性规则(User-defined integrity)也称 域完整性规则。包括字段的值域、字段的类型和字段的有效规则(如小数位数)等约束,是由确定关系结构时所定义的字段的属性决定的。

(2)约束

SQL 约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

  1. PRIMARY KEY 约束

图2.1.1创建主键

图2.1.2更改表的主键约束

图2.1.3删除主键约束

  1. FOREIGN KEY 约束

图2.2.1创建外键约束

图2.2.2为已创建表添加外键约束

图2.2.3删除外键约束

  1. UNIQUE 约束

图2.3.1主键约束与唯一性约束

  1. CHECK 约束

图2.4.1创建表时添加CHECK约束

图2.4.2创建表后添加CHECK约束

5.DEFAULT 约束

图2.5.1创建表时定义默认值约束

图2.5.2对已创建表添加DEFAULT约束

        6.NOT NULL 约束

图2.6.1创建NOT NULL约束

(3)级联引用完整性

图3.1级联更新

图3.2级联更新演示

图3.3级联删除

图3.4级联删除演示

(4)默认值和规则

默认值,用法同规则,它的作用类似于Default约束,是说在表中插入数据时,如果没有指定值,默认值自动指定数据值。规则,规则顾名思义是规矩制度的意思,在进行表操作时它的作用和check约束条件是类似的,但是一个表中只有一个规则,可有多个check约束。

     1.默认值对象的基本操作

图4.1.1创建默认值对象

图4.1.2默认值对象绑定

图4.1.3解除默认值对象绑定

图4.1.4删除默认值对象

  1. 规则对象的基本操作

图4.2.1创建规则对象

图4.2.2绑定规则对象

图4.2.3验证规则对象

图4.2.4解除规则对象绑定

图4.2.5删除规则对象

(5)触发器

触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发。触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。SQL Server 包括三种常规类型的触发器:DML 触发器、DDL 触发器和登录触发器。 

图5.1after insert 触发器

图5.2after delete触发器

图5.3after update触发器

图5.4instead触发器

图5.5修改触发器

图5.6删除触发器

五、 实验总结

1. 数据完整性就是对数据库进行创建时,为了保证表中数据能够反映现实情况,而对表中数据列所做的约束。

2.触发器是自动执行的,一旦设立就存在一种触发机制,永远监控着数据库的事件状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值