数据库的完整性数据库
目录:测试
1.完整性子系统spa
2.SQL中的完整性约束code
1.完整性子系统事务
数据库中完整性一词是指数据的正确性、有效性和相容性,防止错误的数据进入数据库。io
正确性:是指数据的合法性,例如,数值型数据只能包含数字而不能包含字母;语法
有效性:是指数据是否属于所定义的有效范围;方法
相容性:是指表示同一事实的两个数据应相同,不一致就是不相容。数据
DBMS必须提供一种功能来保证数据库中的数据时正确的,避免非法的不符合语义的错误数据的输入和输出,即所谓“垃圾进垃圾出”所形成的无效操做和错误操做。检查数据库中的数据是否知足规定的条件称为“完整性检查”。数据库中的数据应该知足的条件称为“完整性约束条件”,有时也称为完整性规则。sse
DBMS中执行完整性检查的子系统称为“完整性子系统”。完整性子系统的主要功能有两点
①监督事务的执行,并测试是否违反完整性规则。
②如有违反现象,则采起适当操做,例如,采用拒绝操做,报告违反状况,改正错误等方法处理。
2.SQL中的完整性约束
SQL中把完整性约束分红三大类:域约束、基本表约束和断言。
1.域约束
能够用“CREATE DOMAIN”语句定义新的域,而且还能够出现CHECK子句。
例:定义一个新的域COLOR,可用下列语句实现:
CREATE DOMAIN COLOR CHAR(6) DEFAULT'???' CONSTRAINT VALID_COLORS CHECK(VALUE IN ('Red','Yellow','Blue','Green','???'));
2.基本表约束
SQL的基本表约束主要有3中形式:候选键定义、外键定义和“检查约束”定义。这些定义均可以在前面加上“CONSTRAINT<约束名>”,由此为新约束起个名字。
①候选键
UNIQUE (<列名序列>)或PRIMARY KEY (<列名序列>)
②外键
FOREIGN KEY (<列名序列>) REFERENCES <参照表> [(<列名序列>)] [ON DELETE <参照动做>] [ON UPDATE <参照动做>]
③“检查约束”
这种约束是对单个关系的元组值加以约束。方法是在关系定义中任何须要的地方加上关键字CHECK和约束条件。
CHECK(<条件表达式>)
3.断言
若是完整性约束的牵涉面较广,与多个关系有关,或者与聚合操做有关,那么SQL2会提供“断言”(Assertions)机制让用户书写完整性约束。断言能够向关系同样,用CREATE语句定义,其语法以下:
CREATE ASSERTION <断言名> CHECK (<条件>) DROP ASSERTION <断言名>