【摘要】 数据库完整性
数据库完整性是指数据的正确性和相容性。数据的正确性是指数据是符合现实世界语义、反映当前实际情况的;数据的相容性是指数据库同一对象在不同关系表中的数据是符合逻辑的。为维护数据库的完整性,数据库管理系统必须能够实现如下功能: 1.提供定义完整性约束条件的机制 2.提供完整性检查的方法 3.进行违约处理
实体完整性
定义实体完整性 关系模型的实体完整性在C…
数据库完整性
数据库完整性是指数据的正确性和相容性。数据的正确性是指数据是符合现实世界语义、反映当前实际情况的;数据的相容性是指数据库同一对象在不同关系表中的数据是符合逻辑的。为维护数据库的完整性,数据库管理系统必须能够实现如下功能:
1.提供定义完整性约束条件的机制
2.提供完整性检查的方法
3.进行违约处理
实体完整性
定义实体完整性
关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。对单属性构成的码有两种说明方法,一种是定义为列级约束条件,另一种是定义为表级约束条件。对多个属性构成的码只有一种说明方法,即定义为表级约束条件。
将Student表中的Sno属性定义为码:
create table Student
(sno char(9)PRIMARY KEY,
sname char(20)NOT NULL,
ssex char(2),
sage smallint,
sdept char(20)
);
将SC表中的Sno、Cno属性组定义为码:
create table SC
(sno char(9) not null,
cno char(4) not null,
grade smallint,
primary key(sno,cno)
);
实体完整性检查和违约处理
用PRIMARY KEY短语定义了关系的主码后,每当用户程序对基本表插入一条记录或对主码列进行更新操作时,关系数据库管理系统将按照实体完整性规则自动进行检查。包括:
(1)检查主码值是否唯一,如果不唯一则拒绝插入或修改。
(2)检查主码的各个属性是否为空,只有有一个为空就拒绝插入或修改,从而保证了实体完整性。
参照完整性
定义参照完整性
关系模型的参照完整性在create table中用froeign key短语定义哪些列为外码,用peferences短语指明这些外码参照哪些表的主码。
定义SC中的参照完整性
create table sc
(sno char(9) not null,
cno char(4) not null,
grade smallint,
primary key (sno,cno),
foreign key(sno)references student(sno),
foreign key(cno)references course(cno)
);
参照完整性检查和违约处理
参照完整性将两个表中的相应元祖联系起来了。因此,对呗参照表进行增、删、改操作时有可能破坏参照完整性,必须进行检查以保证这两个表的相容性。
被参照表 | 参照表 | 违约处理 |
---|---|---|
可能破坏参照完整性 | 插入元组 | 拒绝 |
可能破坏 | 修改外码值 | 拒绝 |
删除元组 | 可能破坏参照完整性 | 拒绝/级联删除/设置为空值 |
修改主码值 | 可能破坏参照完整性 | 拒绝/级联修改/设置为空值 |