2018-08-29 關(guān)系數(shù)據(jù)理論

數(shù)據(jù)依賴埋嵌,通過對一個關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系破加;是現(xiàn)實世界屬性間相互聯(lián)系的抽象;是數(shù)據(jù)內(nèi)在的性質(zhì)莉恼;是語義的體現(xiàn)拌喉。

數(shù)據(jù)依賴的類型:函數(shù)依賴(FD)速那,多值依賴(MVD)俐银。

關(guān)系模式中存在的問題:數(shù)據(jù)冗余太大;更新異常端仰;插入異常捶惜;刪除異常。原因:由存在于模式中的某些數(shù)據(jù)依賴引起的荔烧。解決方法:通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴吱七。

規(guī)范化理論是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴鹤竭。


函數(shù)依賴踊餐,設(shè)R(U)是一個屬性集U上的關(guān)系模式,X和Y是U的子集臀稚。若對于R(U)的任意一個可能的關(guān)系r吝岭,r中不可能存在兩個元組在X上的屬性值相等, 而在Y上的屬性值不等吧寺,則稱 “X函數(shù)確定Y” 或 “Y函數(shù)依賴于X”窜管,記作X→Y。X稱為這個函數(shù)依賴的決定屬性集(Determinant)稚机。Y=f(X)幕帆。

函數(shù)依賴不是指關(guān)系模式R的某個或某些關(guān)系實例滿足的約束條件,而是指R的所有關(guān)系實例均要滿足的約束條件赖条。函數(shù)依賴是語義范疇的概念失乾,只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴常熙。

在關(guān)系模式R(U)中,對于U的子集X和Y仗扬,如果X→Y症概,但Y 不屬于 X,則稱X→Y是非平凡的函數(shù)依賴早芭。若X→Y彼城,但Y 屬于 X, 則稱X→Y是平凡的函數(shù)依賴。

在關(guān)系模式R(U)中退个,如果X→Y募壕,并且對于X的任何一個真子集X’,都有X’ 不決定 Y, 則稱Y完全函數(shù)依賴于X语盈,記作X F→ Y舱馅。若X→Y,但Y不完全函數(shù)依賴于X刀荒,則稱Y部分函數(shù)依賴于X代嗤,記作X P→ Y。

在關(guān)系模式R(U)中缠借,如果X→Y干毅,Y→Z,且Y 不屬于 X泼返,Y硝逢!→X,則稱Z傳遞函數(shù)依賴于X绅喉。注: 如果Y→X渠鸽, 即X←→Y,則Z直接依賴于X柴罐。

設(shè)K為關(guān)系模式R<U,F>中的屬性或?qū)傩越M合徽缚。若K F→ U,則K稱為R的一個侯選碼(Candidate Key)革屠。若關(guān)系模式R有多個候選碼凿试,則選定其中的一個做為主碼(Primary key)。

關(guān)系模式 R 中屬性或?qū)傩越MX 并非R 的碼屠阻,但 X 是另一個關(guān)系模式的碼红省,則稱 X 是R 的外部碼(Foreign key)也稱外碼。


范式是符合某一種級別的關(guān)系模式的集合国觉;關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求吧恃,滿足不同程度要求的為不同范式。

某一關(guān)系模式R為第n范式麻诀,可簡記為R∈nNF痕寓。

如果一個關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項傲醉,則R∈1NF。第一范式是對關(guān)系模式的最起碼的要求呻率,不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫硬毕;但是滿足第一范式的關(guān)系模式不一定是一個好的關(guān)系模式。

若關(guān)系模式R∈1NF礼仗,并且每一個非主屬性都完全函數(shù)依賴于R的碼吐咳,則R∈2NF。采用投影分解法將一個1NF的關(guān)系分解為多個2NF的關(guān)系元践,可以在一定程度上減輕原關(guān)系中存在的插入異常韭脊、刪除異常、數(shù)據(jù)冗余度大单旁、修改復(fù)雜等問題沪羔,但并不能完全消除各種異常和數(shù)據(jù)冗余。

關(guān)系模式R<U,F>中若不存在這樣的碼X象浑、屬性組Y及非主屬性Z(Z 不屬于 Y), 使得X→Y蔫饰,Y !→ X,Y→Z愉豺,成立篓吁,則稱R ∈ 3NF。若R∈3NF粒氧,則R的每一個非主屬性既不部分函數(shù)依賴于候選碼越除,也不傳遞函數(shù)依賴于候選碼节腐。采用投影分解法將一個2NF的關(guān)系分解成多個3NF的關(guān)系外盯,可以在一定程度上解決原關(guān)系中存在的問題,但不能完全消除翼雀。

設(shè)關(guān)系模式R<U,F>∈1NF饱苟,如果對于R的每個函數(shù)依賴X→Y,若Y不屬于X狼渊,則X必含有候選碼箱熬,那么R∈BCNF。每一個決定屬性集都包含候選碼狈邑;R中的所有屬性都完全函數(shù)依賴于碼城须。沒有任何屬性對碼的部分函數(shù)依賴和傳遞函數(shù)依賴。如果R∈3NF米苹,且R只有一個候選碼糕伐,則R必屬于BCNF。所有非主屬性完全函數(shù)依賴于每個候選碼蘸嘶;所有主屬性完全函數(shù)依賴于每個不包含它的候選碼良瞧;沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性陪汽。


關(guān)系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計的工具;一個關(guān)系只要其分量都是不可分的數(shù)據(jù)項褥蚯,它就是規(guī)范化的關(guān)系挚冤,但只是最基本的規(guī)范化;規(guī)范化可以有多個不同級別赞庶。一個低一級范式的關(guān)系模式训挡,通過模式分解可以轉(zhuǎn)換為若干個高一級范式的關(guān)系模式集合,這種過程就叫關(guān)系模式的規(guī)范化歧强。

關(guān)系模式規(guī)范化的基本步驟舍哄。1NF→2NF,消除非主屬性對碼的部分函數(shù)依賴誊锭;2NF→3NF表悬,消除非主屬性對碼的傳遞函數(shù)依賴;3NF→BCNF丧靡,消除主屬性對碼的部分依賴和傳遞依賴蟆沫;BCNF→4NF,消除非平凡且非函數(shù)依賴的多值依賴温治。整體思想:消除決定屬性集非碼的非平凡函數(shù)依賴饭庞。

規(guī)范化的基本思想:消除不合適的數(shù)據(jù)依賴;各關(guān)系模式達到某種程度上的“分離”熬荆;采用“一事一地”的模式設(shè)計原則舟山;所謂規(guī)范化實質(zhì)上是概念的單一化。


對于滿足一組函數(shù)依賴 F 的關(guān)系模式R<U,F>卤恳,其任何一個關(guān)系r累盗,若函數(shù)依賴X→Y都成立, 則稱F邏輯蘊含X →Y。

一套推理規(guī)則突琳,是模式分解算法的理論基礎(chǔ)若债。用途:求出給定關(guān)系模式的碼;從一組函數(shù)依賴求得蘊含的函數(shù)依賴拆融。

Armstrong公理系統(tǒng)蠢琳。關(guān)系模式R<U,F>來說有以下的推理規(guī)則: 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所蘊含。

導(dǎo)出規(guī)則。合并規(guī)則:由X→Y菇绵,X→Z肄渗,有X→YZ。(A2咬最, A3)偽傳遞規(guī)則:由X→Y翎嫡,WY→Z,有XW→Z永乌。(A2惑申, A3)分解規(guī)則:由X→Y及 Z屬于Y,有X→Z翅雏。(A1圈驼,A3)

根據(jù)合并規(guī)則和分解規(guī)則,X→A1 A2…Ak成立的充分必要條件是X→Ai成立(i=l望几,2绩脆,…,k)橄抹。

在關(guān)系模式R<U,F>中為F所邏輯蘊含的函數(shù)依賴的全體叫作 F的閉包靴迫,記為F+。

設(shè)F為屬性集U上的一組函數(shù)依賴楼誓,X屬于U玉锌, XF+ ={ A|X→A能由F 根據(jù)Armstrong公理導(dǎo)出},XF+稱為屬性集X關(guān)于函數(shù)依賴集F 的閉包疟羹。

設(shè)F為屬性集U上的一組函數(shù)依賴主守,X,Y 屬于 U榄融,X→Y能由F 根據(jù)Armstrong公理導(dǎo)出的充分必要條件是Y 屬于 XF+参淫。

如果G+=F+,就說函數(shù)依賴集F覆蓋G(F是G的覆蓋剃袍,或G是F的覆蓋)黄刚,或F與G等價捎谨。F+ = G+ 的充分必要條件是F 屬于 G+民效,和G 屬于 F+。

如果函數(shù)依賴集F滿足下列條件涛救,則稱F為一個極小函數(shù)依賴集畏邢。亦稱為最小依賴集或最小覆蓋。F中任一函數(shù)依賴的右部僅含有一個屬性检吆;F中不存在這樣的函數(shù)依賴X→A舒萎,使得F與F-{X→A}等價;F中不存在這樣的函數(shù)依賴X→A蹭沛,X有真子集Z使得F-{X→A}?∪ {Z→A}與F等價臂寝。

每一個函數(shù)依賴集F均等價于一個極小函數(shù)依賴集Fm章鲤。此Fm稱為F的最小依賴集。


三種模式分解的等價定義:分解具有無損連接性咆贬;分解要保持函數(shù)依賴败徊;分解既要保持函數(shù)依賴,又要具有無損連接性掏缎。

關(guān)系模式R<U,F>的一個分解:ρ={ R1<U1,F1>皱蹦,R2<U2,F2>,…眷蜈,Rn<Un,Fn>}沪哺,U=U1∪U2∪…∪Un,且不存在 Ui 屬于 Uj酌儒,F(xiàn)i 為 F在 Ui 上的投影辜妓。

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

關(guān)系模式R的一個分解 ρ={ R1忌怎,R2嫌拣, …,Rn}呆躲。若R與R1异逐、R2、…插掂、Rn自然連接的結(jié)果相等灰瞻,則稱關(guān)系模式R的這個分解ρ具有無損連接性(Lossless join)。具有無損連接性的分解保證不丟失信息辅甥;無損連接性不一定能解決插入異常酝润、刪除異常、修改復(fù)雜璃弄、數(shù)據(jù)冗余等問題要销。

設(shè)關(guān)系模式R被分解為若干個關(guān)系模式R1,R2夏块,…疏咐,Rn(其中U=U1∪U2∪…∪Un,且不存在Ui 屬于 Uj脐供,F(xiàn)i為F在Ui上的投影)浑塞,若F所邏輯蘊含的函數(shù)依賴一定也由分解得到的某個關(guān)系模式中的函數(shù)依賴Fi所邏輯蘊含,則稱關(guān)系模式R的這個分解是保持函數(shù)依賴的(Preserve dependency)政己。

如果一個分解具有無損連接性酌壕,則它能夠保證不丟失信息;如果一個分解保持了函數(shù)依賴,則它可以減輕或解決各種異常情況卵牍;分解具有無損連接性和分解保持函數(shù)依賴是兩個互相獨立的標(biāo)準(zhǔn)果港。具有無損連接性的分解不一定能夠保持函數(shù)依賴。同樣糊昙,保持函數(shù)依賴的分解也不一定具有無損連接性京腥。

判別一個分解的無損連接性。建立一個n列k行的表溅蛉。填入ai公浪,或bij;對每個函數(shù)依賴做下列操作:找到Xi所對應(yīng)的列中具有相同符號那些行船侧,若其中有ai 欠气,則全部改成ai ;否則全部行號最小的bij 镜撩。若某個bij被更改预柒,那么該表中其它相同bij均做相同的更改;比較掃描后有無變化袁梗,無變化則終止宜鸯。若表中有全a行,則分解具有無損連接性遮怜。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淋袖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子锯梁,更是在濱河造成了極大的恐慌即碗,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,294評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陌凳,死亡現(xiàn)場離奇詭異剥懒,居然都是意外死亡,警方通過查閱死者的電腦和手機合敦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評論 3 385
  • 文/潘曉璐 我一進店門初橘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人充岛,你說我怎么就攤上這事保檐。” “怎么了裸准?”我有些...
    開封第一講書人閱讀 157,790評論 0 348
  • 文/不壞的土叔 我叫張陵展东,是天一觀的道長。 經(jīng)常有香客問我炒俱,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,595評論 1 284
  • 正文 為了忘掉前任权悟,我火速辦了婚禮砸王,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘峦阁。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,718評論 6 386
  • 文/花漫 我一把揭開白布慷暂。 她就那樣靜靜地躺著定硝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪撒会。 梳的紋絲不亂的頭發(fā)上嘹朗,一...
    開封第一講書人閱讀 49,906評論 1 290
  • 那天,我揣著相機與錄音诵肛,去河邊找鬼屹培。 笑死,一個胖子當(dāng)著我的面吹牛怔檩,可吹牛的內(nèi)容都是我干的褪秀。 我是一名探鬼主播,決...
    沈念sama閱讀 39,053評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼薛训,長吁一口氣:“原來是場噩夢啊……” “哼媒吗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乙埃,我...
    開封第一講書人閱讀 37,797評論 0 268
  • 序言:老撾萬榮一對情侶失蹤蝴猪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后膊爪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體自阱,經(jīng)...
    沈念sama閱讀 44,250評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,570評論 2 327
  • 正文 我和宋清朗相戀三年米酬,在試婚紗的時候發(fā)現(xiàn)自己被綠了沛豌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,711評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡赃额,死狀恐怖加派,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情跳芳,我是刑警寧澤芍锦,帶...
    沈念sama閱讀 34,388評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站飞盆,受9級特大地震影響娄琉,放射性物質(zhì)發(fā)生泄漏次乓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,018評論 3 316
  • 文/蒙蒙 一孽水、第九天 我趴在偏房一處隱蔽的房頂上張望票腰。 院中可真熱鬧,春花似錦女气、人聲如沸杏慰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缘滥。三九已至,卻和暖如春谒主,著一層夾襖步出監(jiān)牢的瞬間朝扼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評論 1 266
  • 我被黑心中介騙來泰國打工瘩将, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吟税,地道東北人。 一個月前我還...
    沈念sama閱讀 46,461評論 2 360
  • 正文 我出身青樓姿现,卻偏偏與公主長得像肠仪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子备典,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,595評論 2 350

推薦閱讀更多精彩內(nèi)容