6.关系数据理论

学习过程参考(后续章节同)
【公开课】数据库系统概论(王珊老师)(完结)
数据库系统概论课后习题答案(第五版 王珊、萨师煊)
学习数据库系统概论这一篇就够了
6.0 《数据库系统概论》之关系数据库的规范化理论(数据依赖对表的影响[插入-删除-修改-冗余]、1NF-2NF-3NF-BCNF-4NF、函数依赖与多值依赖)
数据库求闭包,求最小函数依赖集,求候选码,判断模式分解是否为无损连接,3NF,BCNF
有关系模式R(ABCDE),回答下面几个问题:

一、思维导图

在这里插入图片描述

二、基础梳理

函数依赖

  • 函数依赖:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r 中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y
    • X中有相同的值,则对应的Y必须相同
      ⇒若一关系r的某属性集X,r中没有上相等的两个元组存在,则X→Y恒成立
    • 只能根据语义 确定一个函数依赖
  • 非平凡的函数依赖:X→Y,但X ⊈ Y
    eg:(Sno,Cno) → Grade
  • 平凡的函数依赖:X→Y,但X ⊆ Y
    eg:(Sno,Cno)→Sno
    • 对于任一关系模式,平凡函数依赖都一定成立,不反映新的语义。
      ⇒无特别声明,总是讨论非平凡的函数依赖
  • 完全函数依赖:在这里插入图片描述
    eg:(Sno,Cno) →F (Grade)(母鸡箭头上加字母在markdown中怎么打,脑补将就下( ´•̥̥̥ω•̥̥̥` ))
  • 部分函数依赖:

在这里插入图片描述
eg: (Sno,Cno)→P Sdept 因为Sno→Sdept,Sno是(Sno, Cno)的真子集

  • 传递函数依赖:
    在这里插入图片描述
    eg:Sno→Sdept,Sdept→Mname
    ⇒ Sno→传递 Mname

在这里插入图片描述
外码中属性或属性组X可能是R中码的真子集,属于外码的一种情况

  • 全码:整个属性组是码
  • 码:表中的某个属性组,唯一确定一个元组
    (主码和候选码都简称为码,区分的话根据上下文)

  • 主属性:包含在任何一个候选码中的属性
  • 非主属性:不包含在任何候选码中的属性

规范化

  • 范式:符合某一种级别的关系模式的集合

  • 规范化:一个低一级范式的关系模式 通过模式分解 可以转换为若干个高一级范式的关系模式的集合,这个过程叫规范化
    在这里插入图片描述
    在这里插入图片描述

  • 1NF:若一个关系模式R的所用属性都是不可分的基本数据项(不允许表中表)
    在这里插入图片描述

    1. 第一范式是关系模式的最起码要求
      in others words,不满足第一范式的数据库模式不能称为关系数据库模式。
    2. 不符合1NF的处理
      将非1NF转换为1NF:
      将复合属性处理为简单属性 或 将多值属性或关键字单独组成一种新的关系
      在这里插入图片描述
  • 2NF:若R∈1NF & 每一个非主属性 完全函数依赖于 任何一个候选码,则R∈2NF
    (简言之,1NF的基础上,非主属性不能部分函数依赖于码)

    • 关系模式R不属于2NF
      • 会产生的问题:
        • 插入异常
        • 删除异常
        • 修改复杂
      • 解决方法:
        • 投影分解
          在这里插入图片描述
  • 3NF:

    • 3NF不能完全消除关系模式中的各种异常情况和数据冗余
      在这里插入图片描述
      在这里插入图片描述

(简言之,在2NF的基础上,不能有非主属性对码的传递函数依赖)

  • BCNF:设关系模式R<U,F>∈1NF,若X →Y且Y ∉ X时,X必含有码,则R<U,F>∈BCNF。
    换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。
    (即 只要有X→Y,则X中一定包含候选键)
    在这里插入图片描述

在这里插入图片描述

  • 规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的分离。
    即“一事一地”的模式设计原则。让一个关系描述一个概念,一个实体或者实体间的一种联系。
    规范化实质上是概念的单一化
    在这里插入图片描述

Armstrong公理

  • 通俗的写:【X】【Y】【Z】都代表关系模式的子集
    自反律:若Y是X的一部分(子集),则X→Y
    增广律:如果X→Y,则XZ→YZ(X∪Z→Y∪Z)
    传递律:如果X→Y,Y→Z,则X→Z
  • 推理
    在这里插入图片描述
  • 闭包F+(+号在右上方)
    在这里插入图片描述
  • X关于函数依赖集F的闭包
    在这里插入图片描述

不要死扣概念,结合例子理解
在这里插入图片描述
在这里插入图片描述

  • 函数依赖集等价
    在这里插入图片描述
  • 最小函数依赖集
    在这里插入图片描述

三、习题

1.选

2004

在这里插入图片描述
(C 满足高一级的必然可满足第一级的,找出最高级的规范即可
作为判断题记住 对于一个关系模式,在函数依赖的条件下,4NF不可判别)
在这里插入图片描述
©

2.填

2002

6.关系模式中最主要的数据依赖关系是( 函数依赖 )和多值依赖。属性间数据依赖关系是一种语义的体现,根据属性间的依赖情况来判断关系模式的规范化程度。现在把关系的范式分为5种,分别是( 1NF),( 2NF ),(3NF ),( BCNF ),(4NF )。一个低一级的范式通过(模式分解 ),可以转换为若干个高一级范式的关系模式集合。

3.判

2002

2.一个关系模式为R(X1,X2,X3,X4)假定该关系存在着如下函数依赖:(X1,X2)→ X3,X2 → X4则该关系属于第二范式。(错)
(2NF:属于1NF&每一个非主属性完全函数依赖于任何一个候选项
本题中,候选项有(x1,x2),而对非主属性x4是非完全函数依赖)
5.按照BCNF的定义,若关系R属于BCNF,则所有的主属性对每一个不包含它的码,也是完全函数依赖。(对)
(BCNF:只要有X→Y,则X中一定包含候选键)

2004

在这里插入图片描述
(对)
在这里插入图片描述
(错 3NF:在2NF的基础上,不能有非主属性对码的传递函数依赖)

4.简答

5.大题

四、课后题

1.解释术语

  • 函数依赖:设R (U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R (U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同, 而在Y上的属性值不同, 则称"X函数确定Y"或"Y函数依赖于X",记作X→Y
    • 函数依赖是最基本的一种数据依赖,也是最重要的一种数据依赖。
    • 函数依赖是属性之间的一种联系,体现在属性值是否相等。由上面的定义可以知道,如果X→Y,则r中任意两个元组,若它们在X上的属性值相同,那么在Y上的属性值一定也相同。
    • 我们要从属性间实际存在的语义来确定他们之间的函数依赖,即函数依赖反映了(描述了)现实世界的一种语义。
    • 函数依赖不是指关系模式R的在某个时刻的关系(值)满足的约束条件,而是指R任何时刻的一切关系均要满足的约束条件
  • 完全函数依赖、部分函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X,都有X′→Y,则称Y对X完全函数依赖;
  • 若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖
  • 设X,Y,Z是关系R中互不相同的属性集合,存在X→Y (Y !→X),Y→Z,则称Z对X传递函数依赖
  • 候选码、主码: 设K为R(U,F)中的属性或属性组合,若K → U则K为R的候选码。若候选码多于一个,则选定其中的一个为主码
  • 外码:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码也称外码
  • 全码:整个属性组是码,称为全码(All-key)
  • 1NF:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF
    • 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库
  • 2NF:若关系模式R∈1NF,并且每一个非主属性都完全依赖于R的码,则R∈2NF
  • 3NF:关系模式R<U,F>中若不存在这样的码X,属性组Y及非主属性Z(Z不包含于Y)使得X→ Y,(Y不→ X),Y→ Z成立,则称R<U,F>∈3NF
  • BCNF:关系模式R<U,F>∈1NF.若X→ Y且(Y不包含于X)时X必含有码,则R<U,F>∈BCNF
  • 多值依赖:设R (U)是属性集U上的一个关系模式,X、Y、Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→ → Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关
  • 4NF:关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→ → Y(Y不包含于X),X都含有码,则称R<U,F>∈4NF

2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。

学生:学号、姓名、出生年月、系名、班号、宿舍区。
班级:班号、专业名、系名、人数、入校年份。
系:系名、系号、系办公地点、人数。
学会:学会名、成立年份、办公地点、人数。
语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?


(1)关系模式如下:
学生:S(Sno,Sname,Sbirth,Dept,Cno,Rno)
班级:C(Cno,Pname,Dept,Cnum,Cyear)
系:D(Dept,Dno,Office,Dnum)
学会:M(Mname,Myear,Maddr,Mnum)
(2)学生S :
最小函数依赖集
Sno→Sname,Sno→Sbirth,Sno→Cno,Cno→Dept,Dept→Rno
传递依赖:
Sno →传递(脑补在箭头上)Dept, Sno→传递 Rno,Cno→传递 Rno

班级C:
最小函数依赖集
Cno→Pname,Cno→Cnum,Cno→Cyear,Pname→Dept.
传递依赖:
Cno和Dept

系D:
最小函数依赖集
Dept→Dno,Dno→Dept,Dno→Office,Dno→Dnum
该模式不存在传递依赖。

学会M:
最小函数依赖集
Mname→Myear,Mname→Maddr,Mname→Mnum
该模式不存在传递依赖。
(3)各关系模式的候选码、外部码,全码如下:
A、学生S候选码:Sno;外部码:Dept、Cno;无全码
B、班级C候选码:Cno;外部码:Dept;无全码
C、系D候选码:Dept或Dno;无外部码;无全码
D、学会M候选码:Mname;无外部码;无全码

3.试由Armostrong公理系统推导出下面三条推理规则

(1)合并规则:若X→Z,X→Y,则有X→YZ

已知X→Z,由增广律知XY→YZ,又因为X→Y,可得XX→XY→YZ
最后根据传递律得X→YZ。

(2) 伪传递规则:由X→Y,WY→Z有XW→Z

已知X→Y,据增广律得XW→WY,因为WY→Z,所以XW→WY→Z
通过传递律可知XW→Z。

(3) 分解规则:X→Y,Z 包含于 Y,有X→Z

已知Z 包含于 Y,根据自反律知Y→Z
又因为X→Y,所以由传递律可得X→Z。

Armostrong公理
	自反律:Y是X的子集,则X->Y
	增广律:X->Y,则XZ->YZ
	传递律:X->Y,Y->Z,则X->Z

4.略

(二轮的时候再来填坑4NF和多值依赖)

5.试举出三个多值依赖的实例

6 有关系模式R(A,B,C,D,E),回答下面几个问题:

(1)若A是R的候选码,具有函数依赖BC → DE,在 什么条件下 R是BCNF?

当属性组BC也是关系模式R的候选码时,R是BCNF。
此时有:A →BC,BC →A成立。

(2)如果存在函数依赖A →B,BC →D,DE →A,找出R的所有码

①L类:C、E
LR类:A、B、D
②取X=CE,且(CE)+=CE≠U;
③取Y中的A:(XA)+=(ACE)={ABCDE}=U,所以ACE为一个候选码
去Y中的B:(XB)+=(BCE)={ABCDE}=U,所以BCE为一个候选码
去Y中的D:(XD)+=(DCE)={ABCDE}=U,所以DCE为一个候选码

故R的候选码包括:ACE,BCE,DCE;
(对于左侧为多属性的函数依赖集求所有候选码
在这里插入图片描述

候选码的求解理论和算法
  对于给定的关系R(A1,A2,…An)和函数依赖集F,可将其属性分为4类:
      L类  仅出现在函数依赖左部的属性。
    R 类  仅出现在函数依赖右部的属性。
    N 类  在函数依赖左右两边均未出现的属性。
    LR类  在函数依赖左右两边均出现的属性。
  定理:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一候选码的成员。
  推论:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,且X+包含了R的全部属性;则X必为R的唯一候选码。

具体的步骤:
	算法描述
		(1)将R 的所有属性分为L、R、LR 和N 四类,并令X 代表L、N 类,Y 代表LR 类。
		(2)求X+。若X+包含了R 的全部属性,则即为R 的唯一候选码,转(5);否则,转(3)。
		(3)在Y 中取一属性A,求(XA)+ ,若它包含了R 的全部属性,则是候选码,转(4);否则,调换一属性反复进行这一过程,直到试完所有Y 中的属性。
		(4)如果已找出所有候选码,则转(5);否则在Y 中依次取2 个、3 个、…,求它们的属性闭包,若其闭包包含R 的全部属性,则是候选码。 
		(5)结束。

求最小函数依赖集
	1.将F中的所有依赖右边化为单一元素
	2.去掉F中的所有依赖左边的冗余属性
		属性中去掉其中的一个,看看是否依然可以推导
	3.去掉F中所有冗余依赖关系.
		去掉后是否无影响

(3)如果存在函数依赖A →B,BC →D,DE →A,R属于3NF还是BCNF

3NF
因为不存在传递函数依赖,所以R属于3NF。因为每个函数依赖的决定因素都不包含码,所以R不属于BCNF

7.判断题,错误的给出反例说明

(1) 任何一个二目关系都是属于3NF的。√
(因为关系模式中只有两个属性,所以无传递)
(2)任何一个二目关系都是属于BCNF的。√
(只有两个属性,决定因素一定有码)
(3)任何一个二目关系都是属于4NF的。√
(只有两个属性不存在非平凡的多值依赖)

(4)当且仅当函数依赖A→B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接 ×
当且仅当函数依赖A←→B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接

(5)若R.A→R.B,R.B→R.C,则R.A→R.C √
(6)若R.A→R.B,R.A→R.C,则R.A→R.(B, C) √
(7)若R.B→R.A,R.C→R.A,则R.(B, C)→R.A √
(8)若R.(B, C)→R.A,则R.B→R.A,R.C→R.A ×
反例:关系模式 SC(S#,C#,G) (S#,C#)→G,但是S# → G,C#→G

8.证明

在这里插入图片描述
(可省,不在考纲内)

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值