数据库系统-学习记录3

关系数据库不能消除数据冗余,只能控制

关系模式的规范化

第一范式:表格中不能套表格

定义:若R的每个分量都是不可分的数据项,则R ∈ \in 1NF
从型上看:不存在嵌套结构
从值上看:不存在重复组

第二范式:不存在非主属性对码(关键字)的部分依赖

定义:若R ∈ \in 1NF,且R中的每一个非主属性都完全函数依赖于R的任一候选码,则R ∈ \in 2NF

从1NF分解为2NF的方法:破坏部分依赖的条件
考察关系表中的函数依赖关系,找出完全依赖和部分依赖,若是部分依赖,则标记出其中的主属性,再按主属性进行分解

第三范式:不存在非主属性对码的传递依赖

定义:如果关系R的任意一个非主属性都不传递函数依赖于它的任意一个候选码,则R ∈ \in 3NF

从2NF分解为3NF的方法:破坏传递依赖的条件

定理:一个3NF的关系必定是2NF
证明:反证法:假设 R ∈ 3 N F R\in 3NF R3NF,但 R ∉ 2 N F R\notin 2NF R/2NF,则R中必定存在非主属性A、候选码X与X的真子集X’,使得 X ′ → A X'\rightarrow A XA(不满足第二范式时,存在部分依赖)

  1. X’是候选码X的真子集,则有 X − X ′ ≠ ∅ X-X'\not= \empty XX=;A是非主属性,则 A − X ≠ ∅ A-X\not=\empty AX= A − X ′ ≠ ∅ A-X'\not=\empty AX=。因此,A、X、X’是U的不同子集
  2. X’是候选码X的真子集,则有 X → X ′ X\rightarrow X' XX X ′ ↛ X X'\not\rightarrow X XX联合反证假设 X ′ → A X'\rightarrow A XA可知存在传递依赖
  3. 说明R不满足3NF,与假设矛盾
    证毕.

现有结论:若关系R的所有属性都是主属性,则R必定是3NF

达到3NF的关系仍然可能存在问题

BCNF:对于一个关系R,每个函数左边都包含一个候选关键字

定义:关系模式R<U,F> ∈ \in 1NF。若函数依赖集合F中的所有函数依赖X → \rightarrow Y(Y不包含于X)的左部都包含R的任一候选码,则R ∈ \in BCNF。换言之,BCF中的所有依赖的左部都必须包含候选码

在满足3NF的情况下,不一定满足BCNF范式

从3NF分解为BCNF的方法:消除不包含关系

定理:一个BCNF关系必定是3NF
证明:反证:假设R是一个BCNF,但不是3NF。则必然存在一个非主属性A和候选码X以及属性集Y,使得 X → Y ,   Y ↛ X ,   Y → A X\rightarrow Y,\ Y\not\rightarrow X,\ Y\rightarrow A XY, YX, YA
即Y不包含R的候选码,但 Y → A Y\rightarrow A YA却成立
此时R不满足BCNF的定义,不是BCNF,与假设矛盾
证毕.

现有结论:任何的二元关系必定是BCNF

数据依赖公理

阿氏公理

1、自反律:若 Y ⊆ X Y\subseteq X YX,则 X → Y X\rightarrow Y XY
2、增广律:若 X → Y X\rightarrow Y XY Z ⊆ U Z\subseteq U ZU,则 X Z → Y Z XZ\rightarrow YZ XZYZ
3、传递律:若 X → Y X\rightarrow Y XY Y → Z Y\rightarrow Z YZ,则 X → Z X\rightarrow Z XZ

证明:
设s,t是关系r的任意两个元组
1、自反律:若s[x]=t[x],则在s和t中的x的任何子集也相等
因为 Y ⊆ X Y\subseteq X YX,所以s[y]=t[y],因此 X → Y X\rightarrow Y XY
2、增广律:若s[xz]=t[xz],即s[x]s[z]=t[x]t[z],则s[x]=t[x]且s[z]=t[z]。因为 X → Y X\rightarrow Y XY,所以s[y]=t[y],所以s[yz]=s[y]s[z]=t[y]t[z]=t[yz],所以 X Z → Y Z XZ\rightarrow YZ XZYZ
3、传递律:若s[x]=t[x],因为 X → Y X\rightarrow Y XY,所以s[y]=t[y]。又因为 Y → Z Y\rightarrow Z YZ,所以s[z]=t[z], X → Z X\rightarrow Z XZ

公理的推论:
1、合并规则:若 X → Y X\rightarrow Y XY X → Z X\rightarrow Z XZ,则 X → Y Z X\rightarrow YZ XYZ
2、分解规则:若 X → Y Z X\rightarrow YZ XYZ,则 X → Y X\rightarrow Y XY X → Z X\rightarrow Z XZ
3、伪传递规则:若 X → Y X\rightarrow Y XY W Y → Z WY\rightarrow Z WYZ,则 W X → Z WX\rightarrow Z WXZ

函数依赖集的等价和覆盖

定义:如果 F + = G + F^+=G^+ F+=G+,就说函数依赖集F覆盖G或F与G等价

依赖集F的闭包 F + F^+ F+:F的所有可推导的函数依赖的全集

定理: F + = G + F^+=G^+ F+=G+的充分必要条件是 F ⊆ G + F\subseteq G^+ FG+ G ⊆ F + G\subseteq F^+ GF+
证明:(1)必要性:因为F和G等价,所以 F + = G + F^+=G^+ F+=G+,又因为 F ⊆ F + F\subseteq F^+ FF+,所以 F ⊆ G + F\subseteq G^+ FG+。同理,因为 G ⊆ G + G\subseteq G^+ GG+,所以 G ⊆ F + G\subseteq F^+ GF+
(2)充分性: ∀ X → Y ∈ F + \forall X\rightarrow Y\in F^+ XYF+,有 Y ⊆ X F + Y\subseteq X_F^+ YXF+,又因为 F ⊆ G + F\subseteq G^+ FG+,所以 Y ⊆ X G + + Y\subseteq X_{G^+}^+ YXG++。所以 X → Y ∈ ( G + ) + = G + X\rightarrow Y\in (G^+)^+ = G^+ XY(G+)+=G+,所以 F + ⊆ G + F^+\subseteq G^+ F+G+。同理可证 G + ⊆ F + G^+ \subseteq F^+ G+F+,所以 F + = G + F^+=G^+ F+=G+,即F和G等价。

根据上述定理,在判断依赖集F和G是否等价时,只需验证 F ⊆ G + F\subseteq G^+ FG+ G ⊆ F + G\subseteq F^+ GF+即可

最小函数依赖集

定义:满足下列条件的F被称为一个最小函数依赖集 F m F_m Fm
(1)F中每个函数依赖的右部都是单属性(右部没有多余的属性)
(2)对于F的任意函数依赖 X → A X\rightarrow A XA F − { X → A } F-\{X\rightarrow A\} F{XA}与F都不等价(不存在多余的函数依赖)
(3)对于F中的任一函数依赖 X → A X\rightarrow A XA和X的真子集Z, ( F − ( X → A ) ) ∪ { Z → A } (F-(X\rightarrow A))\cup\{Z\rightarrow A\} (F(XA)){ZA}与F都不等价(左部没有多余的属性)

定理:每个F与 F m F_m Fm等价

关系模式的分解

无损连接性与依赖保持性

对于R<U, F>中的任何一个关系r,R分解 ρ = { R 1 ,   R 2 , … , R k } \rho = \{R_1,\ R_2,\dots,R_k\} ρ={R1, R2,,Rk}
无损连接性: r = Π R 1 ( r ) ⋈ Π R 2 ( r ) ⋈ ⋯ ⋈ Π R k ( r ) r=\Pi_{R_1}(r)\Join \Pi_{R_2}(r)\Join\cdots\Join\Pi_{R_k}(r) r=ΠR1(r)ΠR2(r)ΠRk(r)
保持函数依赖: F ≡ Π R 1 ( F ) ∪ Π R 2 ( F ) ∪ ⋯ ∪ Π R K ( F ) F\equiv\Pi_{R_1}(F)\cup\Pi_{R_2}(F)\cup\cdots\cup\Pi_{R_K}(F) FΠR1(F)ΠR2(F)ΠRK(F),其中: Π R i ( F ) = { X → Y ∣ X → Y ∈ F + ∧ X Y ⊆ R i } \Pi_{R_i}(F)=\{X\rightarrow Y|X\rightarrow Y\in F^+ \wedge XY\subseteq R_i\} ΠRi(F)={XYXYF+XYRi}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值