数据库系统期末总结(二)(往届试卷2018年5-6月A卷、B卷、C卷、E卷选择题)

接着上次的总结:https://blog.csdn.net/qq_41938259/article/details/103511256

这是我对《数据库系统基础》第二次期末总结。根据往届的三张试卷2018年5月A卷,2018年5月C卷,2018年6月E卷。今天又增加了2018年5月的B卷。错题内容主要是上次没有来得及总结完的,以及一些生疏的概念。

本书名字是《数据库基础教程》,机械工业出版社,作者是斯坦福的Jeffrey D. UllmanJennifer Widom岳丽华,金培权,万寿红翻译。我的任课老师叫叶庆生

根据错题总结,罗列了以下几个关键词:

  • 数据库系统权限
  • E-R模型转换为关系模型
  • 四个常见范式(1NF、2NF、3NF、BCNF)
  • 第四范式(4NF)和多值依赖

还是结合概念和题目逐一总结


数据库系统权限

首先要了解设定数据库系统权限的几条基本语句:

#前提操作
create user yao1  #建立用户
identified by tom   #设置密码
account unlock;    #账号非锁定状态

#grant用于赋予数据库某种权限
grant connect to yao1;  # 赋予链接数据权限

#创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)等。
grant resource to yao1;    

#revoke用于回收用户权限
revoke connect from yao1;   #回收用户的链接权限
revoke resource from yao1;   #用户创建 执行权限

alter user yao1 identified by yao1;  # 重新修改密码
alter user yao1 account lock;    #将用户处于锁定状态

考试关于数据库权限指令的内容,主要是考察grant和revoke两个语句,要注意的是在使用grant时,结尾是否加with grant option的区别:有with grant option是指前面赋予的权限可以被传递,示例如下:

User U: grant select on T to V, W;
User U: grant select on T to V, W with grant option;


User W: grant insert on T to X;

先执行一三行的话,X有的权限只是insert。而执行带有with grant option的二行后,再执行第三行的话X拥有的权限就有insert和select,因为此时的W是可以传递权限的。

接着,两个关键词:restrict和cascade

  • restrict: 确保只有不存在相关视图和 完整性约束的表才能删除
  • cascade: 任何相关视图和完整性约束一并被删除

为了更深刻的理解,请看题:2018年5月A卷,题14:考虑有用户U、V、W、X和Y,其中U是T的拥有者。依次执行以下操作:

User U: grant select on T to V, W with grant option
User V: grant select on T to W
User W: grant select on T to X, Y
User U: grant select on T to Y
User U: revoke select on T from V restrict
User U: revoke select on T from W cascade

以下说法正确的是:

A.V有SELECT ON T的权限

B.W有授权SELECT ON T的权限

C.Y没有SELECT ON T的权限

D.X有SELECT ON T的权限

B和C一眼看出就是错的(因为最后一行cascade说明W的select on T的权限被联级删除B错。第五行是用户U授予Y的select on T的权限, 权且不说倒数第二行会不会执行,最后两行撤回权限操作是对用户V和W进行的,Y的SELECT ON T权限不可能被它们一起删掉)。

所以,剩下A和D。正确答案是A,因为X的select on T权限被最后一句联级删除了。从下面两句(原来的第三行和最后一行):

User W: grant select on T to X, Y
User U: revoke select on T from W cascade

所以X没有select on T的权限的。选A

 

2018年5月B卷,题14:若关系T的拥有者为Amy,执行以下语句序列后:

Amy: grant select, insert, delete on T to Bob with grant option
Amy: grant select, insert, delete on T to Carol with grant option
Bob: grant select, insert on T to David
Carol: grant select, delete on T to David
Amy: revoke select, insert, delete from Bob cascade

David在T上还拥有的权限有:

A.select,delete on T

B.select on T

C.select,insert,delete on T

D.没有任何权限

这一题选A,因为最后一句是联级删除,而Bob给David授权了select和insert。而Carol给Bob授权了select和delete。所以联级删除只是删除了select和insert,而David还有select权限是因为Carol也给David授权了这个,除此之外还有delete。所以就选A了。


E-R模型转换为关系模型

具体的概念在书上《第四章 高级数据库模型》的4.5节“从E/R到关系设计”提及(见P92到P96)。不过书上讲的比较细致,尤其是在处理弱实体集的方面。但重点是4.5.2节内容“E/R联系到关系的转化”(P92)。书上长篇大论,会使你对这些转换的原由有一个十分清晰的理解,主要是为什么要将E-R模型转换为关系模型?(或者说“为什么将E/R联系转化到关系?”)

但这里就直接给出转化的结论吧,这里引用了一位博主的总结。

源地址:https://blog.csdn.net/weixin_42657318/article/details/89165328

以下给出相关摘要:

E-R模型转换为关系模型的三个转换准则:

1:1情况

遇到1:1 关系的话在两个实体任选一个添加另一个实体的主键即可。

 

1:N情况

1:N 遇到 1:N 关系的话在N端添加另一端的主键,假如有学生和班级两个实体,一个班级可以容纳多个学生,但是一个学生只能选择一个班级, 因此班级和学生是1:N的关系,现在要转换为关系模型, 我们只需在学生的这端加上班级的唯一标识即可,这样做的原因是,因为一个学生只能有一个班级,班级是相对学生唯一的。

 

N:M情况

遇到N:M我们需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可。例如有学生和老师两个实体, 一个学生可以由多名老师来授课,一名老师也可以授课多名学生,它们是M:N关系的,假如联系为授课,该联系上有成绩属性,因此当我们把它转换为关系模型时,我们把联系转换为联系实体,并添加学生实体的主键(学号)和教师实体的主键(教师编号)作为自己的主键。

值得注意的是,授课实体的外键分别是学号和教师编号,但是它的主键是(学号,教师编号),另外它还拥有自己的一个属性成绩。

 

1:1:N情况

这是三元联系的对应关系,但是当转换为关系模型时,和1:N的情况是差不多的。我们只需将N端添加另外两端的主键即可。

 

M:N:P情况

这种三元联系的三种多对应关系,看上去很复杂,其实转换起来并不是那么复杂了,我们要做的仅仅是将其中的联系转换为联系实体,然后在联系实体上添加M端N端P端的主键,然后加上联系实体自身的属性,就行了。

2018年5月B卷,题13:从E-R模型关系向关系模型转换时,一个M:N联系转换为关系模式时,该关系模式的关键字是()。

A.M端实体的关键字

B.N端实体的关键字

C.M端实体关键字与N端实体的关键字组合

D.重新选取其他属性

答案是C。跟据M:N情况中的“遇到N:M我们需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可。”一句,选择C。

 

2018年6月E卷,题2:在E-R模型中,如果有6个不同实体集,有9个不同的二元联系,其中3个1:N联系,3个1:1联系,3个M:N联系,根据ER模型转换成关系模型的规则,转换成关系的数目是:()。

A.6    B.9    C.12    D.15

对于这种计算转换后的关系数目的题目,牢记以下几条规则:

一对一联系:隐含在实体对应的关系中
一对多联系:隐含在实体对应的关系中
多对多联系:直接用关系表示

所以,最终转换成关系的数目=M:N联系的个数(题中为3)+实体集个数(题目中为6),答案是9。

所以选B。


四个常见范式(1NF、2NF、3NF、BCNF)

以下是这四个范式的概念定义:

第一范式(1NF)

若关系模式中R(U)中关系的每个分量都是不可分的数据项(原子,值),则称R(U)属于第一范式,记为R(U)\in1NF。示例:Star(name,address(city,street))不属于1NF应为address可分,不是原子的。

第二范式(2NF)

若R(U)\in1NF且U中的每一非主属性完全依赖于候选键,则称R(U)属于第二范式,记为R(U)\in2NF。示例有R(S#,SN,SD,CN,G)。其函数依赖有S#->SN,S#->SD,{S#,CN}->G。易得候选键是{S#,CN},非主属性是SN,SD和G。由S#->SN,S#->SD,可以得到S#->{SN,SD}。而候选键{S#,CN}->{SN,SD}也是可以得到的。而前者的S#是候选键{S#,CN}的子集。所以不符合2NF定义,也就是说候选键可以决定内容,其某个子集也可以决定,那就不符合2NF。

第三范式(3NF)

概念较长,总而言之就是。R(U)如果满足2NF的定义,而且不存在任何依赖关系传递的话,R(U)就是3NF。可见3NF比2NF更加严格。那什么是依赖关系传递?A->B,B->C,所以A->C。

BCNF(Boyce-Codd范式)

若R(U)\in1NF,若对于任何X->Y\inF(或X->A\inF),当Y\nsubseteqX(或A\notinX)时,X必含有候选键。则称R(U)属于Boyce-Codd范式,记为R(U)\inBCNF。

2018年5月A卷,题6: 假设员工关系ENP(员工号,姓名,性别,部门,部门电话,部门负责人,家庭住址,家庭成员,成员关系)如下表所示。如果一个部门只能由一部电话和一位负责人,一个员工可以有多个家庭成员,那么关系EMP属于()

A.1NF    B.2NF    C.3NF    D.BCNF

选A。“一个部门只能由一部电话和一位负责人”所以有依赖关系:部门->{部门电话,部门负责人}。自然知道一个员工的工号自然就能找到他隶属的部门(正常逻辑,一个员工不可能属于两个部门的),所以有依赖关系:员工号->部门。得知有依赖传递,不符合3NF,自然也不符合更严谨的BCNF。

而这个关系EMP的主键/候选键是什么?是{员工号,姓名,性别}。而且有这样的依赖关系:{员工号,姓名,性别}->部门。而之前已经得到了这样一个依赖关系:员工号->部门。而员工号是{员工号,姓名,性别}的子集,也不符合2NF的规定,所以只能是1NF。选A了。


第四范式(4NF)和多值依赖

第四范式(4NF)考的相对较少,只有寥寥几题。不过与之密切联系的多值依赖的题目却比较多,先来看概念:

什么是“多值依赖”

数据库系统期末总结(二)(往届试卷2018年5-6月A卷、B卷、C卷、E卷选择题)_第1张图片

记得,多值依赖的符号是双箭头“->->"。多值依赖的特性如下,主要是考这个:

接着是第四范式(4NF)的定义:

字数较多,都直接截了图。

 

2018年6月卷E,题9: 下面哪一个规则在多值依赖中不成立:()

A.分解规则    B.传递规则    C.互补规则    D.平凡依赖原则

选A。第二张图的示例中就指出”有C->->HR,不能推出C->->H和C->->R“。所以不满足”分解规则“。而函数依赖是满足的,即”有C->HR,可以推出C->H和C->R“。接着给出平凡依赖和非平凡依赖原则的概念解释:

平凡依赖非平凡依赖原则:

设X,Y均为某关系上的属性集,且X→Y
1)若Y包含于X,则称X→Y为:平凡函数依赖
2)若Y不包含于X,则称X→Y为:非平凡函数依赖

Y包含于X内,W于X相交,与Y无直接交集。

则:X→Y为平凡函数依赖

  X→W, W→Y为非平凡函数依赖

关于第四范式(4NF),2018年5月B卷,题9:若有关系R(A,B,C,D,E),有多值依赖A->->B,B->->D,无函数依赖。以下选项中可能出现在最终4NF分解中的关系模式是:()

A.(A,D)    B.(A,B,C,E)    C.(B,C,E)    D.(A,C)

选A。因为A->->B,B->->D,可以推到A->->D。而分解是按照函数依赖得出的,所以最后的关系模式应该有(A,B)或(B,D)或(A,D)中的一个。


END

你可能感兴趣的:(数据库系统SQL,server和MySQL的学习)