数据完整性测试

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据完整性测试
数据完整性(Data Integrity)是指数据的精确性(Accuracy) 和可靠性(Reliability)。

它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。

数据完整性分为四类:实体完整性(Entity Integrity)、域完整
性(Domain Integrity)、参照完整性(Referential Integrity)、用户定义的
完整性(User-definedIntegrity)。

1 实体完整性(Entity Integrity)
实体完整性规定表的每一行在表中是惟一的实体。

表中定义的UNIQUE PRIMARYKEY 和IDENTITY 约束就是实体完整性的体现。

2 域完整性(Domain Integrity)
域完整性是指数据库表中的列必须满足某种特定的数据类型或约束。

其中约束又包括取值范围、精度等规定。

表中的CHECK、FOREIGN KEY 约束和DEFAULT、NOT NULL定义都属于域完整性的范畴。

3 参照完整性(Referential Integrity) 参照完整性是指两个表的主关键字和外关键字的数据应对应一致。

它确保了有主关键字的表中对应其它表的外关键字的行存在,即保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。

参照完整性是建立在外关键字和主关键字之间或外关键字和惟一性关键字之间的关系上的。

在SQL Server 中,参照完整性作用表现在如下几个方面:
禁止在从表中插入包含主表中不存在的关键字的数据行;
禁止会导致从表中的相应值孤立的主表中的外关键字值改变;
禁止删除在从表中的有对应记录的主表记录。

4 用户定义的完整性(User-defined Integrity)
不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。

用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

SQL Server 提供了定义和检验这类完整性的机制,以便用统一的系统方法来处理它们,而不是用应用程序来承担这一功能。

其它的完整性类型都支持用户定义的完整性。

软件测类型 "数据与数据库完整性测试"的相关理论描述:
数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。

数据库完整性原即:
主码完整性:主码不能为空;
外码完整性:外码必须等于对应的主码或者为空。

数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。

在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。

在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。

对于数据库管理系统(DBMS),还需要进行深入的研究,以确定可以支持测试的工具和技术。

比如,有两张表:部门和员工。

部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。

如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。

如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。

员工类型如下定义:0:职工,1:职员,2:实习生。

但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。

相关文档
最新文档