软考|数据库系统|4.规范化理论

规范化理论

主要针对:

  • 数据冗余

  • 修改异常

  • 插入异常

  • 删除异常

只要有数据冗余,就会有很多问题

解决数据冗余:拆表

依赖

如图,很直观

部分依赖 通过AB能得出C,通过A也能得出C,通过B也能得出C,那么说C部分依赖于AB

完全依赖 通过AB能得出C,但是AB单独得不出C,那么说C完全依赖于AB

传递依赖 通过A得到B,通过B得到C,但是C得不到B,B得不到A,那么说C传递依赖于A

分为三类

  • 候选键:唯一标识元组,并且无冗余

  • 主键:从候选键中任选一个

  • 外键:其他关系的主键

图示法求候选键

  1. 将关系的函数依赖关系,用有向图表示

  2. 找出入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若可以遍历所有结点,就是候选键

  3. 若不能,尝试将一些中间结点并入入度为0的属性集中,直至可以遍历,那么这个集合为候选键

来几道例题:

[答案]:[A] [ABDC] [B]

主属性与非主属性

组成候选码的属性就是主属性,其他的是非主属性

通常和候选键一起考察

范式

第一范式(1NF)

在关系模式R中,当且仅当所有域只包含原子值,即所有属性都是不可再分的数据项,则称关系模式R是第一范式

第二范式

当且仅当关系模式R是第一范式,且每一个属性完全依赖候选键(没有不完全依赖),则称关系模式是第二范式

第三范式

当且仅当关系模式R是第二范式,且R中没有非主属性传递依赖于候选键时,则称关系模式R是第三范式

BC范式

设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码

也就是说,只要属性或属性组A能够决定任何一个属性B,则A的子集中必须有候选键

范式总结

模式分解

保持函数依赖分解

设数据库模式P={R1,R2,..,RK}是关系模式R的一个分解,F是R上函数依赖集,P中每个模式Ri上的FD集是Fi

如果{F1,F2,…,Fk}与F等价,那么称分解保持FD

无损分解

即可以还原的分解

指将一个关系模式分解成若干个关系,通过自然连接和投影等运算仍能还原到原来的关系模式

表格法分解

将所有属性列出,列出对应关系

然后将它合并,观察是否可以还原,可以判断是否无损分解

公式法

只适用于一个关系模式分解为两个关系模式

如图P1

交集A R1-R2=B R2-R1=C

A->B是无损

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇