文档介绍:主要(zhǔyào)内容
概述
实体完整性
参照完整性
用户定义完整性
完整性约束命名子句
域中的完整性限制(xiànzhì)
断言
触发器
第1页/共26页
第一页,共26页。
概述(ɡài shù)
数据库的完整性:数据的正确性和相容性。
数据的正确性:数据是符合现实世界语义、反映当前实际状况的;
数据的相容性:数据库同一对象在不同关系表中的数据是符合逻辑的。
数据的完整性与安全性是两个既有联系又不尽相同的概念:
(1)完整性是为了防止数据库中存在不符合语义的数据,即防止数据库中存在不正确的数据。完整性检查和控制的防范对象是不合(bùhé)语义的、不正确的数据,防止它们进入数据库。
(2)安全性是保护数据防止恶意破坏和非法存取。安全性控制的对象是非法用户和非法操作,防止他们对数据库的数据进行非法存取。
第2页/共26页
第二页,共26页。
概述(ɡài shù)
为维护数据的完整性,DBMS必须具备如下对应功能:
(1)提供定义完整性约束条件的机制
完整性约束条件也称完整性规则,是数据库中的数据必须满足的语义约束条件。它表达了给定的数据模型中数据及其联系所具有的制约(zhìyuē)和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
第3页/共26页
第三页,共26页。
概述(ɡài shù)
(2)提供完整性检查的方法
数据库管理系统中检查数据是否满足(mǎnzú)完整性约束条件的机制称为完整性检查。通常在INSERT、UPDATE、DELETE语句执行后开始检查,也可以在事务提交时检查。检查这些操作后的数据库中的数据是否违背了完整性约束条件。
第4页/共26页
第四页,共26页。
概述(ɡài shù)
(3)进行违约处理
数据库管理系统若发现(fāxiàn)用户的操作违背了完整性约束条件,则将采取一定的动作或措施,如拒绝执行该操作或级联执行其他操作,进行违约处理以保证数据的完整性。
第5页/共26页
第五页,共26页。
概述(ɡài shù)
关系数据库的三类完整性约束条件:
(1)实体完整性约束条件
(2)参照(cānzhào)完整性约束条件
(3) 用户定义完整性约束条件
第6页/共26页
第六页,共26页。
实体(shítǐ)完整性
关系模型中的实体(shítǐ)完整性是在CREATE TABLE中用PRIMARY KEY定义。
对单属性构成的码有两种说明方法
(1)定义为列级约束条件;
(2)定义为表级约束条件。
对多属性构成的码只有一种说明方法,即定义为表级约束条件。
举例说明
第7页/共26页
第七页,共26页。
实体(shítǐ)完整性
【】 将Student表中的Sno属性(shǔxìng)定义为码。
CREATE TABLE Student
( Sno CHAR(9) PRIMARY KEY,/*列级定义主码*/
Sname CHAR(20) NOT NULL,
Ssex CHAR(2),
Ssage SMALLINT,
Sdept CHAR(20)
);
第8页/共26页
第八页,共26页。
实体(shítǐ)完整性
【】 将Student表中的Sno属性(shǔxìng)定义为码。
或者也可以
CREATE TABLE Student
( Sno CHAR(9) ,
Sname CHAR(20) NOT NULL,
Ssex CHAR(2),
Ssage SMALLINT,
Sdept CHAR(20),
PRIMARY KEY (Sno),/*表级定义主码*/
);
第9页/共26页
第九页,共26页。
实体(shítǐ)完整性
【】 将SC表中的Sno、Cno属性组定义(dìngyì)为码。
只能用表级定义(dìngyì)
CREATE TABLE Student
( Sno CHAR(9) NOT NULL ,
Cno CHAR(4) NOT NULL ,
Grade SMALLIN