华中科技大学数据库课件第05章-数据库完整性

上传人:F****n 文档编号:88430899 上传时间:2019-04-27 格式:PPT 页数:87 大小:597.50KB
返回 下载 相关 举报
华中科技大学数据库课件第05章-数据库完整性_第1页
第1页 / 共87页
华中科技大学数据库课件第05章-数据库完整性_第2页
第2页 / 共87页
华中科技大学数据库课件第05章-数据库完整性_第3页
第3页 / 共87页
华中科技大学数据库课件第05章-数据库完整性_第4页
第4页 / 共87页
华中科技大学数据库课件第05章-数据库完整性_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《华中科技大学数据库课件第05章-数据库完整性》由会员分享,可在线阅读,更多相关《华中科技大学数据库课件第05章-数据库完整性(87页珍藏版)》请在金锄头文库上搜索。

1、An Introduction to Database System,数据库的完整性是指数据的正确性、有效性和相容性。即数据库中数据与现实世界的实际情况是相符合的或数据库中数据自身不存在自相矛盾的现象。,第5章 数据库完整性,An Introduction to Database System,完整性 vs 安全性 完整性 防止不符语义的数据,错误的输入 防范的对象:不合语义的数据 安全性 防止恶意破坏和非法存取 防范对象:非法的用户和非法操作。,An Introduction to Database System,完整性控制机制 定义完整性约束条件 实施完整性检查 如有违反,作何种处置(拒绝

2、、报告、纠正、忽略),An Introduction to Database System,5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制 5.6 触发器 5.7 小结,第5章 数据库完整性,An Introduction to Database System,5.1 实体完整性,5.1.1 实体完整性定义 5.1.2 实体完整性检查和违约处理,An Introduction to Database System,5.1.1 实体完整性定义,关系模型的实体完整性 CREATE TABLE中用PRIMARY KEY定义 单属

3、性构成的码有两种说明方法 定义为列级约束条件 定义为表级约束条件 对多个属性构成的码只有一种说明方法 定义为表级约束条件,An Introduction to Database System,5.1.1 实体完整性定义,create table 表名 ( | ,.n ) := 列名 数据类型 DEFAULT 常量表达式 | IDENTITY ( 种子, 增量) .n ,An Introduction to Database System,5.1.1 实体完整性定义, := CONSTRAINT 约束名 NULL | NOT NULL | PRIMARY KEY | UNIQUE CLUSTER

4、ED | NONCLUSTERED | FOREIGN KEY REFERENCES 被引用表 ( 被引用的列 ) ON DELETE CASCADE | NO ACTION ON UPDATE CASCADE | NO ACTION | CHECK ( 逻辑表达式) ,An Introduction to Database System,5.1.1 实体完整性定义, := CONSTRAINT 约束名 PRIMARY KEY | UNIQUE CLUSTERED | NONCLUSTERED ( 列名 ASC | DESC ,.n ) | FOREIGN KEY (列名 ,.n ) REFE

5、RENCES 被引用表 (被引用列 ,.n ) ON DELETE CASCADE | NO ACTION ON UPDATE CASCADE | NO ACTION | CHECK (逻辑表达式) ,An Introduction to Database System,5.1.1 实体完整性定义,例1 将Student表中的Sno属性定义为码 (1)在列级定义主码 CREATE TABLE Student ( Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(2

6、0) ),An Introduction to Database System,5.1.1 实体完整性定义,可以显式给Primary Key约束命名 CREATE TABLE Student ( Sno CHAR(9) constraint PK_Student PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20) ),An Introduction to Database System,5.1.1 实体完整性定义,(2) 在表一级定义Primary Key约束 CREATE TAB

7、LE Student ( Sno CHAR(9) , Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20), constraint PK_Student Primary Key (sno) ),An Introduction to Database System,5.1.1 实体完整性定义,例2将SC表中的Sno,Cno属性组定义为码 CREATE TABLE SC ( Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KE

8、Y (Sno,Cno) /*只能在表级定义主码*/ ),An Introduction to Database System,5.1.1 实体完整性定义,关系模型完整性的修改 Alter Table ADD (添加新约束) Alter Table Drop (删除约束) 修改现有约束?,An Introduction to Database System,5.1.1 实体完整性定义,ALTER TABLE 表名 ALTER COLUMN 列名 数据类型 ( 精度 , 小数位数 ) NULL | NOT NULL | ADD ,.n | ADD ,.n | DROP CONSTRAINT 约束名

9、 | COLUMN 列名 ,.n ,An Introduction to Database System,5.1.1 实体完整性定义, := 列名 数据类型 DEFAULT 常量表达式 | IDENTITY ( 种子, 增量) .n ,An Introduction to Database System,5.1.1 实体完整性定义, := CONSTRAINT 约束名 NULL | NOT NULL | PRIMARY KEY | UNIQUE CLUSTERED | NONCLUSTERED | FOREIGN KEY REFERENCES 被引用表 ( 被引用的列 ) ON DELETE

10、CASCADE | NO ACTION ON UPDATE CASCADE | NO ACTION | CHECK ( 逻辑表达式) ,An Introduction to Database System,5.1.1 实体完整性定义, := CONSTRAINT 约束名 PRIMARY KEY | UNIQUE CLUSTERED | NONCLUSTERED ( 列名 ASC | DESC ,.n ) | FOREIGN KEY (列名 ,.n ) REFERENCES 被引用表 (被引用列 ,.n ) ON DELETE CASCADE | NO ACTION ON UPDATE CASC

11、ADE | NO ACTION | DEFAULT 常量表达式 FOR 列名 | CHECK (逻辑表达式) ,An Introduction to Database System,5.1.1 实体完整性定义,例3 建SC1表时,主码定义错误,修改之。 这是当初定义的语句: CREATE TABLE SC1 ( Sno CHAR(9) constraint PK_SC1 PRIMARY KEY, Cno char(4) , Grade smallint ),An Introduction to Database System,5.1.1 实体完整性定义,(1) 删除原约束 (2) 定义新约束

12、alter table sc1 drop constraint pk_sc1 alter table sc1 alter column cno char(4) not null alter table sc1 add constraint pk_sc1 primary key(sno,cno),An Introduction to Database System,5.1.1 实体完整性定义,关系模型完整性的修改 Alter Table ADD (添加新约束) Alter Table Drop (删除约束) 修改现有约束?,An Introduction to Database System,5

13、.1 实体完整性,5.1.1 实体完整性定义 5.1.2 实体完整性检查和违约处理,An Introduction to Database System,5.1.2 实体完整性检查和违约处理,何时检查 插入:insert 更新主码列:update 检查内容 检查主码值是否唯一,如果不唯一则拒绝插入或修改 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改,An Introduction to Database System,5.1.2 实体完整性检查和违约处理,检查方法一:全表扫描(耗时) 对策: 在主码上自动建索引,An Introduction to Database System

14、,5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制 5.6 触发器 5.7 小结,第5章 数据库完整性,An Introduction to Database System,5.2 参照完整性,5.2.1 参照完整性定义 5.2.2 参照完整性检查和违约处理,An Introduction to Database System,5.2.1 参照完整性定义,关系模型的参照完整性定义 CREATE TABLE和ALTER TABLE 用FOREIGN KEY短语定义哪些列为外码 用REFERENCES短语指明这些外码参照哪些表的

15、主码,An Introduction to Database System,5.2.1 参照完整性定义,create table 表名 ( | ,.n ) := 列名 数据类型 DEFAULT 常量表达式 | IDENTITY ( 种子, 增量) .n ,An Introduction to Database System,5.2.1 参照完整性定义, := CONSTRAINT 约束名 NULL | NOT NULL | PRIMARY KEY | UNIQUE CLUSTERED | NONCLUSTERED | FOREIGN KEY REFERENCES 被引用表 ( 被引用的列 ) ON DELETE CASCADE | NO ACTION ON UPDATE CASCADE | NO

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号