第6章 关系数据理论 总结

该章主要学习了如何判断一个数据库模式的优劣程度,或者说为设计关系模式做一些理论参考

1、范式涉及的概念

1.1 关系模式复习

一个关系模式应当是一个五元组,即R(U,D,DOM,F)

  • R是关系名
  • U为属性组
  • D为属性的域
  • DOM为属性到域的映射
  • F为属性组U上的一组数据依赖

1.2 数据依赖

最重要的是函数依赖和多值依赖

1.2.1 函数依赖

函数依赖描述了一个关系模式(二维表)中属性间的决定关系,例如学生表中,学号决定了姓名,记为

学 号 → 姓 名 学号 \rightarrow 姓名
X → Y X \rightarrow Y XY,X函数确定Y,Y函数依赖于X,X称为这个函数依赖的决定因素
若Y不函数依赖于X,则记作 X ↛ Y X \nrightarrow Y XY

X→Y,但Y⊈X 则称X→Y是非平凡的函数依赖
X→Y,但Y⊆X 则称X→Y是平凡的函数依赖
平凡的函数依赖必然存在,意义不大,我们只讨论非平凡的函数依赖

如果X→Y,并且对于X的任何一个真子集X’ , 都有 X ′ ↛ Y X' \nrightarrow Y XY, 则称Y对X完全函数依赖,记作 X ⟶ F Y X \overset F \longrightarrow Y XFY
若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作 X ⟶ P Y X \overset P \longrightarrow Y XPY

在R(U)中,如果X→Y(Y⊈X), Y ↛ X Y \nrightarrow X YX,Y→Z,Z⊈Y, 则称Z对X传递函数依赖

1.2.2 多值依赖

设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。

若X→→Y,而Z=Ф,则称X→→Y为平凡的多值依赖,否则称X→→Y为非平凡的多值依赖

通俗说,就是二维表中一个属性的某个值对应了另一个属性的一组值

1.3 码

设K为R<U,F>中的属性或属性组合。
K ⟶ F U K \overset F \longrightarrow U KFU,则K称为R的一个候选码(Candidate Key)
若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)

如果U部分函数依赖于K,即 K ⟶ P U K \overset P \longrightarrow U KPU,则K称为超码
候选码是最小的超码,即K的任意真子集都不是候选码

包含在任何一个候选码中的属性 ,称为主属性
不包含在任何码中的属性称为非主属性

整个属性组是码,称为全码

主 码 ⊆ 候 选 码 主码 \subseteq 候选码 ⊆ 码 \subseteq 码

2、范式

各种范式之间存在联系:
1 N F ⊃ 2 N F 1NF \supset 2NF 1NF2NF ⊃ 3 N F \supset 3NF 3NF ⊃ B C N F \supset BCNF BCNF ⊃ 4 N F \supset 4NF 4NF ⊃ 5 N F \supset 5NF 5NF

某一关系模式R为第n范式,可简记为R∈nNF

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

2.1 第一范式 (1NF)

关系模式是一张标准的二维表,则属于1NF

2.2 第二范式 (2NF)

若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF

例:S-L-C(Sno,Sdept,Sloc,Cno,Grade), Sloc为学生的住处,并且每个系的学生住在同一个地方。S-L-C的码为(Sno,Cno)
(Sno,Cno)→Grade
Sno→Sdept, (Sno,Cno)→Sdept
Sno→Sloc, (Sno,Cno)→Sloc
Sdept→Sloc
非主属性Sdept、Sloc并不完全依赖于码
关系模式S-L-C不属于2NF

一个关系模式不属于2NF,就会出现以下问题(以上表为例)

  • 插入异常 ,如果插入一个新学生,但该生未选课,即该生无Cno,由于插入元组时,必须给定码值,因此插入失败
  • 删除异常,如果S4只选了一门课C3,现在他不再选这门课,则删除C3后,整个元组的其他信息也被删除了
  • 修改复杂,一个学生选了多门课,则Sdept,Sloc被存储了多次。如果该生转系,则需要修改所有相关的Sdept和Sloc,造成修改的复杂化

2.3 第三范式 (3NF)

设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z (Y⊇ Z), 使得X→Y,Y→Z成立,且 Y ↛ X Y \nrightarrow X YX不成立,

关系模式R中没有传递依赖,则R∈3NF

2.4 BC范式 (BCNF)

设关系模式R<U,F>∈1NF,若X →Y且Y ⊆ X时X必含有码,则R<U,F>∈BCNF

换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF

2.5 第四范式 (4NF)

关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF

3、候选码的求解

3.1 闭包

闭包(记作X+ )就是由一个属性直接或间接推导出的所有属性的集合

例如:
f={a->b,b->c,a->d,e->f};
由a可直接得到b和d,间接得到c,
则a的闭包就是{a,b,c,d}

3.2 函数依赖分类

对于给定的关系R(A1,A2,…An)和函数依赖集F,可将其属性分为4类:

  • L类,仅出现在函数依赖左部的属性
  • R 类,仅出现在函数依赖右部的属性
  • N 类,在函数依赖左右两边均未出现的属性
  • LR类,在函数依赖左右两边均出现的属性

3.3 相关定理

定理:
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一候选码的成员
推论:
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,且X+包含了R的全部属性。则X必为R的唯一候选码


定理:
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是R类属性,则X不在任何候选码中
定理:
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是N类属性,则X必包含在R的任一候选码中
推论:
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类和N类组成的属性集,且X+包含了R的全部属性;则X是R的唯一候选码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值