范式
1NF:
2NF:
3NF:
BCNF:
4NF:
5NF:
屬性不可再分
非主屬性均
既不部分依賴于候選鍵
也不傳遞依賴于候選鍵
非主屬性均
既不部分依賴于候選鍵
也不傳遞依賴于候選鍵
且候選鍵均包含主鍵
非主屬性均不部分賴于候選鍵
無非平凡且非函式依賴的多值依賴
每一個連接依賴均由候選碼所隱含
<style>#mermaid-svg-igHRmJ9sk61qN7sn .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-igHRmJ9sk61qN7sn .label text{fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn .node rect,#mermaid-svg-igHRmJ9sk61qN7sn .node circle,#mermaid-svg-igHRmJ9sk61qN7sn .node ellipse,#mermaid-svg-igHRmJ9sk61qN7sn .node polygon,#mermaid-svg-igHRmJ9sk61qN7sn .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-igHRmJ9sk61qN7sn .node .label{text-align:center;fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn .node.clickable{cursor:pointer}#mermaid-svg-igHRmJ9sk61qN7sn .arrowheadPath{fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-igHRmJ9sk61qN7sn .flowchart-link{stroke:#333;fill:none}#mermaid-svg-igHRmJ9sk61qN7sn .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-igHRmJ9sk61qN7sn .edgeLabel rect{opacity:0.9}#mermaid-svg-igHRmJ9sk61qN7sn .edgeLabel span{color:#333}#mermaid-svg-igHRmJ9sk61qN7sn .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-igHRmJ9sk61qN7sn .cluster text{fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-igHRmJ9sk61qN7sn .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-igHRmJ9sk61qN7sn text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-igHRmJ9sk61qN7sn .actor-line{stroke:grey}#mermaid-svg-igHRmJ9sk61qN7sn .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-igHRmJ9sk61qN7sn .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-igHRmJ9sk61qN7sn #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-igHRmJ9sk61qN7sn .sequenceNumber{fill:#fff}#mermaid-svg-igHRmJ9sk61qN7sn #sequencenumber{fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn #crosshead path{fill:#333;stroke:#333}#mermaid-svg-igHRmJ9sk61qN7sn .messageText{fill:#333;stroke:#333}#mermaid-svg-igHRmJ9sk61qN7sn .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-igHRmJ9sk61qN7sn .labelText,#mermaid-svg-igHRmJ9sk61qN7sn .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-igHRmJ9sk61qN7sn .loopText,#mermaid-svg-igHRmJ9sk61qN7sn .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-igHRmJ9sk61qN7sn .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-igHRmJ9sk61qN7sn .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-igHRmJ9sk61qN7sn .noteText,#mermaid-svg-igHRmJ9sk61qN7sn .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-igHRmJ9sk61qN7sn .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-igHRmJ9sk61qN7sn .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-igHRmJ9sk61qN7sn .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-igHRmJ9sk61qN7sn .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-igHRmJ9sk61qN7sn .section{stroke:none;opacity:0.2}#mermaid-svg-igHRmJ9sk61qN7sn .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-igHRmJ9sk61qN7sn .section2{fill:#fff400}#mermaid-svg-igHRmJ9sk61qN7sn .section1,#mermaid-svg-igHRmJ9sk61qN7sn .section3{fill:#fff;opacity:0.2}#mermaid-svg-igHRmJ9sk61qN7sn .sectionTitle0{fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn .sectionTitle1{fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn .sectionTitle2{fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn .sectionTitle3{fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-igHRmJ9sk61qN7sn .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-igHRmJ9sk61qN7sn .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-igHRmJ9sk61qN7sn .grid path{stroke-width:0}#mermaid-svg-igHRmJ9sk61qN7sn .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-igHRmJ9sk61qN7sn .task{stroke-width:2}#mermaid-svg-igHRmJ9sk61qN7sn .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-igHRmJ9sk61qN7sn .taskText:not([font-size]){font-size:11px}#mermaid-svg-igHRmJ9sk61qN7sn .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-igHRmJ9sk61qN7sn .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-igHRmJ9sk61qN7sn .task.clickable{cursor:pointer}#mermaid-svg-igHRmJ9sk61qN7sn .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-igHRmJ9sk61qN7sn .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-igHRmJ9sk61qN7sn .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-igHRmJ9sk61qN7sn .taskText0,#mermaid-svg-igHRmJ9sk61qN7sn .taskText1,#mermaid-svg-igHRmJ9sk61qN7sn .taskText2,#mermaid-svg-igHRmJ9sk61qN7sn .taskText3{fill:#fff}#mermaid-svg-igHRmJ9sk61qN7sn .task0,#mermaid-svg-igHRmJ9sk61qN7sn .task1,#mermaid-svg-igHRmJ9sk61qN7sn .task2,#mermaid-svg-igHRmJ9sk61qN7sn .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-igHRmJ9sk61qN7sn .taskTextOutside0,#mermaid-svg-igHRmJ9sk61qN7sn .taskTextOutside2{fill:#000}#mermaid-svg-igHRmJ9sk61qN7sn .taskTextOutside1,#mermaid-svg-igHRmJ9sk61qN7sn .taskTextOutside3{fill:#000}#mermaid-svg-igHRmJ9sk61qN7sn .active0,#mermaid-svg-igHRmJ9sk61qN7sn .active1,#mermaid-svg-igHRmJ9sk61qN7sn .active2,#mermaid-svg-igHRmJ9sk61qN7sn .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-igHRmJ9sk61qN7sn .activeText0,#mermaid-svg-igHRmJ9sk61qN7sn .activeText1,#mermaid-svg-igHRmJ9sk61qN7sn .activeText2,#mermaid-svg-igHRmJ9sk61qN7sn .activeText3{fill:#000 !important}#mermaid-svg-igHRmJ9sk61qN7sn .done0,#mermaid-svg-igHRmJ9sk61qN7sn .done1,#mermaid-svg-igHRmJ9sk61qN7sn .done2,#mermaid-svg-igHRmJ9sk61qN7sn .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-igHRmJ9sk61qN7sn .doneText0,#mermaid-svg-igHRmJ9sk61qN7sn .doneText1,#mermaid-svg-igHRmJ9sk61qN7sn .doneText2,#mermaid-svg-igHRmJ9sk61qN7sn .doneText3{fill:#000 !important}#mermaid-svg-igHRmJ9sk61qN7sn .crit0,#mermaid-svg-igHRmJ9sk61qN7sn .crit1,#mermaid-svg-igHRmJ9sk61qN7sn .crit2,#mermaid-svg-igHRmJ9sk61qN7sn .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-igHRmJ9sk61qN7sn .activeCrit0,#mermaid-svg-igHRmJ9sk61qN7sn .activeCrit1,#mermaid-svg-igHRmJ9sk61qN7sn .activeCrit2,#mermaid-svg-igHRmJ9sk61qN7sn .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-igHRmJ9sk61qN7sn .doneCrit0,#mermaid-svg-igHRmJ9sk61qN7sn .doneCrit1,#mermaid-svg-igHRmJ9sk61qN7sn .doneCrit2,#mermaid-svg-igHRmJ9sk61qN7sn .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-igHRmJ9sk61qN7sn .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-igHRmJ9sk61qN7sn .milestoneText{font-style:italic}#mermaid-svg-igHRmJ9sk61qN7sn .doneCritText0,#mermaid-svg-igHRmJ9sk61qN7sn .doneCritText1,#mermaid-svg-igHRmJ9sk61qN7sn .doneCritText2,#mermaid-svg-igHRmJ9sk61qN7sn .doneCritText3{fill:#000 !important}#mermaid-svg-igHRmJ9sk61qN7sn .activeCritText0,#mermaid-svg-igHRmJ9sk61qN7sn .activeCritText1,#mermaid-svg-igHRmJ9sk61qN7sn .activeCritText2,#mermaid-svg-igHRmJ9sk61qN7sn .activeCritText3{fill:#000 !important}#mermaid-svg-igHRmJ9sk61qN7sn .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-igHRmJ9sk61qN7sn g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-igHRmJ9sk61qN7sn g.classGroup text .title{font-weight:bolder}#mermaid-svg-igHRmJ9sk61qN7sn g.clickable{cursor:pointer}#mermaid-svg-igHRmJ9sk61qN7sn g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-igHRmJ9sk61qN7sn g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-igHRmJ9sk61qN7sn .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-igHRmJ9sk61qN7sn .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-igHRmJ9sk61qN7sn .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-igHRmJ9sk61qN7sn .dashed-line{stroke-dasharray:3}#mermaid-svg-igHRmJ9sk61qN7sn #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-igHRmJ9sk61qN7sn #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-igHRmJ9sk61qN7sn #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-igHRmJ9sk61qN7sn #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-igHRmJ9sk61qN7sn #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-igHRmJ9sk61qN7sn #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-igHRmJ9sk61qN7sn #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-igHRmJ9sk61qN7sn #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-igHRmJ9sk61qN7sn .commit-id,#mermaid-svg-igHRmJ9sk61qN7sn .commit-msg,#mermaid-svg-igHRmJ9sk61qN7sn .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-igHRmJ9sk61qN7sn .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-igHRmJ9sk61qN7sn .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-igHRmJ9sk61qN7sn g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-igHRmJ9sk61qN7sn g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-igHRmJ9sk61qN7sn g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-igHRmJ9sk61qN7sn g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-igHRmJ9sk61qN7sn g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-igHRmJ9sk61qN7sn .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-igHRmJ9sk61qN7sn .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-igHRmJ9sk61qN7sn .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-igHRmJ9sk61qN7sn .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-igHRmJ9sk61qN7sn .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-igHRmJ9sk61qN7sn .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-igHRmJ9sk61qN7sn .edgeLabel text{fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-igHRmJ9sk61qN7sn .node circle.state-start{fill:black;stroke:black}#mermaid-svg-igHRmJ9sk61qN7sn .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-igHRmJ9sk61qN7sn #statediagram-barbEnd{fill:#9370db}#mermaid-svg-igHRmJ9sk61qN7sn .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-igHRmJ9sk61qN7sn .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-igHRmJ9sk61qN7sn .statediagram-state .divider{stroke:#9370db}#mermaid-svg-igHRmJ9sk61qN7sn .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-igHRmJ9sk61qN7sn .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-igHRmJ9sk61qN7sn .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-igHRmJ9sk61qN7sn .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-igHRmJ9sk61qN7sn .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-igHRmJ9sk61qN7sn .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-igHRmJ9sk61qN7sn .note-edge{stroke-dasharray:5}#mermaid-svg-igHRmJ9sk61qN7sn .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-igHRmJ9sk61qN7sn .error-icon{fill:#522}#mermaid-svg-igHRmJ9sk61qN7sn .error-text{fill:#522;stroke:#522}#mermaid-svg-igHRmJ9sk61qN7sn .edge-thickness-normal{stroke-width:2px}#mermaid-svg-igHRmJ9sk61qN7sn .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-igHRmJ9sk61qN7sn .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-igHRmJ9sk61qN7sn .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-igHRmJ9sk61qN7sn .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-igHRmJ9sk61qN7sn .marker{fill:#333}#mermaid-svg-igHRmJ9sk61qN7sn .marker.cross{stroke:#333}
:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}</style>
<style>#mermaid-svg-igHRmJ9sk61qN7sn {
color: rgba(0, 0, 0, 0.75);
font: ;
}</style>
消除非主屬性對碼的部分函式依賴
消除非主屬性對碼的傳遞函式依賴
消除主屬性對碼的部分函式依賴和傳遞函式依賴
消除非平凡且非函式依賴的多值依賴
1NF
2NF
3NF
BCNF
4NF
依賴
依賴 具體: 設
R
(
U
)
R(U)
R ( U ) 為屬性集
U
U
U 上的關系模式,
X
?
U
,
Y
?
U
X \subseteq U,Y \subseteq U
X ? U , Y ? U , 對于R(U)的任意一個可能的關系
r
r
r 函式依賴(FD)
Y
Y
Y 對
X
X
X 函式依賴:
r
r
r 中不存在兩個元組在
X
X
X 上屬性相等但在
Y
Y
Y 上屬性不等,則
X
→
Y
X\to Y
X → Y ,
X
X
X 為決定因素 平凡函式依賴
X
→
Y
且
Y
?
X
?
X
→
Y
X\to Y且Y \subseteq X\Rightarrow X\to Y
X → Y 且 Y ? X ? X → Y 是平凡函式依賴完全函式依賴
Y
Y
Y 對
X
X
X 完全函式依賴:
X
→
Y
且
?
X
′
→?
Y
?
X
→
F
Y
X\to Y且\forall X'\not\to Y\Rightarrow X\overset{F}{\to}Y
X → Y 且 ? X ′ ? → Y ? X → F Y 部分函式依賴
Y
Y
Y 對
X
X
X 部分函式依賴:
X
→
Y
且
X
?
→
F
Y
?
X
→
P
Y
X\to Y且X\not\overset{F}{\to}Y\Rightarrow X\overset{P}{\to}Y
X → Y 且 X ? → F Y ? X → P Y 傳遞函式依賴
Z
Z
Z 對
X
X
X 傳遞函式依賴:
X
→
Y
且
Y
→
Z
且
Z
??
Y
且
Y
??
X
且
Y
→?
X
?
X
?
傳
遞
Z
X\to Y且Y\to Z且Z\not\subseteq Y且Y\not\subseteq X且Y\not\to X\Rightarrow X\overset{傳遞}{\longrightarrow}Z
X → Y 且 Y → Z 且 Z ? ? Y 且 Y ? ? X 且 Y ? → X ? X ? 傳 遞 ? Z 多值依賴(MVD)
X
→
→
Y
?
?
關
系
r
于
R
(
U
)
中
,
給
定
一
組
值
(
x
,
z
)
,
?
Y
僅
與
x
有
關
而
與
z
無
關
X\to \to Y\Leftrightarrow \forall 關系r于R(U)中,給定一組值(x,z),\exist Y僅與x有關而與z無關
X → → Y ? ? 關 系 r 于 R ( U ) 中 , 給 定 一 組 值 ( x , z ) , ? Y 僅 與 x 有 關 而 與 z 無 關
函式依賴
車
牌
→
車
車牌\to 車
車 牌 → 車
車牌 車 滬A·66666 🚗 滬A·66886 🚙 滬A·88888 🚐 滬A·99999 🚚 滬A·44444 🚕
完全函式依賴、平凡函式依賴
完全函式依賴 :
(
經
度
,
緯
度
)
→
地
點
(經度,緯度)\to 地點
( 經 度 , 緯 度 ) → 地 點 平凡函式依賴 :
(
經
度
,
緯
度
)
→
緯
度
(經度,緯度)\to 緯度
( 經 度 , 緯 度 ) → 緯 度
經度 緯度 地點 E37°37’ N55°45’ 莫斯科 E106°53’ N47°55’ 烏蘭巴托 E74°46’ N42°53’ 比什凱克 E73°08’ N33°4’ 伊斯蘭堡 E77°13’ N28°37’ 新德里
部分函式依賴、完全函式依賴
部分函式依賴 :
(
科
目
,
學
員
號
)
→
姓
名
(科目,學員號)\to 姓名
( 科 目 , 學 員 號 ) → 姓 名 完全函式依賴 :
(
科
目
,
學
員
號
)
→
考
試
時
間
(科目,學員號)\to 考試時間
( 科 目 , 學 員 號 ) → 考 試 時 間
科目 學員號 考試時間 姓名 二 200V 8:00:00 張偉 二 201V 8:20:00 李偉 三 202V 8:40:00 王偉 三 200 9:00:00 趙偉
傳遞函式依賴
用
戶
→
權
限
等
級
用戶\to 權限等級
用 戶 → 權 限 等 級 ,
權
限
等
級
→
權
限
權限等級\to權限
權 限 等 級 → 權 限
用
戶
?
傳
遞
權
限
用戶\overset{傳遞}{\longrightarrow}權限
用 戶 ? 傳 遞 ? 權 限
用戶 權限等級 權限 00 0 普通只讀 01 0 普通只讀 02 4 管理員 03 2 普通讀寫 05 2 普通讀寫
多值依賴
課
程
→
→
教
師
課程\to \to 教師
課 程 → → 教 師
課程 教師 教材 資料庫系統概論 張偉 資料庫系統概論 高教出版社 資料庫系統概論 張偉 資料庫系統概論 清華出版社 資料庫系統概論 李偉 資料庫系統概論 高教出版社 數據庫系統概論 李偉 資料庫系統概論 清華出版社 計算機網路 王偉 計算機網路 高教出版社 計算機網路 王偉 計算機網路 電子工業出版社 計算機網路 王偉 計算機網路 清華出版社 計算機網路 李偉 計算機網路 高教出版社 計算機網路 李偉 計算機網路 電子工業出版社