数据库-模式分解

317 阅读1分钟

数据库范式之间的转换一般是通过拆分表中属性,将具有部分依赖和传递依赖的属性分离出来。这种操作称为模式分解。

(简单来说就是咱们把一个表拆成多个表,多个表依然有原来那一个表的依赖)

image.png

模式分解有两种情况

保持函数依赖 : 对于关系模式R ,有依赖集F。R关系模式分解得到多个关系模式,并且此时多个关系模式的依赖集与分解前一致,则称为保持函数依赖的分解。注意:要消除冗余依赖

例:关系模式R(ABC)有依赖集{A->B,B->C,A->C},如何进行模式分解而保持函数依赖?

R可分解为R1(AB)、R2(BC)即可满足条件。而A-C只要由A-B、B-C推出即可,所以可以消除。


无损分解:对于关系模式R,有依赖集F。分解得到多个关系模式,还能还原成原关系模式R,则称为无损分解。

  • 超过两个关系模式的无损分解:表格法(略)
  • 两个关系模式无损分解定理:R1 ∩ R2->(R1-R2)或R1 ∩ R2->(R2-R1)