![數(shù)據(jù)庫 - 關(guān)系數(shù)據(jù)庫基本知識_第1頁](http://file4.renrendoc.com/view9/M02/31/35/wKhkGWcu332AZ9wjAALAd0XxHW8170.jpg)
![數(shù)據(jù)庫 - 關(guān)系數(shù)據(jù)庫基本知識_第2頁](http://file4.renrendoc.com/view9/M02/31/35/wKhkGWcu332AZ9wjAALAd0XxHW81702.jpg)
![數(shù)據(jù)庫 - 關(guān)系數(shù)據(jù)庫基本知識_第3頁](http://file4.renrendoc.com/view9/M02/31/35/wKhkGWcu332AZ9wjAALAd0XxHW81703.jpg)
![數(shù)據(jù)庫 - 關(guān)系數(shù)據(jù)庫基本知識_第4頁](http://file4.renrendoc.com/view9/M02/31/35/wKhkGWcu332AZ9wjAALAd0XxHW81704.jpg)
![數(shù)據(jù)庫 - 關(guān)系數(shù)據(jù)庫基本知識_第5頁](http://file4.renrendoc.com/view9/M02/31/35/wKhkGWcu332AZ9wjAALAd0XxHW81705.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第一章 關(guān)系數(shù)據(jù)庫基本知識
復(fù)習(xí)1.1問題的引出手工模式下用表格收集、表示和查閱信息步驟:表格的設(shè)計:根據(jù)要收集數(shù)據(jù)的結(jié)構(gòu)設(shè)計空白表格填寫或查閱表格數(shù)據(jù):填寫過程以添加信息為主,但也難免要進行修改(涂改)和刪除(劃去)。填寫和查閱需要交替進行。校對表格數(shù)據(jù):錄入完成后對數(shù)據(jù)進行校對前三個步驟正對應(yīng)了我們研究的數(shù)據(jù)模型的三個要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操縱和數(shù)據(jù)約束。1.1.1 表格設(shè)計手工表格設(shè)計原則:盡可能地減少重復(fù):我們把學(xué)生基本信息表以班級為單元組織,這樣班級信息就可放在表頭,避免了每個學(xué)生都出現(xiàn)重復(fù)的班級信息。避免重復(fù)也就減少了填寫表格的工作量及出現(xiàn)不一致差錯的可能性。達到上述目標的方法是進行多表的設(shè)計:學(xué)生信息表和班級信息表。這些設(shè)計原則就是關(guān)系型數(shù)據(jù)庫設(shè)計的范式中所要求的內(nèi)容,上述三部分敘述對應(yīng)范式中的冗余、各種異常和模式分解。1.1.2 數(shù)據(jù)操縱手工情況下對表格操作分為兩種:表格信息的維護和表格信息的查閱。對表格信息維護包括增加行、修改某些行信息和刪除某些行。手工情況下若要增加列,往往由于紙張寬度的限制,要重新做表,然后把原表格數(shù)據(jù)抄入已增加新列的新表中,導(dǎo)致這種重復(fù)的工作的原因是由于表格設(shè)計時考慮不周。對表格數(shù)據(jù)的查閱可能要同時對比著查閱多個表格,提高查閱速度的方法是對信息分組、排序或提供索引表。對應(yīng)上述工作,關(guān)系型數(shù)據(jù)庫提供了數(shù)據(jù)插入、刪除和更新語句,同時提供了手工無法比擬的查詢功能,查詢操作包括選擇、投影、連接、除、并、差、交和笛卡爾積運算。同樣,增加一個列不屬于數(shù)據(jù)操縱語言,而屬于數(shù)據(jù)定義語言,是設(shè)計階段必須完成的工作。類似手工操作,提高查詢效率的有效方法之一是建立索引。1.1.3 數(shù)據(jù)校對對手工表格數(shù)據(jù)校對所包含的內(nèi)容是否重復(fù):各表格數(shù)據(jù)的一致性:如各表格中姓名的一致性數(shù)據(jù)是否合乎邏輯:如年齡、身高是否在合理的范圍。上述手工校對的內(nèi)容對應(yīng)的三種數(shù)據(jù)約束:實體完整性、參照完整性和用戶定義完整性。1.2 關(guān)系型數(shù)據(jù)結(jié)構(gòu)域:把同質(zhì)的列中表中獨立出來,域包含了這些列取值類型和范圍定義。笛卡爾積:由若干域構(gòu)成一個二維表的表頭(結(jié)構(gòu)),每個域?qū)?yīng)一個列名(屬性),各列在其對應(yīng)域取值范圍內(nèi)的所有取值的組合,稱為這些域的笛卡爾積。(是行的集合、通常元素個數(shù)無數(shù)、無實際意義)關(guān)系(二維表):笛卡爾積的子集,元素個數(shù)可數(shù)、有實際意義。關(guān)系的碼:若關(guān)系中某個屬性組的值可唯一標識一個元組(行),稱該屬性組為關(guān)系的碼。碼具有唯一性和最小性特性。1.3 關(guān)系模型的數(shù)據(jù)操作
查詢操作是關(guān)系模型數(shù)據(jù)操作的核心復(fù)雜的插入、刪除和更新操作需要使用子查詢。數(shù)據(jù)操作的復(fù)雜性主要表現(xiàn)為查詢操作查詢操作要實現(xiàn)下列運算集合運算:并、差、交和廣義笛卡爾積關(guān)系運算:選擇、投影、連接、除1.4 關(guān)系模型的完整性約束
實體完整性:通過設(shè)置主鍵實現(xiàn)參照完整性:通過定義引用關(guān)系(外鍵)實現(xiàn)用戶定義完整性:包括非空約束(NotNull)、唯一性約束(Unique)、列級和行級自定義邏輯關(guān)系約束(check)等。第二章 范式及其對數(shù)據(jù)庫設(shè)計的
指導(dǎo)意義
范式理論及對實踐指導(dǎo)意義概述。范式:1NF、2NF、3NF、BCNF、4NF、5NF實例分析及1NF、3NF的認識誤區(qū)關(guān)系模型下的樹結(jié)構(gòu)表達供應(yīng)商和系名問題范式的局限-對冗余的進一步討論單表行間冗余多表間冗余2.1 范式理論及對實踐指導(dǎo)意義概述1)范式理論形成:1971年,由1970年首先提出“大型共享數(shù)據(jù)庫數(shù)據(jù)的關(guān)系模型”的關(guān)系數(shù)據(jù)庫之父EdgarFrankCodd相繼提出了三級規(guī)范化形式1NF-3NF1974年,E.F.Codd和Boyce共同提出BCNF1977RonaldFagin提出了第四范式以后又相繼提出了5NF(Project-JoinNormalForm(PJ/NF))、DKFN(Domain/KeyNormalForm)和6NF2)各范式之間關(guān)系:1NF2NF3NFBCNF4NF5NFDKNF6NF3)規(guī)范化方法:一個屬于低一級的范式的關(guān)系模式可以通過模式分解轉(zhuǎn)換成屬于高一級范式的關(guān)系模式,這個過程稱為關(guān)系模式的規(guī)范化。4)規(guī)范化目的:消除關(guān)系中的數(shù)據(jù)冗余由于數(shù)據(jù)冗余引發(fā)的問題:浪費了存儲資源,并且重復(fù)的數(shù)據(jù)占用的空間隨數(shù)據(jù)量的遞增而遞增。由于數(shù)據(jù)的重復(fù),為保證數(shù)據(jù)的一致性,將增加數(shù)據(jù)維護(插入、更新和刪除)的代價,從而降低了系統(tǒng)的開發(fā)和運行效率各種意外還是可能造成重復(fù)數(shù)據(jù)的不一致,從而降低了系統(tǒng)的穩(wěn)定性和可靠性。是產(chǎn)生插入,更新和刪除異常根源(見下例)插入,更新和刪除異常實例:假設(shè)存在下列關(guān)系,包含學(xué)生和系的基本信息:學(xué)號 姓名 所在系 系主任001 zhang 數(shù)學(xué) MrLi002 wang 數(shù)學(xué) MrLi003 zhou 數(shù)學(xué) MrLi004 feng 計算機 Mrchen005 dong 計算機 Mrchen該關(guān)系存在插入,更新和刪除異常。插入異常:當(dāng)新成立一個系但還沒有學(xué)生時,產(chǎn)生插入異常。刪除異常:當(dāng)一個系的學(xué)生被全部刪除后,系信息也被刪除。更新異常:當(dāng)系名稱或系主任發(fā)生變化,必須同時更新這個系所有學(xué)生記錄,若漏改一個,就產(chǎn)生更新異常。5)規(guī)范化理論對實踐的指導(dǎo)意義異常分類:關(guān)系設(shè)計不規(guī)范引起插入,更新和刪除異常有的可以通過嚴密的算法避免發(fā)生,有的則不能避免。在上例中,插入和刪除異常不可避免,而更新異常卻可以避免。不可避免異常:若數(shù)據(jù)庫的設(shè)計中存在不可避免的異常時,需求將無法實現(xiàn),設(shè)計者會自覺地消除這些異常。在上例中,一般會增加一個“系(系名,系主任)”關(guān)系來排除不可避免的插入和刪除異常。這時,規(guī)范化設(shè)計成為設(shè)計師自覺的行動可避免異常:關(guān)系規(guī)范化理論對設(shè)計者有指導(dǎo)意義的是消除可避免異常引起的數(shù)據(jù)冗余。冗余和范式關(guān)系:一般消除了一個關(guān)系中的數(shù)據(jù)冗余(除外鍵引用為必要的數(shù)據(jù)冗余外),該關(guān)系也就符合了范式要求。一個關(guān)系符合范式要求,一般就不會產(chǎn)生數(shù)據(jù)冗余,但必須注意的是范式可以消除一個關(guān)系中的(單行)數(shù)據(jù)冗余,但不能消除一個表的行間冗余和多個關(guān)系之間的數(shù)據(jù)冗余。2.2 范式
2.2.1 1NF及對實踐的指導(dǎo)意義
1)定義1NF的定義1:若關(guān)系中所有屬性是不可再分的基本項(原子項),即關(guān)系中的屬性不能是組合屬性,稱關(guān)系屬于或服從第一范式。1NF的定義2:關(guān)系模式R中不能含有任何重復(fù)的數(shù)據(jù)項。(RobertD.Schnneider規(guī)劃與建立高性能SQLServer6.5數(shù)據(jù)庫)第一范式是關(guān)系數(shù)據(jù)模式必須遵循的規(guī)范,其他規(guī)范均建立在此基礎(chǔ)之上。關(guān)系的一切數(shù)學(xué)理論均基于關(guān)系模式服從1NF。如一個學(xué)生的成績包括數(shù)學(xué),語文,外語等,則成績不能作為學(xué)生關(guān)系中的一個屬性。要使其符合1NF,必須把數(shù)學(xué),語文,外語成績直接作為學(xué)生關(guān)系的屬性。由于關(guān)系數(shù)據(jù)庫中表中列之間的關(guān)系相互并列,本身不支持層次結(jié)構(gòu)或數(shù)組,所以表面上看,只要是二維表,就一定符合1NF2)1NF的第一層次的解釋3)1NF的第二層次的解釋不要或沒有必要把若干屬性或代碼組合成一個組合屬性或組合代碼放在一個數(shù)據(jù)列中。這同樣違反1NF。這樣做的風(fēng)險是數(shù)據(jù)庫系統(tǒng)對組合屬性中某屬性的可操作性(子串)一定不如對列的可操作性。解決上述問題的方法也不要簡單地把組合屬性分解成列,當(dāng)這些屬性有擴充的可能時,應(yīng)單獨建立一個關(guān)系。(后面有詳例分析)4)1NF的第三層次的解釋1NF要求在一行中不能有重復(fù)組,不管是重復(fù)的列還是列中含有的重復(fù)信息都不允許。(數(shù)據(jù)庫設(shè)計)如不要把數(shù)學(xué)成績,語文成績和外語成績作為學(xué)生關(guān)系中的屬性,因為,一旦增加一門課程,該關(guān)系就必須作修改。正確的做法是把成績獨立出來,形成的關(guān)系模型為:成績(學(xué)號,學(xué)科號,成績)類似的如在學(xué)生關(guān)系中有聯(lián)系電話屬性,而每一個學(xué)生可能有不確定的電話數(shù)量,則增加屬性“電話1”、“電話2”…,同樣不符合1NF要求,正確的做法是增加關(guān)系:R(學(xué)號,電話號碼)2.2.2 2NF及對實踐的指導(dǎo)意義關(guān)系屬于第一范式并且每一個非主屬性完全依賴于碼,則稱關(guān)系屬于第二范式。由于非主屬性均函數(shù)依賴于碼,所以第二范式去除了非主屬性對碼的部分依賴。假設(shè)(x,y)為關(guān)系R(U)的碼,有非主屬性z,yz,由于y不包含碼,所以關(guān)系的行中y值必有重復(fù),yz,z值與y值同步重復(fù)。一般可以把R(U)分解成R1(U-{z})和R2(y,z),使子關(guān)系均屬于2NF,同時消除了冗余。 單據(jù)號 單據(jù)日期 品號 品名 數(shù)量
b001 2003-2-1 G01 A 10 b001 2003-2-1 G02 B 12 b002 2004-2-7 G02 B 20{單據(jù)號,品號}為關(guān)系的主碼,“單據(jù)日期”為非主屬性,“單據(jù)號”“單據(jù)日期”,即非主屬性“單據(jù)日期”部分依賴于碼,這種設(shè)計的數(shù)據(jù)冗余顯而易見。把關(guān)系分解為:單據(jù)摘要(單據(jù)號*、單據(jù)日期)和單據(jù)明細(單據(jù)號*,品號*,品名,數(shù)量),通過單據(jù)號建立關(guān)聯(lián)。例.單據(jù)的單表設(shè)計就不屬于第2范式思考練習(xí):分別完成單據(jù)的兩種設(shè)計下的下列操作的設(shè)計,并進行比較:單據(jù)明細的增加,刪除和修改單據(jù)的增加和刪除??瞻讍螕?jù)的處理 若把學(xué)生學(xué)科成績設(shè)計成(學(xué)號,姓名,學(xué)科號,學(xué)科名,成績),該關(guān)系就不符合第二范式。(“學(xué)號”,“學(xué)科號”)為該關(guān)系的主鍵(碼),非主屬性中,除“成績”完全依賴于主鍵,“姓名”和“學(xué)科名”不完全依賴于主鍵,即僅分別完全依賴于主鍵的子集“學(xué)號”和“學(xué)科號”。 要使其符合2NF,必須把上述關(guān)系分解成三個關(guān)系:學(xué)生(學(xué)號,姓名,…)、學(xué)科(學(xué)科號,學(xué)科名,…)和成績(學(xué)號,學(xué)科號,成績)。例.學(xué)生學(xué)科成績的關(guān)系模型設(shè)計2.2.3 3NF及對實踐的指導(dǎo)意義關(guān)系屬于第一范式且關(guān)系中不存在非主屬性Z傳遞函數(shù)依賴于碼,則稱關(guān)系屬于第三范式。在傳遞函數(shù)依賴XYZ的定義中隱含YX和ZY,但3NF定義中的傳遞函數(shù)依賴允許YX(YX),由此才能保證2NF3NF。假如不放寬傳遞函數(shù)依賴條件,則關(guān)系:學(xué)生選課(學(xué)號,課程號,課程名)不符合2NF但符合3NF,因為我們找不到屬性組Y,使唯一的非主屬性“課程名”傳遞函數(shù)依賴于碼(學(xué)號,課程號),即(學(xué)號,課程號)
Y課程名。而定義條件放寬后,可取Y=“課程號”。第三范式是在關(guān)系中去除非主屬性對碼的傳遞函數(shù)依賴。不屬于3NF必然存在冗余X,Y,Z為關(guān)系R(U)的屬性組,且X為碼,XYZ,由于Y+>X,所以Y必不包含碼,在關(guān)系的行中Y值必有重復(fù),而YZ,所以Z值同步重復(fù)。一般可以把R(U)分解成R1(U-{Z})和R2(Y,Z),使子關(guān)系均屬于3NF,同時消除了冗余。如在學(xué)生關(guān)系中增加所在“系”和“系主任”屬性,則該關(guān)系就不符合第三范式,因為由依賴關(guān)系“學(xué)號
系
系主任”,中間就存在了傳遞函數(shù)依賴,學(xué)號
系主任。 學(xué)號 姓名 系 系主任 001 wang 數(shù)學(xué) Li 002 Feng 數(shù)學(xué) Li 003 Cheng 數(shù)學(xué) Li 004 Huang 物理 Xu
顯然這種設(shè)計存在數(shù)據(jù)冗余正確的做法是在學(xué)生關(guān)系中增加“系編號”屬性,同時增加一個關(guān)系:系(系編號,系名,系主任)。 學(xué)號 姓名 系號 系號 系 系主任 001 wang 01 01 數(shù)學(xué) Li 002 Feng01 02 物理 Xu 003 Cheng01 004 Huang02單據(jù)中包含商品代碼外,還包括商品屬性,同樣不符合第三范式,因為存在下列傳遞函數(shù)依賴:(單據(jù)號,單據(jù)明細序號)商品代碼商品屬性。2.2.4 BCNF-擴充的第三范式關(guān)系模式R(U,F)1NF,若XY(Y
X),X必包含碼,則R(U,F)BCNF。BCNF是在3NF基礎(chǔ)上去除主屬性對碼的部分和傳遞依賴。X,Y為關(guān)系R(U)的屬性組,XY,且X不包含碼,在關(guān)系的行中X值必有重復(fù),而XY,所以Y值同步重復(fù)。一般可以把R(U)分解成R1(U-{Y})和R2(X,Y),使子關(guān)系均屬于BCNF,同時消除了冗余。屬于3NF但不屬于BCNF的例:
學(xué)生選課(學(xué)號,課程號,教師編號,成績),假設(shè)一個教師只上一門課。則:教師編號
課程號,但教師編號不是關(guān)系的碼,所以此關(guān)系不屬于BCNF。 學(xué)號 課程號 教師編號 成績
001 數(shù)據(jù)庫 Li 89 001 C語言 Zhang 76 002 數(shù)據(jù)庫 Li 99 003 數(shù)據(jù)庫 Li 87 顯然這種設(shè)計存在數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年云南職教高考醫(yī)學(xué)類專業(yè)理論考試題庫(含答案)
- 2025年畢節(jié)職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年武漢工貿(mào)職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2024喜劇綜藝年度報告
- 2025春季新學(xué)期,中小學(xué)校長在全體教師大會上發(fā)言:從電影《熊出沒重啟未來》破局解鎖新學(xué)期教育密碼
- 10kV配電站房工程的電氣設(shè)計方案與性能分析
- 幼兒園組織活動設(shè)計策劃方案五篇
- 商業(yè)街店面租賃合同范本
- 幼兒園中班冬季教育活動策劃方案五篇
- 2024年綠色能源產(chǎn)業(yè)投資合作合同
- 2025-2030年中國納米氧化鋁行業(yè)發(fā)展前景與投資戰(zhàn)略研究報告新版
- 2025年度正規(guī)離婚協(xié)議書電子版下載服務(wù)
- 2025年貴州蔬菜集團有限公司招聘筆試參考題庫含答案解析
- 2025光伏組件清洗合同
- 電力電纜工程施工組織設(shè)計
- 2024年網(wǎng)格員考試題庫完美版
- 《建筑與市政工程防水規(guī)范》解讀
- 2024年重慶市中考數(shù)學(xué)試題B卷含答案
- 醫(yī)生給病人免責(zé)協(xié)議書(2篇)
- 人教版(2024年新教材)七年級上冊英語Unit 7 Happy Birthday 單元整體教學(xué)設(shè)計(5課時)
- 口腔粘膜常見疾病
評論
0/150
提交評論