数据库完整性实验
A. 数据库的数据完整性校验有哪几种方法
1、唯一性约束:通过为表中的某些字段设置唯一索引,使得这些字段中的值不能重复,从而保证数据库中数据的唯一性。
2、外键约束:通过在多个表之间建立外键关联,使得表中的数据能够有效地进清没旁行交互,从而保证数据库中数据的完整
3、检查约束:通过在表中设置检查约束,来检查某一列的值是否满足一定的条件,从而保证数据库中数据的完整性。
4、默认值约束:通过为表中的某些字段设置默认值,如果用户没有为该字段输入值,就会自动使用默认值,从而保证数据库中数据的完整性。
5、触发器:通过设置触发器,在数据发生改变时自动进行检查,从而保证数据库中数据的完整性。
6、程序级的完整性校验:在应用程序中添加相应的完整性校验代码,从而保证数据库中数据的完整性。
--- 6.1、空值校验:检查表中某个字段是否有空值,如果存在空值则返回错误信息。
--- 6.2、长度校验:检查表中答橡某个字段的长度是否符合要求,如果不符合要求则返回错误信息。
--- 6.3、类型校验:检查表中某个字段的类型是否符合要求,察丛如果不符合要求则返回错误信息。
--- 6.4、值范围校验:检查表中某个字段的值是否在指定的范围内,如果不在指定范围内则返回错误信息。
B. 数据的完整性怎么实现
数据的完整性靠添加约束实现。实现完整性约束的方法依类别不同而不同。完整性约束可以分为两大类:静态约束和动态约束。
1、静态约束
静态约束是对数据库状态的约束,有可分为固定约束、隐含约束和显示约束。
2、固定约束
是数据模型固有的约束,如关系的属性是原子的,即满足INF的约束。固有约束在DBMS实现时已经考虑。
3、隐含约束
指隐含于数据模式中的约束,一般用数据定义语言(DDL)语句说明,并存于数据目录中。例如,域完整性约束、实体完整性以及参照完整性约束,都由相应的DDL语句说明。
4、显示约束
固有约束、隐含约束是最基本的约束,但概括不了所有的约束。数据完整性是多种多样的,且依赖于数据的语义与应用,这些约束只有显式地说明,故称显式约束。显式约束的说明一般有三种方法:
①用过程说明约束。这种方法不约束的说明和检验交给应用程序,应用程序中可以插入一些过程,以检验数据库更新是否违反给定的约束,如果违反约束,则回滚事务。检验约束的过程一般用通用高级程序语言编写,可以表达各式各样的约束。这是一种普遍方法。
②用语言说明约束。断言指数据库状态必须满足的逻辑条件。数据库完整性约束可以看成一系列断言的集合。为了表示约束,DBMS须提供断言说明语言。
③用触发子表示约束。触发子是一个软件机制,其功能相当于WHENEVERTHEN,即一旦给定条件成立,系统就引发相应的动作。利用触发子可以表示约束,以违反约束作为条件,以违反约束的处理作为动作。
动作不限于回滚事务,也可以给用户一个消息或过程。在系统中定义一批触发之后,就会监督数据库状态,一旦出现违反约束的更新,就会引发相应的动作。
5、动态约束
动态约束不是对数据库状态的约束,而是数据库从一个状态变为另一个状态时应遵守的约束,例如在更新职工表行尘时,工资、工龄这些属性值一般只会增加,不会减少。动态约束一般也是显式说明的。
在上述约束中,固有约束必然实施,隐含约束在大部分现代DBMS中基本实施或部分实施,档正禅显式和动态约束只在个别DBMS中实施。
(2)数据库完整性实验扩展阅读
知识点①:对数据操作语句来说,数据存储到数据库中,如果我们不对其进行分析和处理的话那么数据就是没有价值的,这种用户对数据中数据的操作大多数查询和修改的,修改包括了增加新的数据删除旧的数据以及更改已有的数据。
那么SQL语言提供了功清饥能强大的数据查询以及修改功能,那么他的查询功能是html语言的核心功能,这是数据库中使用得最多的操作,那么查询语句也是SQL语言中比较复杂的一个语句。
知识点②:其实查询语句是数据库操作中最基本和最重要的女婿之一,它的功能是从数据库中检索满足条件的数据,查询的数据源可以来自一张表也可以来自多张表甚至是仕途,那么他的查询功能是由领航。
或者多煮几路组成的一个记录集合,并允许选择一个或多个字段来作为,输出字段了,查询语句的基本结构可以描述,在一些结构中,我们可以对指定的输出字段以及用于指定数据的来源,那么他有什么单表查询呢,数据源只设计一张表查询的话是为了帮助读者更好地理解SQL语句中的执行情况,这里指大部分查询语句均列出来返回了结果。
C. 数据库完整性控制实验原理是什么
数据库完整性控制岁歼实验原理是:数据库完整性约束能乎纳冲够防止合法用户使用数据库时向数茄镇据库中添加不合语义的数据。
D. 什么是数据和数据库完整性测试
数据完整性:存储在数据库中的所有数据值均正确的状态。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。可确保数据库中的数据质量。例如,如果输入了 employee_id 值为 123 的职员,那么该数据库不应允许其他职员使用同一 ID 值。如果计划将 employee_rating 列的值范围设定为从 1 到 5,则数据库不应接受 6。如果表有一 dept_id 列,该列存储职员的部门编号,则数据库应只允许接受公司中的有效部门编号。常用的测试方法:边界值、等价值法