2018-08-29 關系數據理論

數據依賴,通過對一個關系中屬性間值的相等與否體現出來的數據間的相互關系;是現實世界屬性間相互聯系的抽象;是數據內在的性質;是語義的體現。

數據依賴的類型:函數依賴(FD),多值依賴(MVD)。

關系模式中存在的問題:數據冗余太大;更新異常;插入異常;刪除異常。原因:由存在于模式中的某些數據依賴引起的。解決方法:通過分解關系模式來消除其中不合適的數據依賴。

規范化理論是用來改造關系模式,通過分解關系模式來消除其中不合適的數據依賴。


函數依賴,設R(U)是一個屬性集U上的關系模式,X和Y是U的子集。若對于R(U)的任意一個可能的關系r,r中不可能存在兩個元組在X上的屬性值相等, 而在Y上的屬性值不等,則稱 “X函數確定Y” 或 “Y函數依賴于X”,記作X→Y。X稱為這個函數依賴的決定屬性集(Determinant)。Y=f(X)。

函數依賴不是指關系模式R的某個或某些關系實例滿足的約束條件,而是指R的所有關系實例均要滿足的約束條件。函數依賴是語義范疇的概念,只能根據數據的語義來確定函數依賴。

在關系模式R(U)中,對于U的子集X和Y,如果X→Y,但Y 不屬于 X,則稱X→Y是非平凡的函數依賴。若X→Y,但Y 屬于 X, 則稱X→Y是平凡的函數依賴。

在關系模式R(U)中,如果X→Y,并且對于X的任何一個真子集X’,都有X’ 不決定 Y, 則稱Y完全函數依賴于X,記作X F→ Y。若X→Y,但Y不完全函數依賴于X,則稱Y部分函數依賴于X,記作X P→ Y。

在關系模式R(U)中,如果X→Y,Y→Z,且Y 不屬于 X,Y!→X,則稱Z傳遞函數依賴于X。注: 如果Y→X, 即X←→Y,則Z直接依賴于X。

設K為關系模式R<U,F>中的屬性或屬性組合。若K F→ U,則K稱為R的一個侯選碼(Candidate Key)。若關系模式R有多個候選碼,則選定其中的一個做為主碼(Primary key)。

關系模式 R 中屬性或屬性組X 并非R 的碼,但 X 是另一個關系模式的碼,則稱 X 是R 的外部碼(Foreign key)也稱外碼。


范式是符合某一種級別的關系模式的集合;關系數據庫中的關系必須滿足一定的要求,滿足不同程度要求的為不同范式。

某一關系模式R為第n范式,可簡記為R∈nNF。

如果一個關系模式R的所有屬性都是不可分的基本數據項,則R∈1NF。第一范式是對關系模式的最起碼的要求,不滿足第一范式的數據庫模式不能稱為關系數據庫;但是滿足第一范式的關系模式不一定是一個好的關系模式。

若關系模式R∈1NF,并且每一個非主屬性都完全函數依賴于R的碼,則R∈2NF。采用投影分解法將一個1NF的關系分解為多個2NF的關系,可以在一定程度上減輕原關系中存在的插入異常、刪除異常、數據冗余度大、修改復雜等問題,但并不能完全消除各種異常和數據冗余。

關系模式R<U,F>中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z 不屬于 Y), 使得X→Y,Y !→ X,Y→Z,成立,則稱R ∈ 3NF。若R∈3NF,則R的每一個非主屬性既不部分函數依賴于候選碼,也不傳遞函數依賴于候選碼。采用投影分解法將一個2NF的關系分解成多個3NF的關系,可以在一定程度上解決原關系中存在的問題,但不能完全消除。

設關系模式R<U,F>∈1NF,如果對于R的每個函數依賴X→Y,若Y不屬于X,則X必含有候選碼,那么R∈BCNF。每一個決定屬性集都包含候選碼;R中的所有屬性都完全函數依賴于碼。沒有任何屬性對碼的部分函數依賴和傳遞函數依賴。如果R∈3NF,且R只有一個候選碼,則R必屬于BCNF。所有非主屬性完全函數依賴于每個候選碼;所有主屬性完全函數依賴于每個不包含它的候選碼;沒有任何屬性完全函數依賴于非碼的任何一組屬性。


關系數據庫的規范化理論是數據庫邏輯設計的工具;一個關系只要其分量都是不可分的數據項,它就是規范化的關系,但只是最基本的規范化;規范化可以有多個不同級別。一個低一級范式的關系模式,通過模式分解可以轉換為若干個高一級范式的關系模式集合,這種過程就叫關系模式的規范化。

關系模式規范化的基本步驟。1NF→2NF,消除非主屬性對碼的部分函數依賴;2NF→3NF,消除非主屬性對碼的傳遞函數依賴;3NF→BCNF,消除主屬性對碼的部分依賴和傳遞依賴;BCNF→4NF,消除非平凡且非函數依賴的多值依賴。整體思想:消除決定屬性集非碼的非平凡函數依賴。

規范化的基本思想:消除不合適的數據依賴;各關系模式達到某種程度上的“分離”;采用“一事一地”的模式設計原則;所謂規范化實質上是概念的單一化。


對于滿足一組函數依賴 F 的關系模式R<U,F>,其任何一個關系r,若函數依賴X→Y都成立, 則稱F邏輯蘊含X →Y。

一套推理規則,是模式分解算法的理論基礎。用途:求出給定關系模式的碼;從一組函數依賴求得蘊含的函數依賴。

Armstrong公理系統。關系模式R<U,F>來說有以下的推理規則: Al.自反律(Reflexivity):若Y 屬于?X 屬于 U,則X →Y為F所蘊含。 A2.增廣律(Augmentation):若X→Y為F所蘊含,且Z 屬于 U,則XZ→YZ為F所蘊含。A3.傳遞律(Transitivity):若X→Y及Y→Z為F所蘊含,則X→Z為F所蘊含。

導出規則。合并規則:由X→Y,X→Z,有X→YZ。(A2, A3)偽傳遞規則:由X→Y,WY→Z,有XW→Z。(A2, A3)分解規則:由X→Y及 Z屬于Y,有X→Z。(A1,A3)

根據合并規則和分解規則,X→A1 A2…Ak成立的充分必要條件是X→Ai成立(i=l,2,…,k)。

在關系模式R<U,F>中為F所邏輯蘊含的函數依賴的全體叫作 F的閉包,記為F+。

設F為屬性集U上的一組函數依賴,X屬于U, XF+ ={ A|X→A能由F 根據Armstrong公理導出},XF+稱為屬性集X關于函數依賴集F 的閉包。

設F為屬性集U上的一組函數依賴,X,Y 屬于 U,X→Y能由F 根據Armstrong公理導出的充分必要條件是Y 屬于 XF+。

如果G+=F+,就說函數依賴集F覆蓋G(F是G的覆蓋,或G是F的覆蓋),或F與G等價。F+ = G+ 的充分必要條件是F 屬于 G+,和G 屬于 F+。

如果函數依賴集F滿足下列條件,則稱F為一個極小函數依賴集。亦稱為最小依賴集或最小覆蓋。F中任一函數依賴的右部僅含有一個屬性;F中不存在這樣的函數依賴X→A,使得F與F-{X→A}等價;F中不存在這樣的函數依賴X→A,X有真子集Z使得F-{X→A}?∪ {Z→A}與F等價。

每一個函數依賴集F均等價于一個極小函數依賴集Fm。此Fm稱為F的最小依賴集。


三種模式分解的等價定義:分解具有無損連接性;分解要保持函數依賴;分解既要保持函數依賴,又要具有無損連接性。

關系模式R<U,F>的一個分解:ρ={ R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>},U=U1∪U2∪…∪Un,且不存在 Ui 屬于 Uj,Fi 為 F在 Ui 上的投影。

函數依賴集合{X→Y | X→Y 屬于 F+∧XY 屬于 Ui}的一個覆蓋 Fi 叫作 F 在屬性 Ui 上的投影。

關系模式R的一個分解 ρ={ R1,R2, …,Rn}。若R與R1、R2、…、Rn自然連接的結果相等,則稱關系模式R的這個分解ρ具有無損連接性(Lossless join)。具有無損連接性的分解保證不丟失信息;無損連接性不一定能解決插入異常、刪除異常、修改復雜、數據冗余等問題。

設關系模式R被分解為若干個關系模式R1,R2,…,Rn(其中U=U1∪U2∪…∪Un,且不存在Ui 屬于 Uj,Fi為F在Ui上的投影),若F所邏輯蘊含的函數依賴一定也由分解得到的某個關系模式中的函數依賴Fi所邏輯蘊含,則稱關系模式R的這個分解是保持函數依賴的(Preserve dependency)。

如果一個分解具有無損連接性,則它能夠保證不丟失信息;如果一個分解保持了函數依賴,則它可以減輕或解決各種異常情況;分解具有無損連接性和分解保持函數依賴是兩個互相獨立的標準。具有無損連接性的分解不一定能夠保持函數依賴。同樣,保持函數依賴的分解也不一定具有無損連接性。

判別一個分解的無損連接性。建立一個n列k行的表。填入ai,或bij;對每個函數依賴做下列操作:找到Xi所對應的列中具有相同符號那些行,若其中有ai ,則全部改成ai ;否則全部行號最小的bij 。若某個bij被更改,那么該表中其它相同bij均做相同的更改;比較掃描后有無變化,無變化則終止。若表中有全a行,則分解具有無損連接性。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,663評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,125評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,506評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,614評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,402評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,934評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,021評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,168評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,690評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,596評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,288評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,027評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,404評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,662評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,398評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,743評論 2 370

推薦閱讀更多精彩內容

  • 一、數據關系 關系數據庫可能存在的問題 1.數據冗余(必然存在,但應該盡量少) 2.更新冗余 3.插入冗余 4.刪...
    一村之里正閱讀 2,117評論 0 3
  • 有時候,當我們學會了后悔,才會堅定的知道某些事我們做的不后悔;有時候當我們還沒來得及學會后悔,某些事卻早已遠遠的離...
    傾耳聽風閱讀 194評論 2 1
  • 問:為什么天空不會游泳? 答:因為他沒有好好練習游泳。 問:為什么陽光越來越強了? 答:因為海豹王說了陽光越來越強...
    陸_79f8閱讀 173評論 0 0
  • 2/2 2016 雪轉晴 天亮窗外,屋頂和乒乓球臺,如昨日所愿有一片潔白,雖遠非天地駘蕩的水晶世界,但玩玩雪,打...
    抓星星的小超閱讀 396評論 4 1