完整性:防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。防范对象:不合语义的、不正确的数据。
安全性:保护数据库防止恶意的破坏和非法的存取。防范对象:非法用户和非法操做。sql
若属性(一个或者一组)A是基本关系的主属性,则A不能取空值。在关系型数据库里的体现就是将数据表的某一个候选码设定为主键,PRIMARY KEY
.数据库
单属性构成码有两种方式:安全
约束条件的范围由码的定义位置肯定,若是在建立表的最后肯定那么就是表级约束条件,若是在定义列的同时设定为码那么就是列级。code
而对于多个属性一块儿构成码的,只能做为表级的约束条件。对象
插入或对主码列进行更新操做时,DBMS按照实体完整性规则自动进行检查。包括:blog
检查主码是否惟一的一种办法就是全表扫描,并一一比较是否相同。索引
或者为主码建立索引,提升扫描的效率。table
指的是关系模型中参照其余的表的属性,构成了当前表的参照完整性。在关系数据库中的体现就是将某一个属性定义为外键 FOREIGN KEY ... REFERENCE...class
针对用户的特定应用而设定的完整性要求。例如性别只能为男,女,年龄必须为正数等。效率
用户定义的完整性分为
QL还在Creat table语句中提供了完整性约束命名子句,用来对完整性约束条件命名,从而能够灵活地增长、删除一个完整性约束条件
CONSTRAINT <完整性约束条件名>[ NOT NULL | UNIQUE | PRIMARY KEY短语| FOREIGN KEY短语 | CHECK短语 ]
断言建立语句
CREATE ASSERTION <断言名> <CHECK 子句>
能够定义涉及到多个表的复杂条件判断语句,数据库中全部涉及到断言中定义的操做都会触发断言判断。若是断言判断结果不为真,就会拒绝执行。
在指定的操做以前,或以后执行的一段SQL语句。
数据库的完整性是为了保证数据库中存储的数据是正确的DBMS完整性实现的机制。