数据库原理与技术-ppt课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库原理与技术-ppt课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 技术 ppt 课件
- 资源描述:
-
1、数据库原理与技术北京师范大学经济与工商管理学院课程内容数据库的完整性(重点)实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性完整性约束命名字句完整性约束命名字句触发器触发器数据库的安全性(略讲)计算机安全性概述计算机安全性概述数据库安全性控制数据库安全性控制视图机制视图机制审计(审计(Audit)数据加密数据加密统计数据库安全性统计数据库安全性网上书店的关系模式书(书号,书名,出版社,出版社地址,出版社电话,定价,作者,简介,仓库号码,仓库地址,仓库联系人,库存量)会员(编号,姓名,性别,单位,电话,邮箱,通讯地址,邮编,会员级别,折扣率)订单(号码,会员号码,下单日期
2、,送书日期,地点,收件人,联系人,书号,数量,备注)数据库完整性数据库的完整性数据的正确性和相容性n数据的完整性和安全性是两个不同概念数据的完整性防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据防范对象:不合语义的、不正确的数据数据的安全性保护数据库防止恶意的破坏和非法的存取防范对象:非法用户和非法操作数据库完整性(续)为维护数据库的完整性,DBMS必须:n1.提供定义完整性约束条件的机制n2.提供完整性检查的方法n3.违约处理实体完整性实体完整性定义实体完整性定义实体完整性检查和违约处理实体完整性检查和违约处理实体完整性定义关系模型的实体完整性CREATE TABLE中用
3、PRIMARY KEY定义单属性构成的码有两种说明方法 定义为列级约束条件定义为表级约束条件对多个属性构成的码只有一种说明方法定义为表级约束条件 实体完整性定义(续)例1 将Student表中的Sno属性定义为码 (1)在列级定义主码在列级定义主码 CREATE TABLE Student (Sno CHAR(9)PRIMARY KEY,Sname CHAR(20)NOT NULL,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20);实体完整性定义(续)(2)在表级定义主码在表级定义主码 CREATE TABLE Student (Sno CHAR(9),Sna
4、me CHAR(20)NOT NULL,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20),PRIMARY KEY(Sno);实体完整性定义(续)例2将SC表中的Sno,Cno属性组定义为码 CREATE TABLE SC (Sno CHAR(9)NOT NULL,Cno CHAR(4)NOT NULL,Grade SMALLINT,PRIMARY KEY(Sno,Cno)/*只能在表级定义主码*/);实体完整性检查和违约处理插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:检查主码值是否唯一,如果不唯一则拒绝插入或修改检查主码的各个
5、属性是否为空,只要有一个为空就拒绝插入或修改实体完整性检查和违约处理(续)检查记录中主码值是否唯一的一种方法是进行全表扫描实体完整性检查和违约处理(续)索引 2 参照完整性参照完整性定义参照完整性定义参照完整性检查和违约处理参照完整性检查和违约处理参照完整性定义关系模型的参照完整性定义在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码用REFERENCES短语指明这些外码参照哪些表的主码 参照完整性定义(续)例:关系SC中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码。Sno,Cno分别参照引用Student表的主码和Course表的主码 例3 定义S
6、C中的参照完整性 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)/*在表级定义参照完整性*/);参照完整性检查和违约处理可能破坏参照完整性的情况及违约处理被参照表(例如Student)参照表(例如SC)违约处理可能破坏参照完整性 插入元组拒绝可能破
7、坏参照完整性 修改外码值拒绝删除元组 可能破坏参照完整性拒绝/级连删除/设置为空值修改主码值 可能破坏参照完整性拒绝/级连修改/设置为空值违约处理参照完整性违约处理1.拒绝(NO ACTION)执行默认策略2.级联(CASCADE)操作3.设置为空值(SET-NULL)对于参照完整性,除了应该定义外码,还应定义外码列是否允许空值违约处理(续)例4 显式说明参照完整性的违约处理示例 CREATE TABLE SC (Sno CHAR(9)NOT NULL,Cno CHAR(4)NOT NULL,Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno
8、)REFERENCES Student(Sno)ON DELETE CASCADE /*级联删除SC表中相应的元组*/ON UPDATE CASCADE,/*级联更新SC表中相应的元组*/FOREIGN KEY(Cno)REFERENCES Course(Cno)ON DELETE NO ACTION /*当删除course 表中的元组造成了与SC表不一致时拒绝删除*/ON UPDATE CASCADE /*当更新course表中的cno时,级联更新SC表中相应的元组*/);3 用户定义的完整性用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求 RDBMS提供,而不必由应用程序承担3
9、 用户定义的完整性属性上的约束条件的定义属性上的约束条件的定义属性上的约束条件检查和违约处理属性上的约束条件检查和违约处理 元组上的约束条件的定义元组上的约束条件的定义 元组上的约束条件检查和违约处理元组上的约束条件检查和违约处理属性上的约束条件的定义CREATE TABLE时定义列值非空(NOT NULL)列值唯一(UNIQUE)检查列值是否满足一个布尔表达式(CHECK)属性上的约束条件的定义(续)1.不允许取空值 例5 在定义SC表时,说明Sno、Cno、Grade属性不允许取空值。CREATE TABLE SC (Sno CHAR(9)NOT NULL,Cno CHAR(4)NOT N
10、ULL,Grade SMALLINT NOT NULL,PRIMARY KEY(Sno,Cno),/*如果在表级定义实体完整性,隐含了Sno,Cno不允许取空值,则在列级不允许取空值的定义就不必写了*/);属性上的约束条件的定义(续)2.列值唯一 例6 建立表DEPT,要求名称Dname列取值唯一,编号Deptno列为主码 CREATE TABLE DEPT (Deptno NUMERIC(2),Dname CHAR(9)UNIQUE,/*要求Dname列值唯一*/Location CHAR(10),PRIMARY KEY(Deptno);属性上的约束条件的定义(续)3.用CHECK短语指定列
11、值应该满足的条件例7 Student表的Sex只允许取“男”或“女”。CREATE TABLE Student (Sno CHAR(9)PRIMARY KEY,Sname CHAR(8)NOT NULL,Sex CHAR(2)CHECK(Sex IN(男,女),/*性别属性Sex只允许取男或女*/Sage SMALLINT,Sdept CHAR(20);2 属性上的约束条件检查和违约处理插入元组或修改属性的值时,RDBMS检查属性上的约束条件是否被满足如果不满足则操作被拒绝执行 3 元组上的约束条件的定义在CREATE TABLE时可以用CHECK短语定义元组上的约束条件,即元组级的限制同属性
12、值限制相比,元组级的限制可以设置不同属性之间的取值的相互约束条件 元组上的约束条件的定义(续)例9 当学生的性别是男时,其名字不能以Ms.打头。CREATE TABLE Student (Sno CHAR(9),Sname CHAR(8)NOT NULL,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20),PRIMARY KEY(Sno),CHECK(Sex=女女 OR Sname NOT LIKE Ms.%)/*定义了元组中Sname和 Sex两个属性值之间的约束条件*/);性别是女性的元组都能通过该项检查,因为Ssex=女成立;当性别是男性时,要通过检查则名
13、字一定不能以Ms.打头元组上的约束条件检查和违约处理插入元组或修改属性的值时,RDBMS检查元组上的约束条件是否被满足如果不满足则操作被拒绝执行 4 完整性约束命名子句CONSTRAINT 约束CONSTRAINT PRIMARY KEY短语|FOREIGN KEY短语|CHECK短语完整性约束命名子句(续)例10 建立学生登记表Student,要求学号在9000099999之间,姓名不能取空值,年龄小于30,性别只能是“男”或“女”。CREATE TABLE Student (Sno NUMERIC(6)CONSTRAINT C1 CHECK(Sno BETWEEN 90000 AND 99
14、999),Sname CHAR(20)CONSTRAINT C2 NOT NULL,Sage NUMERIC(3)CONSTRAINT C3 CHECK(Sage 30),Ssex CHAR(2)CONSTRAINT C4 CHECK(Ssex IN(男,女),CONSTRAINT StudentKey PRIMARY KEY(Sno);在Student表上建立了5个约束条件,包括主码约束(命名为StudentKey)以及C1、C2、C3、C4四个列级约束。完整性约束命名子句(续)修改表中的完整性限制修改表中的完整性限制使用ALTER TABLE语句修改表中的完整性限制完整性约束命名子句(续)
15、例13 修改表Student中的约束条件,要求学号改为在900000999999之间,年龄由小于30改为小于40n可以先删除原来的约束条件,再增加新的约束条件 ALTER TABLE Student DROP CONSTRAINT C1;ALTER TABLE Student ADD CONSTRAINT C1 CHECK(Sno BETWEEN 900000 AND 999999),ALTER TABLE Student DROP CONSTRAINT C3;ALTER TABLE Student ADD CONSTRAINT C3 CHECK(Sage 40);5 触发器触发器(Trigg
16、er)是用户定义在关系表上的一类由事件驱动的特殊过程由服务器自动激活可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力 触发器定义触发器定义触发器 激活触发器激活触发器 删除触发器删除触发器 定义触发器CREATE TRIGGER语法格式 CREATE TRIGGER BEFORE|AFTER ON FOR EACH ROW|STATEMENT WHEN 定义触发器(续)定义触发器的语法说明:1.创建者:表的拥有者2.触发器名3.表名:触发器的目标表4.触发事件:INSERT、DELETE、UPDATE5.触发器类型行级触发器(FOR EACH ROW)语句级触发器(FOR EAC
17、H STATEMENT)定义触发器(续)假设在例11的TEACHER表上创建了一个AFTER UPDATE触发器。如果表TEACHER有1000行,执行如下语句:UPDATE TEACHER SET Deptno=5;如果该触发器为语句级触发器,那么执行完该语句后,触发动作只发生一次如果是行级触发器,触发动作将执行1000次 定义触发器(续)6.触发条件触发条件为真省略WHEN触发条件7.触发动作体触发动作体可以是一个匿名PL/SQL过程块也可以是对已创建存储过程的调用定义触发器(续)例18 定义一个BEFORE行级触发器,为教师表Teacher定义完整性规则“教授的工资不得低于4000元,如
展开阅读全文