資料庫第六章

2021-08-31 09:45:14 字數 3641 閱讀 4091

一:關係模式由五部分組成,是乙個五元組:  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 什麼是儲存過程?它與函式有什麼區別與聯...