数据库管理 |
您所在的位置:网站首页 › sql中的完整性约束分为三大类 › 数据库管理 |
2019独角兽企业重金招聘Python工程师标准>>> 数据库的完整性 目录: 1.完整性子系统 2.SQL中的完整性约束
1.完整性子系统 数据库中完整性一词是指数据的正确性、有效性和相容性,防止错误的数据进入数据库。 正确性:是指数据的合法性,例如,数值型数据只能包含数字而不能包含字母; 有效性:是指数据是否属于所定义的有效范围; 相容性:是指表示同一事实的两个数据应相同,不一致就是不相容。
DBMS必须提供一种功能来保证数据库中的数据时正确的,避免非法的不符合语义的错误数据的输入和输出,即所谓“垃圾进垃圾出”所造成的无效操作和错误操作。检查数据库中的数据是否满足规定的条件称为“完整性检查”。数据库中的数据应该满足的条件称为“完整性约束条件”,有时也称为完整性规则。
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
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |