数据库系统概论 第四版 知识点整理(6)

2020-06-16 21:36

把指定对象的指定操作权限从指定用户处收回。 例:把用户U4修改学生学号的权限收回 REVOKE UPDATE(Sno) ON TABLE Student FROM U4;

例:收回所有用户对表SC的查询权限

REVOKE SELECT

ON TABLE SC FROM PUBLIC;

例:把用户U5对SC表的INSERT权限收回

REVOKE INSERT ON TABLE SC FROM U5 CASCADE ;(缺省是RESTRICT)

将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回,因为U5将SC的INSERT权限授予U6,U6又将其授予U7,CASCADE系统只收回直接或间接从U5处获得的权限。

Grant 和Revoke向用户授予或收回对数据的操作权限 3、创建数据库模式的权限 :DBA在创建用户时实现 CREATE USER语句格式

CREATE USER

[WITH][DBA | RESOURCE | CONNECT]

拥有DBA权限的用户是系统中的超级用户;只有系统的超级用户才有权创建新的数据库用户;如果没有指定创建的新用户的权限,默认该用户拥有CONNECT权限,只能登录数据库.。

5、统计数据库存在何种特殊安全性

第五章:数据库的完整性

1、什么数据库完整性与数据库安全性的区别和联系

数据完整性:数据的正确性和相容性。

数据库的完整性和完全性是两个不同的概念,但他们有一定联系。 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。

后者是保护数据库,防止被恶意破坏和非法存储。

也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不符合语义的数据。

2、数据模型中完整性约束条件的概念,RDBMS的完整性控制机制应具有的功能

完整性约束条件:数据库中的数据所应满足的语义约束条件。 RDBMS的完整性控制机制应具有3个方面的功能: 1、 定义功能,即提供定义完整性约束条件的机制。

2、 检查功能,即检查用户所发出的操作请求是否违背完整性约束条件。

3、 违约反映,如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的

措施来保证数据的完整性。

3、用SQL实现完整性控制的方法

4、RDBMS如何实现参照完整性

RDBMS在现实参照完整性时需要考虑可能破坏参照完整性的各种情况,以及用户违约后的处理策略。

可能破坏参照完整性的4种情况:在参照关系中插入元祖、修改外码值时可能破坏参照完整性;在删除被参照表的元组、修改主码值时可能破坏参照完整性。

5、触发器的概念

触发器(Trigger)是用户定义在关系表上的一类由事件驱动的特殊过程,有时也叫 (Event-Condition-Action Rule)或ECA规则。

一旦定义,任何用户对表的增删改,均由服务器自动激活触发器,进行集中的完整性控制;可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力。

目的:实现由主键和外键所不能保证的参照完整性和数据一致性,定义更复杂的约束和业务规则,可采用触发器。

1、定义触发器

CREATE TRIGGER语法格式

CREATE TRIGGER <触发器名>

{BEFORE | AFTER} <触发事件(INSERT、UPDATE、DELETE )> ON <表名>

FOR EACH {ROW | STATEMENT} [WHEN <触发条件>]

<触发动作体> CREATE TRIGGER 必须是批处理中的第一条语句,并且只能应用于一个表。 触发器只能在当前的数据库中创建,但是可以引用当前数据库的外部对象。

定义触发器的语法说明: 1. 创建者:表的拥有者

2. 触发器名:表名和触发器必须在同一架构下 3. 表名:触发器的目标表

4. 触发事件:INSERT、DELETE、UPDATE

触发动作体与触发事件之间的关系:AFTER 、BEFORE 、INSTEAD OF,默认是AFTER 5.触发器类型:依照触发动作的间隔尺寸,行级触发器(FOR EACH ROW):触发动作体的执行次数根据目标表的行数决定;语句级触发器(FOR EACH STATEMENT):触发动作体只执行一次。

6. 触发条件:触发器激活(触发事件发生)后,如触发条件为真,触发动作体才会执行,省略WHEN触发条件,触发动作体在触发器激活后立即执行。

7. 触发动作体:触发动作体可以是一个匿名PL/SQL( Transact-SQL)过程块,也可以是对已创建存储过程的调用。如果触发动作体执行失败,激活触发器的事件会终止,目标表不发生变化。

8、存储过程(Stored Procedure):是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它 。

例:定义一个BEFORE行级触发器,为教师表Teacher定义完整性规则“教授的工资不得低于4000元,如果低于4000元,自动改为4000元”。

CREATE TRIGGER Insert_Or_Update_Sal

BEFORE INSERT OR UPDATE ON Teacher /*触发事件是插入或更新操作*/

FOR EACH ROW /*行级触发器*/

AS BEGIN /*定义触发动作体,是PL/SQL过程块*/ IF (new.Job='教授') AND (new.Sal < 4000) THEN new.Sal :=4000;

END IF;

END;

例:定义AFTER行级触发器,当教师表Teacher的工资发生变化后就自动在工资变化表Sal_log中增加一条相应记录

首先建立工资变化表Sal_log

CREATE TABLE Sal_log

(Eno NUMERIC(4) references teacher(eno), Sal NUMERIC(7,2), Username char(10), Date TIMESTAMP );

2、激活触发器

一个数据表上可能定义了多个触发器,同一个表上的多个触发器激活时遵循如下的执行顺序:(1) 执行该表上的BEFORE触发器。(2) 激活触发器的SQL语句。(3) 执行该表上的AFTER触发器。

例:当执行修改某个教师工资的SQL语句,激活上述定义的触发器 UPDATE Teacher SET Sal=800 WHERE Ename='陈平'; 执行顺序是: 执行触发器Insert_Or_Update_Sal

执行SQL语句“UPDATE Teacher SET Sal=800 WHERE Ename='陈平';” 执行触发器Insert_Sal; 执行触发器Update_Sal

3、删除触发器 DROP TRIGGER <触发器名> ON <表名>;

触发器必须是一个已经创建的触发器,并且只能由具有相应权限的用户删除

例:删除教师表Teacher上的触发器Insert_Sal DROP TRIGGER Insert_Sal ON Teacher;

第六章:关系数据理论

1、为何要提出关系数据库规范化,即规范化理论是为了解决关系数据库中什么问题而引入的?

用来改造关系模式。通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。

2、函数依赖的基本概念,码(包括超码,主码,候选码,外码)的基本概念

1、函数依赖:设R(U)是一个属性集U上的关系模式,X和Y是U的子集, 若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。 所谓函数依赖是指关系中属性或属性组的值可以决定其它属性的值,设R(U)是属性集U上的关系模式,X、Y是U的子集:

如果X和Y之间是1:1关系(一对一关系),如学校和校长之间就是1:1关系,则存在函数依赖X → Y和Y →X。

如果X和Y之间是1:n关系(一对多关系),如年龄和姓名之间就是1:n关系,则存在函数依赖Y → X。

如果X和Y之间是m:n关系(多对多关系),如学生和课程之间就是m:n关系,则X和Y之间不存在函数依赖。

在关系模式R(U)中,对于U的子集X和Y,如果X→Y,但Y ? X,则称X→Y是非平凡的函数依赖;若X→Y,但Y ? X, 则称X→Y是平凡的函数依赖。

例:在关系SC(Sno, Cno, Grade)中,非平凡函数依赖: (Sno, Cno) → Grade;

平凡函数依赖: (Sno, Cno) → Sno (Sno, Cno) → Cno

若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。 2、 完全函数依赖: 在R(U)中,如果X→Y,并且对于X的任何一个真子集X‘,都有X‘ Y, 则称Y对X完全函数依赖,记作

3、部分函数依赖:若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作

例:中 (Sno,Cno)→Grade是完全函数依赖,(Sno,Cno)→Sdept是部分函数依赖 ∵Sno →Sdept成立,且Sno是(Sno,Cno)的真子集。

当存在部分依赖时,就会产生数据冗余。 4、传递函数依赖:在R(U)中,如果X→Y,(Y传递函数依赖,记为:

X) ,Y

X ,Y→Z,Z

Y,则称Z对X

注: 如果Y→X, 即X←→Y,则Z直接依赖于X。 例: 在关系Std(Sno, Sname,Sdept, Mname)中,有: Sno → Sdept,Sdept → Mname Mname传递函数依赖于Sno

5、侯选码:设K为R中的属性或属性组,若K

U (每个属性), 则K称为R

的侯选码(Candidate Key)

注K满足两个条件:

1.K完全函数决定该关系的所有其它属性。

2.K的任何真子集都不能完全函数决定R的所有其它属性,K必须是最小的。 若候选码多于一个,则选定其中的一个做为主码(Primary Key),通常称之为码。 主属性(Prime attribute):包含在任何一个候选码中的属性。 非主属性或非码属性:不包含在任何码中的属性。 例:关系模式S(Sno,Sdept,Sage),单个属性Sno是码, SC(Sno,Cno,Grade)中,(Sno,Cno)是码

由于码能唯一确定一个元组,所以关系的码函数决定该关系的所有属;一个关系中的所有属性都函数依赖于该关系的码。

例:关系模式R(P,W,A)P:演奏者 W:作品 A:听众:一个演奏者可以演奏多个作品,某一作品可被多个演奏者演奏,听众可以欣赏不同演奏者的不同作品。 码为(P,W,A),即All-Key

6、外部码: 关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码

如在SC(Sno,Cno,Grade)中,Sno不是码,

但Sno是关系模式S(Sno,Sdept,Sage)的码,则Sno是关系模式SC的外部码 主码与外部码一起提供了表示关系之间联系的手段

3、1NF,2NF,3NF,BCNF的定义及应用,能判断某一个关系模式处于第几范式,各级别范式存在的问题(插入,删除和更新异常)和解决方法、

各种范式之间存在联系:

1、1NF :如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库;简而言之,第一范式就是无重复的列,关系数据库研究的关系都是规范化的关系。但是满足第一范式的关系模式并不一定是一个好的关系模式。

例:关系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一个地方。

函数依赖包括: (Sno, Cno) F Grade

(Sno, Cno) P Sdept ∵ Sno → Sdept

(Sno, Cno) P Sloc ∵ Sdept 传递 Sloc

S-L-C的码为(Sno, Cno)。 S-L-C满足第一范式。

非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno)。

插入异常:如未选课的学生不能插入。


数据库系统概论 第四版 知识点整理(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学英语(三)第2阶段测试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: