關(guān)系數(shù)據(jù)庫理論基礎(chǔ)_第1頁
關(guān)系數(shù)據(jù)庫理論基礎(chǔ)_第2頁
關(guān)系數(shù)據(jù)庫理論基礎(chǔ)_第3頁
關(guān)系數(shù)據(jù)庫理論基礎(chǔ)_第4頁
關(guān)系數(shù)據(jù)庫理論基礎(chǔ)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

關(guān)系數(shù)據(jù)庫理論基礎(chǔ)第1頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)22.1關(guān)系的基本概念2.1.1關(guān)系的數(shù)學(xué)定義1.域(Domain)域:是一組具有相同數(shù)據(jù)類型的值集合。例如:{自然數(shù)},{男,女},{0,1}等都可以是域?;鶖?shù):域中數(shù)據(jù)的個(gè)數(shù)稱為域的基數(shù)。域被命名后用如下方法表示:D1={白亞春,陳韜,王雪蓮},表示姓名的集合,基數(shù)是3;D2={計(jì)算機(jī)系,電子系}第2頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)32.笛卡爾積(CartesianProduct)給定一組域D1,D2,…,Di,…,Dn(可以有相同的域),則笛卡爾積定義為:D1D2…Di…Dn={(d1,d2,…,di,…,dn)∣di∈Di,i=1,2,…,n}D1D2={(陳韜,計(jì)算機(jī)系),(陳韜,電子系),(王雪蓮,計(jì)算機(jī)系),(王雪蓮,電子系),(白亞春,計(jì)算機(jī)系),(白亞春,電子系)}其中每個(gè)(d1,d2,…,di,…,dn)叫做元組,元組中的每一個(gè)值di叫做分量,di必須是Di中的一個(gè)值。顯然,笛卡爾積的基數(shù)就是構(gòu)成該積所有域的基數(shù)累乘積,若Di(i=1,2,…,n)為有限集合,其基數(shù)為mi(i=1,2,…,n),則D1D2…Di…Dn笛卡爾積的基數(shù)M為:第3頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)4該笛卡爾積的基數(shù)是M=m1m2=3*2=6,即該笛卡爾積共有6個(gè)元組,它可組成一張二維表姓名籍貫陳韜計(jì)算機(jī)系陳韜電子系王雪蓮計(jì)算機(jī)系王雪蓮電子系白亞春計(jì)算機(jī)系白亞春電子系第4頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)53.關(guān)系(Relation)關(guān)系:笛卡爾積D1D2…Di…Dn的子集R稱作在域D1,D2,…,Dn上的關(guān)系,記作:R(D1,D2,…,Di,…,Dn)其中:R為關(guān)系名,n為關(guān)系的度或目(Degree),Di是域組中的第i個(gè)域名.當(dāng)n=1時(shí),稱該關(guān)系為單元關(guān)系;當(dāng)n=2時(shí),稱該關(guān)系為二元關(guān)系;以此類推,關(guān)系中有n個(gè)域,稱該關(guān)系為n元關(guān)系。把列稱為屬性(Attribute)。一般來說,一個(gè)取自笛卡爾積的子集才有意義。

第5頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)6關(guān)系可以分為三種類型:基本關(guān)系(又稱基本表):是實(shí)際存在的表,它是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示;查詢表:是對(duì)基本表進(jìn)行查詢后得到的結(jié)果表;視圖表:是由基本表或其它視圖導(dǎo)出的表,是一個(gè)虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)。

姓名籍貫陳韜計(jì)算機(jī)系王雪蓮電子系白亞春計(jì)算機(jī)系第6頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)72.1.2關(guān)系的性質(zhì)1.列是同質(zhì)的。

2.關(guān)系中行的順序、列的順序可以任意互換,不會(huì)改變關(guān)系的意義。

學(xué)號(hào)姓名性別出生日期所在系0022102王雪蓮女1980-9-15電子系計(jì)算機(jī)系白亞春男1981-1-2500513090052201陳韜男計(jì)算機(jī)系1981-5-60052217袁更旭男1980-12-8計(jì)算機(jī)系第7頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)83.關(guān)系中的任意兩個(gè)元組不能相同。

4、關(guān)系中的元組分量具有原子性,即每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng)。

學(xué)號(hào)姓名性別出生日期所在系0022102王雪蓮女1980-9-15電子系0051309白亞春男1981-1-25計(jì)算機(jī)系0051309白亞春男1981-1-25計(jì)算機(jī)系0052217袁更旭男1980-12-8計(jì)算機(jī)系第8頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)92.2關(guān)系的完整性2.2.1鍵1.候選鍵(Candidatekey)若關(guān)系中的某一屬性組的值能惟一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選鍵。2.主鍵(Primarykey)若一個(gè)關(guān)系中有多個(gè)候選鍵,則選定一個(gè)為主鍵。第9頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)103.主屬性(PrimaryAttribute)主鍵的屬性稱為主屬性。4.外鍵(Foreignkey)設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是R的鍵(主鍵或候選鍵),如果F與基本關(guān)系S的主鍵K相對(duì)應(yīng),則稱F是R的外鍵,并稱R為參照關(guān)系,S為被參照關(guān)系。

2.2關(guān)系的完整性第10頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)11學(xué)號(hào)姓名性別出生日期所在系0022102王雪蓮女1980-9-15電子系0051309白亞春男1981-1-25計(jì)算機(jī)系0052201陳韜男1981-5-6計(jì)算機(jī)系0052217袁更旭男1980-12-8計(jì)算機(jī)系課程號(hào)學(xué)號(hào)成績C201002210275C505005130995C508005220192C506005221780第11頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)122.2.2實(shí)體完整性實(shí)體完整性規(guī)則:關(guān)系中的主鍵不能為空值(Null)??罩稻褪恰安恢馈被颉盁o意義”2.2.3參照完整性參照完整性規(guī)則:表的外鍵必須是另一個(gè)表主鍵的有效值,或者是空值。2.2關(guān)系的完整性第12頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)13學(xué)號(hào)姓名性別出生日期所在系0022102王雪蓮女1980-9-15電子系0051309白亞春男1981-1-25計(jì)算機(jī)系0052201陳韜男1981-5-6計(jì)算機(jī)系0052217袁更旭男1980-12-8計(jì)算機(jī)系課程號(hào)學(xué)號(hào)成績C201002210275C505005130995C508A10286992C506005221780實(shí)體完整性和參照完整性實(shí)例第13頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)142.2.4用戶定義完整性用戶按照實(shí)際的數(shù)據(jù)庫運(yùn)行環(huán)境要求,對(duì)關(guān)系中的數(shù)據(jù)所定義的約束條件,它反映的是某一具體應(yīng)用所涉及的數(shù)據(jù)必須要滿足的條件。

2.2關(guān)系的完整性第14頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)152.3關(guān)系代數(shù)2.3.1傳統(tǒng)的集合運(yùn)算當(dāng)集合運(yùn)算并、交、差用于關(guān)系時(shí),要求參與運(yùn)算的兩個(gè)關(guān)系必須時(shí)相容的,即兩個(gè)關(guān)系的度數(shù)一致,并且關(guān)系屬性的性質(zhì)必須一致。第15頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)161.并并:是將兩個(gè)關(guān)系中的所有元組構(gòu)成新的關(guān)系,并運(yùn)算的結(jié)果中必須消除重復(fù)值。關(guān)系R與S的并運(yùn)算記作:R∪S。

學(xué)號(hào)姓名性別出生日期所在系0022101何芊女1982-6-5電子系0022102王雪蓮女1980-9-15電子系0022201葉媛媛女1982-3-5電子系0051309白亞春男1981-1-25計(jì)算機(jī)系0052201陳韜男1981-5-6計(jì)算機(jī)系0052217袁更旭男1980-12-8計(jì)算機(jī)系第16頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)172.交交:將兩個(gè)關(guān)系中的公共元組構(gòu)成新的關(guān)系。關(guān)系R與S的交運(yùn)算記作:R∩S。

學(xué)號(hào)姓名性別出生日期所在系0051309白亞春男1981-1-25計(jì)算機(jī)系0052217袁更旭男1980-12-8計(jì)算機(jī)系第17頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)183.差差:運(yùn)算結(jié)果是由屬于一個(gè)關(guān)系并且不屬于另一個(gè)關(guān)系的元組構(gòu)成的新關(guān)系,就是從一個(gè)關(guān)系中減去另一個(gè)關(guān)系。關(guān)系R與S的差運(yùn)算記作:R-S。

學(xué)號(hào)姓名性別出生日期所在系0022102王雪蓮女1980-9-15電子系0052201陳韜男1981-5-6計(jì)算機(jī)系第18頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)192.3.2專門的關(guān)系運(yùn)算專門的關(guān)系運(yùn)算包括:選擇、投影和連接,用于數(shù)據(jù)查詢服務(wù)。1.選擇(Selection)選擇:是按照給定條件從指定的關(guān)系中挑選出滿足條件的元組構(gòu)成新的關(guān)系?;蛘哒f,選擇運(yùn)算的結(jié)果是一個(gè)表的行的子集。記作

學(xué)號(hào)姓名性別出生日期所在系0051309白亞春男1981-1-25計(jì)算機(jī)系0052201陳韜男1981-5-6計(jì)算機(jī)系0052217袁更旭男1980-12-8計(jì)算機(jī)系第19頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)202.投影(Projection)投影:是從指定的關(guān)系中挑選出某些屬性構(gòu)成新的關(guān)系?;蛘哒f,選擇運(yùn)算的結(jié)果是一個(gè)表的列的子集。記作,其中A為R的屬性列。投影的結(jié)果將取消由于取消了某些列而產(chǎn)生的重復(fù)元組。

學(xué)號(hào)姓名性別0022102王雪蓮女0051309白亞春男0052201陳韜男0052217袁更旭男第20頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)213.連接(Join)連接:是將兩個(gè)和多個(gè)關(guān)系連接在一起,形成一個(gè)新的關(guān)系。連接運(yùn)算是按照給定條件,把滿足條件的各關(guān)系的所有元組,按照一切可能組合成新的關(guān)系?;蛘哒f,連接運(yùn)算的結(jié)果是在兩關(guān)系的笛卡爾積上的選擇。記作:自然連接:當(dāng)連接的兩關(guān)系有相同的屬性名時(shí),稱這種連接為自然連接,它是連接的一個(gè)特例。記作:第21頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)22學(xué)號(hào)姓名性別出生日期所在系課程號(hào)成績0022102王雪蓮女1980-9-15電子系C201750051309白亞春男1981-1-25計(jì)算機(jī)系C505950052201陳韜男1981-5-6計(jì)算機(jī)系C508920052217袁更旭男1980-12-8計(jì)算機(jī)系C50680

學(xué)生基本情況表學(xué)生選課表

第22頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)232.4關(guān)系規(guī)范化2.4.1問題的提出在設(shè)計(jì)關(guān)系數(shù)據(jù)庫時(shí),經(jīng)常采用一種自下而上的設(shè)計(jì)方法。這種方法是對(duì)涉及的所有數(shù)據(jù)進(jìn)行收集,然后按照欄目進(jìn)行歸納分類。插入異常:如果某個(gè)教師的所開課程某學(xué)期沒有,或者學(xué)生沒有選修他開的該課程,那么就無法將該教師及其所開課程的信息存入數(shù)據(jù)庫。

刪除異常:如果某屆學(xué)生全部畢業(yè),在刪除該系學(xué)生時(shí)會(huì)將課程及相關(guān)教師刪除。

數(shù)據(jù)冗余:比如,一門課程及其教師要與選修該課程的每一個(gè)學(xué)生出現(xiàn)的次數(shù)一樣多

解決這些問題的辦法就是重新設(shè)計(jì)數(shù)據(jù)庫。第23頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)24學(xué)號(hào)姓名性別出生日期所在系課程名稱成績課程教師職稱0052201陳韜男1981-5-6計(jì)算機(jī)系數(shù)據(jù)庫技術(shù)90陳剛副教授0052201陳韜男1981-5-6計(jì)算機(jī)系操作系統(tǒng)85溫翠靈講師0052201陳韜男1981-5-6計(jì)算機(jī)系C語言75陳剛副教授0051309白亞春男1981-1-25計(jì)算機(jī)系數(shù)據(jù)庫技術(shù)95陳剛副教授0051309白亞春男1981-1-25計(jì)算機(jī)系操作系統(tǒng)88溫翠靈講師0051309白亞春男1981-1-25計(jì)算機(jī)系編譯技術(shù)85李建義講師第24頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)25

1.函數(shù)依賴的概念在數(shù)據(jù)庫中,屬性值之間會(huì)發(fā)生聯(lián)系。例如每一本圖書只有一個(gè)書號(hào),每本書入庫只有一個(gè)操作員等等。這類聯(lián)系,稱為函數(shù)依賴。關(guān)系理論中函數(shù)依賴是指關(guān)系中屬性間的對(duì)應(yīng)關(guān)系。如關(guān)系中對(duì)于屬性(組)X的每一個(gè)值,屬性(組)Y只有唯一的值與之對(duì)應(yīng),則稱Y函數(shù)依賴于X,或稱X函數(shù)決定Y,記為X→Y。其中,X稱為決定因素。X→Y為模式R的一個(gè)函數(shù)依賴。

【例2.8】設(shè)有一個(gè)職工關(guān)系(職工編號(hào),姓名,性別,所在部門),職工編號(hào)是關(guān)系的主鍵。對(duì)于該關(guān)系中的每一個(gè)職工的職工編號(hào),都對(duì)應(yīng)著姓名屬性中的唯一值,即該職工的姓名也就是說,一個(gè)職工的姓名由他的職工編號(hào)唯一確定,所以稱職工編號(hào)函數(shù)決定姓名,或者稱姓名函數(shù)依賴于職工編號(hào),記作:職工編號(hào)→姓名,職工編號(hào)為該函數(shù)依賴的決定因素。同理,職工編號(hào)決定性別、所在部門等屬性,分別記作:職工編號(hào)→性別,職工編號(hào)→所在部門。

第25頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)26

在一個(gè)關(guān)系中,可分析出許多依賴關(guān)系。函數(shù)依賴可區(qū)分為完全依賴、部分依賴和傳遞依賴三類。2.完全函數(shù)依賴若X、Y是關(guān)系R中屬性(組),Y函數(shù)依賴X(X→Y)但Y函數(shù)不依賴X的任一真子集,則稱Y完全函數(shù)依賴于X,記作XY。

【例2.9】在職工關(guān)系(職工編號(hào),姓名,性別,所在部門)中,職工編號(hào)同其他每個(gè)屬性之間的函數(shù)依賴都是完全函數(shù)依賴,即職工編號(hào)姓名,職工編號(hào)性別,職工編號(hào)所在部門。因?yàn)槁毠ぞ幪?hào)不可能再包含其他的任何屬性,也不可能存在真子集函數(shù)決定其他每一個(gè)屬性的情況。第26頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)273.部分函數(shù)依賴若X、Y為關(guān)系R中的屬性(組),如Y函數(shù)依賴X(X→Y),且X中存在真子集X'(X'≠X,且X'X),滿足Y函數(shù)依賴X'(X'→Y),則稱Y部分函數(shù)依賴于X,記作X。

【例2.10】職工關(guān)系(職工編號(hào),姓名,性別,所在部門)中,屬性組(職工編號(hào),性別)的值能夠決定相應(yīng)職工所在的部門,但其真子集中的職工編號(hào)也能函數(shù)決定所在部門,所以所在部門部分函數(shù)依賴于(職工編號(hào),性別)。4.傳遞函數(shù)依賴設(shè)X、Y、Z是關(guān)系R(U)的屬性集上的子集,其中Y函數(shù)依賴X(X→Y),Z函數(shù)依賴Y(Y→Z),但X不函數(shù)依賴于Y,則稱Z傳遞函數(shù)依賴于X,記作:X。(注意這里必須強(qiáng)調(diào)X不函數(shù)依賴于Y,因?yàn)槿绻亍偻瑫r(shí)Y→X,則為XY,這樣X和Y是等價(jià)的,在函數(shù)依賴中是可以互換的,X→Z就是直接函數(shù)依賴,而不是傳遞函數(shù)依賴。)第27頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)282.4.2關(guān)系模式的規(guī)范化1.范式(Normalform)范式:建立關(guān)系時(shí)需要滿足的約束條件劃分成若干標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)稱為范式,簡寫為NF。范式的級(jí)別越高,發(fā)生操作異常的可能性越小,數(shù)據(jù)冗余越小,但由于關(guān)聯(lián)多,讀取數(shù)據(jù)時(shí)花費(fèi)時(shí)間也會(huì)相應(yīng)增加。2.第一范式(1NF)對(duì)于給定的關(guān)系R,如果R中的所有行、列交點(diǎn)處的值都是不可再分的數(shù)據(jù)項(xiàng),則稱關(guān)系R屬于第一范式,記作:R∈1NF。1NF是關(guān)系數(shù)據(jù)庫中對(duì)關(guān)系的最低要求,它是從關(guān)系的基本性質(zhì)而來的,任何關(guān)系必須遵守。第28頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)293.第二范式(2NF)如果關(guān)系R∈1NF,并且R的每一個(gè)非主屬性都決定于主鍵,則稱R屬于第二范式,記作:R∈2NF。思考:主鍵沒有冗余,非主鍵存在冗余。3.第三范式(3NF)第三范式:如果關(guān)系R∈2NF,并且R的每一個(gè)非主屬性都不間接決定于主鍵,則稱R屬于第三范式,記作:R∈3NF。達(dá)到第三范式的關(guān)系仍有可能存在冗余等問題,所以關(guān)系數(shù)據(jù)庫理論還有BCNF、4NF、5NF等范式。在實(shí)際應(yīng)用中,一般達(dá)到了3NF的關(guān)系就可以認(rèn)為是較為優(yōu)化的關(guān)系。

第29頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)30

2.5.3規(guī)范化和范式規(guī)范化表示了從數(shù)據(jù)存儲(chǔ)中移去數(shù)據(jù)冗余的過程。規(guī)范化避免了數(shù)據(jù)冗余,節(jié)省了空間,對(duì)數(shù)據(jù)的一致性提供了根本的保障,杜絕了數(shù)據(jù)不一致的現(xiàn)象,在一定范圍內(nèi)提高了效率。規(guī)范化有許多層次,對(duì)關(guān)系最基本的要求是每個(gè)屬性值必須是不可分割的數(shù)據(jù)單元,即表中不能再包含表。滿足一定條件的關(guān)系模式,稱為范式(NormalForm)。范式就是某一種級(jí)別的關(guān)系模式的集合,人們稱某一關(guān)系模式R為第n范式,就表示該關(guān)系的級(jí)別。一個(gè)低級(jí)范式的關(guān)系模式,通過分解(投影)方法可轉(zhuǎn)換成多個(gè)高一級(jí)范式的關(guān)系模式的集合,這種過程稱為規(guī)范化。1.第一范式1NF

定義如果一個(gè)關(guān)系R的每一個(gè)屬性都是不可分的數(shù)據(jù)項(xiàng),則稱R是符合第一范式的,記做R1NF。若一個(gè)關(guān)系數(shù)據(jù)庫中所有的關(guān)系都滿足第一范式要求,則稱為滿足第一范式的數(shù)據(jù)庫。第30頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)31

【例2.12】設(shè)某單位的職工評(píng)價(jià)信息關(guān)系:評(píng)價(jià)(職工編號(hào),姓名,工作表現(xiàn)(工作態(tài)度,業(yè)績),綜合評(píng)價(jià),評(píng)價(jià)日期),對(duì)應(yīng)元組如表2.18。

表2.18不是一個(gè)規(guī)范化的關(guān)系,因?yàn)楣ぷ鞅憩F(xiàn)屬性不是原子屬性,包含了三個(gè)屬性,因此必須把每個(gè)屬性提升為一般屬性,得到規(guī)范化的關(guān)系,如表2.19。

第31頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)32第32頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)33

2.第二范式2NF

定義設(shè)關(guān)系R1NF,且它的每一非主屬性完全依賴于主鍵,則稱R是符合第二范式的,記作R∈2NF。

如果一個(gè)關(guān)系只滿足第一范式,那么可能會(huì)帶來數(shù)據(jù)冗余和操作異常,即插入異常、刪除異常和修改異常。

【例2.13】設(shè)有一個(gè)圖書銷售關(guān)系TSXS(書號(hào),書名,出版社,作者,單價(jià),數(shù)量,折扣,日期,操作員帳號(hào),姓名,密碼)中,每位操作員可以銷售多種書,每種書可由多個(gè)操作員銷售。TSXS具體實(shí)例如表2.20。

第33頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)34在該關(guān)系中,由于書號(hào)和操作員帳號(hào)屬性沒有決定因素,所以它們包含在候選鍵中,而由這兩個(gè)屬性構(gòu)成屬性組則能夠函數(shù)決定所有屬性,因此(書號(hào),操作員帳號(hào))是關(guān)系的主鍵。在該關(guān)系中存在著非主屬性對(duì)主鍵的部分依賴,其中書名、出版社、作者、單價(jià)、庫存數(shù)量、折扣依賴于書號(hào),姓名、密碼依賴于操作員帳號(hào),所以該關(guān)系中必然存在數(shù)據(jù)冗余,在對(duì)該關(guān)系進(jìn)行插入、刪除和修改時(shí),也會(huì)帶來意外的麻煩。我們可以通過關(guān)系分解的方法來消除部份依賴。對(duì)應(yīng)的圖書銷售關(guān)系TSXS可分解成以下幾個(gè)關(guān)系:圖書(書號(hào),書名,出版社,單價(jià),折扣)操作員(操作員帳號(hào),姓名,密碼)銷售(書號(hào),操作員帳號(hào),數(shù)量)

第34頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)35

【說明】不符合2NF的關(guān)系R規(guī)范化為第二范式的方法:對(duì)于一個(gè)關(guān)系R(U),假定W、X、Y、Z是U的互不相交的屬性子集,其中(W,X)是主鍵,X完全函數(shù)決定Y,(W,X)函數(shù)決定Z,但Z中不含依賴于X的屬性,則把R(U)分解為兩個(gè)關(guān)系R1(X,Y)和R2(W,X,Z)后就取消了Y對(duì)(W,X)的部分依賴,其中X是R1的主鍵和R2的外鍵,通過X使R1和R2自然連接仍然可得到原來的R(U)。同理,若R2(W,X,Z)中仍存在著部分依賴,仍可以按此方法繼續(xù)分解,直到消除全部部分依賴為止。

3.第三范式3NF

定義設(shè)關(guān)系R∈2NF,且它的每一非主屬性不傳遞依賴于主鍵,則該關(guān)系是符合第三范式的,記作R∈3NF。一個(gè)符合第三范式的關(guān)系必須具有以下三個(gè)條件:(1)每個(gè)屬性的值唯一,不具有多義性。(2)每個(gè)非主屬性必須完全依賴于整個(gè)主鍵,而非主鍵的一部分。(3)每個(gè)非主屬性不能依賴于其他關(guān)系中的屬性。從以上可知,2NF可從1NF關(guān)系消除非主屬性對(duì)主鍵的部分函數(shù)依賴后獲得,3NF關(guān)系可從2NF關(guān)系消除非主屬性對(duì)主鍵的傳遞函數(shù)依賴后獲得。第35頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)36

【例2.14】圖書銷售關(guān)系(流水號(hào),書號(hào),書名,數(shù)量,入庫價(jià),銷售價(jià),入庫時(shí)間,操作員賬戶,姓名,密碼,銷售日期,總金額),一個(gè)流水號(hào)只由一個(gè)操作員帳號(hào)處理,一個(gè)操作員帳號(hào)可以處理多個(gè)流水號(hào),而操作員帳號(hào)決定操作員姓名、密碼,所以圖書銷售關(guān)系中函數(shù)依賴關(guān)系如下:流水號(hào)→書號(hào),流水號(hào)→操作員帳號(hào),書號(hào)→書名,書號(hào)→數(shù)量,書號(hào)→入庫價(jià),書號(hào)→銷售價(jià),書號(hào)→入庫時(shí)間,操作員帳號(hào)→姓名,操作員帳號(hào)→密碼,流水號(hào)→銷售日期,流水號(hào)→總金額。在圖書銷售關(guān)系中,只有流水號(hào)沒有決定因素,所以流水號(hào)屬性必然包含在候選鍵中,由流水號(hào)可以直接決定書號(hào)、操作員帳號(hào)、銷售日期、總金額等屬性,同時(shí)流水號(hào)傳遞決定書名、數(shù)量、入庫價(jià)、銷售價(jià)、入庫時(shí)間、姓名、密碼等屬性,所以流水號(hào)能函數(shù)決定所有屬性,流水號(hào)用作該關(guān)系的主鍵。由于該關(guān)系是單屬性候選鍵,所以不會(huì)存在部分函數(shù)依賴,它自然滿足第二范式。由于該關(guān)系中存在著書的各屬性對(duì)流水號(hào)的傳遞依賴,存在著操作員各屬性對(duì)流水號(hào)的傳遞依賴,所以必然會(huì)產(chǎn)生數(shù)據(jù)冗余和操作異常。第36頁,課件共42頁,創(chuàng)作于2023年2月2023/7/30數(shù)據(jù)庫原理及開發(fā)37消除關(guān)系中的傳遞依賴也是通過關(guān)系分解的方法來實(shí)現(xiàn)。設(shè)一個(gè)關(guān)系為R(U),X、Y、Z、W是U的互不相交的屬性子集,其中X為主鍵,Y→Z是直接函數(shù)依賴(也可能包含部分函數(shù)依賴),X→Z是傳遞函數(shù)依賴,則把R(U)分解成兩個(gè)關(guān)系R1(Y,Z)和R2(X,Y,W),其中Y是R1的主鍵,R2是外鍵,這樣就消除了Z對(duì)X的傳遞依賴,通過Y對(duì)R1和R2自然連接仍可得到原來的R,同樣,若R1和R2中仍存在著傳遞依賴,則繼續(xù)按此方法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論