一:關係模式由五部分組成,是乙個五元組: r(u, d, dom, f)
關係名r是符號化的元組語義
u為一組屬性
d為屬性組u中的屬性所來自的域
dom為屬性到域的對映
f為屬性組u上的一組資料依賴
二:一對一聯絡
設x,y為關係中的屬性或屬性組,它們的所有可能取值組成兩個集合。如果對於x中的任一具體值y中至多有乙個值與之對應,稱x,y這兩個屬性之間是一對一聯絡
三:多對多聯絡
在x,y兩個屬性值集中,如果任乙個值都可以至多和另乙個屬性值集中多個值對應,反之亦然,則稱屬性x和y是m:n關係。
四:資料依賴
是乙個關係內部屬性與屬性之間的一種約束關係
通過屬性間值的相等與否體現出來的資料間相互聯絡
是現實世界屬性間相互聯絡的抽象
是資料內在的性質
是語義的體現
五:資料依賴的主要型別
函式依賴(functional dependency,簡記為fd)
多值依賴(multi-valued dependency,簡記為mvd)
六:關係模式student中存在的問題:
(1)資料冗餘
浪費大量的儲存空間
每乙個系主任的姓名重複出現,重複次數與該系所有學生的所有課程成績出現次數相同。
(2)更新異常(update anomalies)
資料冗餘 ,更新資料時,維護資料完整性代價大。
某系更換系主任後,必須修改與該系學生有關的每乙個元組。
(3)插入異常(insertion anomalies)
如果乙個系剛成立,尚無學生,則無法把這個系及其系主任的資訊存入資料庫。
(4)刪除異常(deletion anomalies)
如果某個系的學生全部畢業了, 則在刪除該系學生資訊的同時,把這個系及其系主任的資訊也丟掉了。
七:規範化
規範化理論正是用來改造關係模式,通過分解關係模式來消除其中不合適的資料依賴,以解決插入異常、刪除異常、更新異常和資料冗餘問題。
1.函式依賴
函式依賴
平凡函式依賴與非平凡函式依賴
完全函式依賴與部分函式依賴
傳遞函式依賴
2:碼定義6.4 設k為r中的屬性或屬性組合。若k → u,則k稱為r的乙個候選碼(candidate key)。
如果u部分函式依賴於k,即k → u,則k稱為超碼 (surpkey)。候選碼是最小的超碼,即k的任意乙個真子集都不是候選碼。
若關係模式r有多個候選碼,則選定其中的乙個做為主碼(primary key)。
定義6.5 關係模式 r中屬性或屬性組x 並非 r的碼,但 x 是另乙個關係模式的碼,則稱 x 是r 的外部碼(foreign key)也稱外碼。
sc(sno,cno,grade)中,sno不是碼
sno是 s(sno,sdept,sage)的碼,則sno是sc的外碼
主碼與外部碼一起提供了表示關係間聯絡的手段
3:正規化
正規化是符合某一種級別的關係模式的集合。
關聯式資料庫中的關係必須滿足一定的要求。滿足 不同程度要求的為不同正規化。
正規化的種類:第一正規化(1nf) 第二正規化(2nf) 第三正規化(3nf) bc正規化(bcnf)
第四正規化(4nf) 第五正規化(5nf)
4:2nf
若關係模式r∈1nf,並且每乙個非主屬性都完全函式依賴於任何乙個候選碼,則r∈2nf
乙個關係模式不屬於2nf,會產生以下問題:
插入異常
如果插入乙個新學生,但該生未選課,即該生無cno,由於插入元組時,必須給定碼值,因此插入失敗。
刪除異常
如果s4只選了一門課c3,現在他不再選這門課,則刪除c3後,整個元組的其他資訊也被刪除了。
修改複雜
如果乙個學生選了多門課,則sdept,sloc被儲存了多次。如果該生轉系,則需要修改所有相關的sdept和sloc,造成修改的複雜化。
出現這種問題的原因
例子中有兩類非主屬性:
一類如grade,它對碼完全函式依賴
另一類如sdept、sloc,它們對碼不是完全函式依賴
解決方法:
用投影分解把關係模式s-l-c分解成兩個關係模式
sc(sno,cno,grade)
s-l(sno,sdept,sloc)
5:設關係模式r∈1nf,若r中不存在這樣的碼x、屬性組y及非主屬性z(z ⊇ y), 使得x→y,y→z成立,y ↛ x不成立,則稱r∈ 3nf。
sc沒有傳遞依賴,因此sc ∈ 3nf
不良特性
插入異常:如果系中沒有學生,則有關係的資訊就無法插入。
刪除異常:如果學生全部畢業了,則在刪除學生資訊的同時有關係的資訊也隨之刪除了。
更新異常:如果學生轉系,不但要修改sdept,還要修改sloc,如果換sloc,則該系每個學生元組都要做相應修改。
資料冗餘:每個學生都儲存了所在系的sloc的資訊。
解決方法
採用投影分解法,把s-l分解為兩個關係模式,以消除傳遞函式依賴:
s-d(sno, sdept)
d-l(sdept,sloc)
s-d的碼為sno, d-l的碼為sdept。
分解後的關係模式s-d與d-l中不再存在傳遞依賴
6:bcnf
bcnf(boyce codd normal form)由boyce和codd提出,比3nf更進了一步。通常認為bcnf是修正的第三正規化,有時也稱為擴充的第三正規化。
定義6.8 設關係模式r∈1nf,若x →y且y ⊆ x時x必含有碼,則r∈bcnf。
換言之,在關係模式r中,如果每乙個決定屬性集都包含候選碼,則r∈bcnf。
7:多值依賴
設r(u)是屬性集u上的乙個關係模式。x,y,z是u的子集,並且z=u-x-y。關係模式r(u)中多值依賴x→→y成立,當且僅當對r(u)的任一關係r,給定的一對(x,z)值,有一組y的值,這組值僅僅決定於x值而與z值無關。
8:4nf
關係模式r∈1nf,如果對於r的每個非平凡多值依賴x→→y(y ⊈ x),x都含有碼,則r∈4nf。
不允許有非平凡且非函式依賴的多值依賴。
允許的非平凡多值依賴實際上是函式依賴。
八:在關聯式資料庫中,對關係模式的基本要求是滿足第一正規化。
規範化程度過低的關係不一定能夠很好地描述現實世界
可能存在插入異常、刪除異常、修改複雜、資料冗餘等問題
解決方法就是對其進行規範化,轉換成高階正規化。
九:資料依賴的公理系統
對於滿足一組函式依賴f的關係模式 r ,其任何乙個關係r,若函式依賴x→y都成立(即r中任意兩元組t、s,若t[x]=s[x],則 t[y]=s[y]),則稱f邏輯蘊涵x →y。
十:演算法:
令ai =|x(i)|,形成乙個步長大於1的嚴格遞增的序列,序列的上界是 | u |,因此該演算法最多 |u| - |x| 次迴圈就
會終止。
由引理二,判定x®y是否能由f根據armstrong公理匯出,可轉化為求 ,判定yí 是否成立。
輸入:x,f
輸出:1) := x;
2)考察每個f中的函式依賴 a®b,
若 a í ,則 := èb
3)繼續考察,直到 不再增大為止。
資料庫第六章
1.一對一聯絡 2.一對多聯絡 3.多對多聯絡 是乙個關係內部屬性與屬性之間的一種約束關係 是現實世界屬性間相互聯絡的抽象 是資料內在的性質 是語義的體現 1.函式依賴 2.多值依賴 例 描述乙個學生關係,可以有學號 姓名 系名等屬性。乙個學號只對應乙個學生,乙個學生只在乙個系中學習 學號 值確定後...
資料庫第六章作業
作業完成者 王典 2013211958 14 從供選擇的答案中選出應填入下面敘述中內的最確切的解答。實體聯絡模型 e r圖 中的基本語義單位是實體和聯絡。e r模型的圖形表示稱為e r圖。聯絡可以同a 實體有關。實體與實體之間的聯絡可以是b 利用e r模型進行資料庫的概念設計,可以分成3步 首先設計...
第六章 資料庫原理
6.1 sql語言的功能有哪些 常見筆試題 6.2 內鏈結與外連線有什麼區別 select fieldlist from table1 inner join table2 on tablel.column table2.column 6.3 什麼是事務 6.4 什麼是儲存過程?它與函式有什麼區別與聯...