第六章(關(guān)系數(shù)據(jù)理論)

一、數(shù)據(jù)關(guān)系

關(guān)系數(shù)據(jù)庫可能存在的問題

1.數(shù)據(jù)冗余(必然存在,但應(yīng)該盡量少)

2.更新冗余

3.插入冗余

4.刪除冗余


數(shù)據(jù)依賴(屬性之間以值是否相等體現(xiàn)出來的一種約束關(guān)系)

1)函數(shù)依賴(給定元組中的一些屬性,可確定另外的屬性必然的取值--一個(gè))

--非平凡的函數(shù)依賴:Y依賴于X,Y不包含于X

--平凡函數(shù)依賴:Y依賴于X,且Y包含于X

--互相函數(shù)依賴:X依賴于Y,Y依賴于X

--完全函數(shù)依賴:Y依賴于X,但Y不依賴與X的任意真子集

--部分函數(shù)依賴:Y依賴于X,且Y不完全依賴于X

--傳遞函數(shù)依賴:Y非平凡依賴于X,且Y與X不是互相函數(shù)依賴,Z非平方依賴于Y,則Z對X傳遞依賴

2)多值依賴(給定元組中的一些屬性,可確定另外的屬性可能的取值--一組)

--含義:X, Y, Z三個(gè)屬性集之和是屬性集U,多值依賴X->->Y成立當(dāng)且僅當(dāng)對R(U)的任一個(gè)關(guān)系r,r在(X,Z)上的每個(gè)值對應(yīng)一組Y的值,這組值僅決定于X值而與Z值無關(guān)。

--平凡的多值依賴(集合屬性中分為兩個(gè)真子集):Z=空集

--非平凡的多值依賴:Z≠空集

--對稱性:若Y多值依賴于X,則Z也多值依賴于X

--傳遞性:若Y多值依賴于X,Z多值依賴于Y,則X多值依賴于Z-Y

--若Y依賴于X,則Y也多值依賴于X

碼(一碼定一組)

--候選碼:屬性集合完全函數(shù)依賴于候選碼(候選碼是不可分割的主屬性集合,分了就不是候選碼了),主碼是候選碼,候選碼不一定是主碼

--超碼:屬性集合部分函數(shù)依賴于超碼

--主屬性:包含在候選碼中的屬性

--非主屬性:不包含在任何候選碼中的屬性

--全碼:整個(gè)屬性組都是主碼或者候選碼

--外碼:本關(guān)系模式中某個(gè)屬性或?qū)傩越M是非碼,但這個(gè)屬性或者屬性組是另一個(gè)關(guān)系模式的碼

二、范式(低一級(jí)范式關(guān)系模式可以通過模式分解轉(zhuǎn)換成多個(gè)高一級(jí)的關(guān)系模式的集合)

第一范式(1NF):每個(gè)分量都是不可分的基本數(shù)據(jù)項(xiàng)

--意義:關(guān)系數(shù)據(jù)庫的基本要求,防止出現(xiàn)表中表的情況,當(dāng)然某些時(shí)候這也是可以做出讓步的,比如個(gè)人表的家庭住址╮(╯▽╰)╭

--設(shè)計(jì):每列都是基本數(shù)據(jù)項(xiàng),原子數(shù)據(jù)

第二范式(2NF):若R∈1NF,且每個(gè)非主屬性完全函數(shù)依賴于任何一個(gè)候選碼

--意義:在第一范式的基礎(chǔ)上消除了非主屬性對碼的部分函數(shù)依賴,從而減少了數(shù)據(jù)冗余、更新異常、插入異常和刪除異常

--設(shè)計(jì):碼的真子集不是碼

第三范式(3NF):若R∈2NF,且R中不存在非主屬性對碼的傳遞依賴(一般走到這)

--意義:在第二范式的基礎(chǔ)上消除了非主屬性對碼的傳遞依賴,從而減少了數(shù)據(jù)冗余、更新異常、插入異常和刪除異常

--設(shè)計(jì):表中主鍵是唯一碼(或者本表僅僅有兩個(gè)碼,且兩碼互為補(bǔ)集)、若外碼存在,則外碼應(yīng)是其原表的主鍵

BCNF(擴(kuò)充的第三范式):若R∈1NF,當(dāng)Y非平凡函數(shù)依賴于X時(shí),X必有碼

--意義:第三范式的基礎(chǔ)上消除主屬性對于碼的部分依賴與傳遞函數(shù)依賴,減少了刪除異常、插入異常和更新異常

--設(shè)計(jì):不同主屬性相互無依賴關(guān)系

第四范式(4NF):若R∈1NF,當(dāng)Y非平凡多值依賴于X時(shí),X必有碼

--意義:屬性之間不允許有非平凡且非函數(shù)依賴的多值依賴,減少維護(hù)數(shù)據(jù)一致性的工作

--設(shè)計(jì):兩個(gè)互補(bǔ)的屬性集合,且都是碼,即全碼,才允許有多對多的關(guān)系出現(xiàn),否則本表只允許一對一的函數(shù)依賴關(guān)系

第五范式(5NF):將表切割成盡量小的塊,排除所有的冗余(一般不會(huì)走到這步)

三、數(shù)據(jù)依賴的公理系統(tǒng)(Armstrong公理系統(tǒng))

設(shè)U為屬性集總體,F(xiàn)是U上的一組函數(shù)依賴,于是有關(guān)系模式R<U,F>,對R<U,F>有以下推理規(guī)則:

自反律

若Y?X?U,則X→Y為F所蘊(yùn)含

增廣律

若X→Y為F所蘊(yùn)含,且Z?U,則X∪Z→Y∪Z為F所蘊(yùn)含

傳遞律

若X→Y為F所蘊(yùn)含,且Y→Z為F所蘊(yùn)含,則X→Z為F所蘊(yùn)含

合并規(guī)則

若X→Y,X→Z,則 X→Y∪Z

分解規(guī)則

若X→Y, 且Z?Y,則X→Z

偽傳遞規(guī)則

若X→Y,WY→Z,則WX→Z

函數(shù)依賴集等價(jià)

--若F的函數(shù)依賴集閉包=G的函數(shù)依賴集閉包,則說F覆蓋G,反之亦可,也可以說F與G等價(jià)

閉包(函數(shù)依賴集,屬性集)

--函數(shù)依賴集的閉包:在關(guān)系模式<R,F>中為F所邏輯蘊(yùn)含的函數(shù)依賴的全體稱為F的閉包

--屬性集的閉包:在關(guān)系模式<R,F>中,能由F根據(jù)Armstrong公理導(dǎo)出的對X函數(shù)依賴的所有屬性集的并集稱為X關(guān)于函數(shù)依賴集F的閉包

Armstrong公理是有效的,完備的:

--有效性:由F出發(fā),根據(jù)Armstrong公理推導(dǎo)出來的每一個(gè)函數(shù)依賴一定在F的閉包中

--完備性:F的函數(shù)依賴集的閉包的每個(gè)函數(shù)依賴,必定可以由F出發(fā)根據(jù)Armstrong公理推導(dǎo)出來

極小依賴集

--F中任一函數(shù)依賴表達(dá)式的箭頭右邊只有一個(gè)屬性,即是說F中的每個(gè)函數(shù)依賴都只能決定一個(gè)屬性,沒有冗余的被決定屬性

--F中不存在函數(shù)依賴X→A使F等價(jià)F-{X→A},即是說F中的函數(shù)依賴都是不可缺少的,換句話說F中沒有冗余的函數(shù)依賴

--F中不存在函數(shù)依賴X→A,Z?X,使F-{X→A}∪{Z→A}與F等價(jià),即是說函數(shù)依賴表達(dá)式的決定因素應(yīng)該盡可能簡,沒有真子集與其等價(jià),決定因素中無冗余屬性

--總結(jié):對F而言,沒有冗余的函數(shù)依賴項(xiàng),對函數(shù)依賴表達(dá)式而言,決定因素盡量精簡(有時(shí)候決定因素必須為多個(gè)屬性,所以只能盡量精簡),被決定因素只有一個(gè)屬性。

最小覆蓋(最小函數(shù)依賴集)

每個(gè)函數(shù)依賴集均等價(jià)于一個(gè)極小函數(shù)依賴集F',稱F'為F的最小依賴集

模式分解(屬性是分配的基本單位)

分解后函數(shù)關(guān)系講不明白,就跳過了,只講判定方法和分解方法

模式分解的意義:

--因?yàn)楝F(xiàn)有的模式可能會(huì)存在一些數(shù)據(jù)增刪改的弊端,需要尋找一種等價(jià)的關(guān)系模式,使得以上弊端得以解決

無損分解:

--對關(guān)系模式分解時(shí),原關(guān)系模型下任一合法的關(guān)系值在分解之后應(yīng)能通過自然聯(lián)接運(yùn)算恢復(fù)起來,即未丟失信息的分解即無損分解。反之,則稱為有損分解

判定公式:對于R<U,F>的一個(gè)分解ρ={R[1]<U[1],F[1]>,R[2]<U[2],F[2]>},如果U[1]∩U[2]→U[1]-U[2]∈F的閉包

建議:對著實(shí)例調(diào)試一次就都知道了,官方說法太玄了

分解的限制:

1.要求保留函數(shù)依賴(數(shù)據(jù)間關(guān)系),一定可以達(dá)到3NF,但是不一定能達(dá)到BCNF,此時(shí)可以還做到無損連接

2.只要求分解具有無損連接性,則一定可以達(dá)到4NF

分解算法

(1)得到保留函數(shù)依賴的3NF(合成法):

--將R<U,F>中的F極小化處理,得到F"

--找出所有不在F"中出現(xiàn)的屬性,記為U",把這些屬性構(gòu)成一個(gè)關(guān)系模式R"<U"',F"'>,把這些屬性從U中去掉,得到U"

①--若有X→A∈F",且XA=U",則ρ={R},結(jié)束

②--或者,對F按具有相同左部(決定因素)的原則分k組,每組函數(shù)依賴集涉及的全部屬性形成一個(gè)屬性集U[i]分別組成對應(yīng)的R[i]關(guān)系模式,算法結(jié)束。此時(shí)的ρ={R[1]<U[1],F[1]>,...R[k]<U[k],F[k]>∪R"<U"',F"'>}是R<U,F>的保留函數(shù)依賴的一個(gè)分解,且對于每個(gè)R[i]都屬于3NF

(2)保留函數(shù)依賴和無損連接的3NF

--設(shè)X是R<U,F>的碼,R已由合成法分解為ρ,令t=ρ∪{R*<X,F[x]>(R*中只有碼)}

--若有某個(gè)U[i],X?U[i],將R*<X,F[x]>從t中去掉,或者U[i]?X,將R<X,F[x]>從t中去掉。這步得到t'

--t'就是所求的分解

--即是說:合成法的計(jì)算結(jié)果ρ與由原表的主屬性組成新表r取并,且用r與ρ中的子表U[i]進(jìn)行對比,去除冗余的表(包含r時(shí)r冗余,被r包含時(shí)U[i]冗余)

(3)轉(zhuǎn)化為BCNF的無損連接分解(僅①適用)

--將分解ρ的子表中可以起決定因素作用的主屬性集(無法構(gòu)成碼)與其被決定因素單獨(dú)提取成一個(gè)新表,原R[i]中刪除掉對應(yīng)的被決定屬性

(4)U=X+Y+Z如果R<U,D>中X→→Y成立,則R的分解ρ={R[1]<X,Y>,R[2]<X,Z>}具有無損連接性

--即是說:將多值依賴的不符合4NF的表分解為多個(gè)函數(shù)依賴的表

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,460評論 6 538
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,067評論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,467評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,468評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,184評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,582評論 1 325
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,616評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,794評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,343評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,096評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,291評論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,863評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,513評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,941評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,190評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,026評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,253評論 2 375

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

  • 關(guān)系:描述實(shí)體、屬性、實(shí)體間的關(guān)系關(guān)系模式:用來定義關(guān)系,描述關(guān)系的性質(zhì)(邏輯結(jié)構(gòu)與特征)關(guān)系數(shù)據(jù)庫:基于關(guān)系模型...
    Gopal閱讀 209評論 0 0
  • 一年級(jí)語文上冊生字表 生字表一(共400字) 啊(ā)愛(ài)安(ān)岸(àn)爸(bà)八(bā)巴(bā)...
    meychang閱讀 2,837評論 0 6
  • 迪麗熱巴:起床了,老公 鹿晗:老婆,今天是周6,好不容易放 假了,能讓我在睡一會(huì)兒嗎? 迪麗熱巴:我們...
    皮卡丘的baby閱讀 1,537評論 0 4
  • 1.針對最近的爆款文《就算老公一毛錢股份都沒拿到,在我心里,他依然是最牛逼的創(chuàng)業(yè)者》,用不超過三句,說說要不要抓熱...
    潔微內(nèi)涵閱讀 475評論 0 1
  • 夏日的北京清晨,下起了不急不慢的雨。我走在上班的路上,聽到蘇打綠的《當(dāng)我們一起走過》。 這首歌來自他們2011年的...
    嚀初閱讀 1,108評論 4 8