资料库的纲要设计(Database.doc_第1页
资料库的纲要设计(Database.doc_第2页
资料库的纲要设计(Database.doc_第3页
资料库的纲要设计(Database.doc_第4页
资料库的纲要设计(Database.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

資料庫的綱要設計(Database Schema Design) / 邏輯資料庫設計(Logical Database Design )正規化理論(Normalization Theory)正規化理論是資料庫系統在做系統分析、設計上的理論基礎,非常重要。正規化理論可以使資料庫避免資料重複或互相矛盾的情形,以防止在對資料庫進行新增、刪除、更新等操作可能發生的更新異常現象( update anomalies)。正規化理論的關鍵是在資料項之間的相依性。這需要對資料項彼此內部相關性有所了解。缺乏正規化將有兩個潛在的問題 : (1) 當更改某個記錄時,可能沒有更改該資料項的所有重複值(2) 當刪除某筆記錄時,而會導到失去該資料的所有相關資訊正規化理論其實是一套檔案分割的法則,在設計資料庫之初,可以將所有的資料合併成一個大檔案,然後再依正規化理論所提出的各個步驟,逐步將這個大檔案加以分割,進而形成許多獨立但彼此有關連的小檔案,並使得資料庫在使用時能更有效率、更容易維護。一般來說,將資料分別存在多個關聯表時,其平均執行效率會比放在少數幾個關聯表中時差(但並非絕對!)。這是因為關聯表切得比較細,代表在查詢資料時,系統所使用的合併(join)運算就會比較頻繁,而合併運算在關聯式資料庫中卻是一個很花時間的運算動作。正規化型式的階層架構1NFE.F.Codd2NF3NFBCNF4NF5NF1NF(First Normal Form) : 第一階正規化, 由 E. F. Codd 所提出 2NF(Second Normal Form) : 第二階正規化, 由 E. F. Codd 所提出 3NF(Third Normal Form) : 第三階正規化, 由 E. F. Codd 所提出 BCNF(Boyce/Codd Normal Form) : Boyce/Codd正規化, 由 R. F. Boyce 與E. F. Codd 所提出 4NF(Fourth Normal Form) : 第四階正規化, 由 R. Fagin 所提出 5NF(Fifth Normal Form) : 第五階正規化,亦稱為PJ/NF(Projection-Join Normal Form), 由 R. Fagin 所提出 會定出這麼多正規化型式的原因乃是 : 若某一正規化型式的關聯表,在操作時會產生異常現象,就必須將關聯表重新設計,做更進一步的正規化,以解決所面對的異常現象。資料庫的正規化共可分為五個階段,其中四、五階的正規化只有在很特殊的情況下才會用到。在實際應用上 ,大多數的資料庫設計,應用到 3NF或 BCNF的正規化就已足夠。1NF2NF3NF1NF、2NF、3NF和BCNF的理論基礎都是以功能相依性(Functional Dependency)的觀念為出發點,而4NF的理論基礎則是根植在多重值相依性(Multi-Valued Dependency)的觀念,5NF的理論是不可以存在合併相依性的觀念。功能性相依(functional dependency)功能性相依是屬性之間的一種關聯,假設A和B都是關聯R的屬性或一組屬性,如果在R中A的每個值都恰與B的一值相結合,即可稱B是功能相依於A。可以 AB表示,讀作 ”A功能性決定B” 或 “A決定B”。AB的意思是 : 如果知道A的值,且檢查關聯R的資料表,將發現在所有擁有A值的記錄中,僅有一個B的值。一階正規化每個欄位內容都只有一個值,則這個檔案即符合一階正規化的形式(1NF)如果檔案中的每個欄位內容都只有一個值,則這個檔案即符合一階正規化的形式,若欄位內容可以存放多個資料項,則稱為非正規化的檔案。非正規化檔案課程名稱學號成績資料庫系統881A001, 881A006, 881A00970, 85, 92 多媒體設計881A003, 881A015, 881A02266, 96, 88 這個檔案有兩個缺點 :1 欄位的長度無法確定 : 修課的學生人數可多可少,所以必須預留很大的空間,如此會造成空間的浪費2 增加存取資料時的負擔 : 必須先在學號欄中找出學生所在位置,才能從成績欄中取出對應的成績資料,這不但減緩資料的處理速度,而且也增加程式的複雜與出錯機會建構1NF檔案的方法對於不具1NF形式的檔案,可以將欄位內容分割成個別獨立的記錄來儲存,雖然如此會增加許多筆記錄,但是每一個欄位的長度都可以固定,而且可以利用課程名稱 + 學號作為【主鍵】,在查詢資料時會非常方便而快速課程名稱學號成績資料庫系統881A00170資料庫系統881A00685資料庫系統881A00992多媒體設計881A00366多媒體設計881A01596多媒體設計881A02288關連式資料庫最主要的精神,就是將每個檔案都看成是二維表格,因此1NF的檔案格式可說是關連資料庫最基本的要求,這樣的檔案亦稱為 flat file。欄位間的相依性在一個檔案中,如果乙欄位的值必須依賴甲欄位的存在才有意義,則可稱為乙欄相依於甲欄。例 : 成績資料檔(課程名稱,學號,成績) 成績是相依課程名稱 + 學號,如果課程名稱或學號欄不存在,成績欄內的分數值即沒有任何意義了。這個相依的特性,有一個比較正式的名稱稱為函數相依(functional dependency), 可以用甲欄乙欄來表示,其意義就是甲欄決定乙欄(甲functionally determines 乙) 或乙欄相依甲欄(乙depends on 甲)。n主鍵、候選鍵檔案內所有的欄位都相依於某個或某(組)欄位時,這個(組)織欄位便可做為主鍵(Primary key )。如果一個檔案內有多個主鍵,而只使用到其中的一個,則其他的鍵便稱為候選鍵(candidate key)。例 : 成績資料檔(課程名稱,學號,成績) 主鍵課程名稱+學號 學生資料檔案(學號,姓名,身份證號,地址,電話) 主鍵 候選鍵n部份相依性如果主鍵是由多個欄位所組成,而且檔案內有某些欄位只相依於部份的主鍵(不是整個主鍵),這種關係稱為部份相依(partial dependency)。課稱代號課程名稱學號姓名成績CS301資料庫系統881A001張三 70 CS301資料庫系統881A006李四85CS301資料庫系統881A009王二92 CS321多媒體設計881A003麻子66CS321多媒體設計881A015伍五96CS321多媒體設計881A022陸六88設課程代號 + 學號為主鍵,而各欄位的相依關係如下 : 成績資料檔(課程代號,課程名稱,學號、姓名,成績)課程代號課程名稱 : 部份相依 : 學號姓名 由於部份相依的欄位只與部份的主鍵有關,但卻必須受制於整個主鍵的影響,所以在操作時會有許多的問題,例如: u 新增 : 如果有一個新來的轉學生,但是沒有選任何課程,那他的資料將無法輸入(主鍵的各欄位是不允許有空白的)u 更改 : 當想要將課程名稱資料庫系統更改為資料管理時,必須搜尋整個資料庫及更改,非常沒效率。u 刪除 : 由於刪除是以記錄為單位,要刪除一筆記錄時,則相關的個人資料皆會一起刪除另外,部份相依也會造成資料重複出現的問題,例如CS101,資料庫系統這兩欄資料每次都必須同時出現,不但浪費儲存空間,而且也容易因疏失而造成資料不一致的錯誤。課稱代號課程名稱學號姓名成績CS301資料庫系統881A001張三 70 CS301資料庫管理881A006李四85n二階正規化凡是符合1NF而且不具有部份相依的檔案,則可稱之為二階正規化的形式,簡稱為2NF(2NF)二階正規化的目的就是要去除檔案中部份相依的關係。凡是符合1NF而且不具有部份相依的檔案,則可稱之為二階正規化的形式,簡稱為2NF。建構2NF檔案的方法要去除檔案中部份相依的關係,只需將部份相依的欄位另外獨立出一個檔案來存放即可。例: 成績資料檔 (課程代號,學號,成績)課程資料檔 (課程代號,課程名稱)學生資料檔 (學號,姓名)課稱代號學號成績CS301881A00170 CS301881A00685課稱代號課程名稱CS301資料庫系統CS301資料庫管理學號姓名881A001張三 881A006李四n與主鍵無關的相依性(transitive dependency)學號姓名導師代號教師姓名881A001張三 101曾秀才881M006李四208范進士由於每一個學生都會被指定一個導師,所以教師代號和教師姓名都相依於學號欄,但是教師姓名卻又同時相依於教師代號,而這個相依性是與主鍵完全無關的,與主鍵無關的相依性會造成和部份相依同樣的問題,例如每個教師都必須先有指導學生之後才能輸入資料。學生資料檔 (學號,姓名,導師代號,教師姓名)n三階正規化將2NF檔案內與主鍵無關的相依性除去後,檔案即符合三階正規化的形式(3NF)將2NF檔案內與主鍵無關的相依性除去後,檔案即符合三階正規化的形式,簡稱為3NF。建構3NF檔案的方法除去檔案中與主鍵無關的相依性的方法,和除去部份相依性的方法相同。例 : 學生資料檔 (學號,姓名,導師代號,教師姓名)細分成兩個資料檔學生資料檔 (學號,姓名,導師代號)教師資料檔 (教師代號,教師姓名)n更進一步的正規化對於某些較複雜的資料庫,例如一個檔案內有多個複合的候選鍵,且各候選鍵間又互相重疊的情形時,3NF仍然會在新增、刪除時發生問題,這時就必須做更進一步的正規化,以進入BCNF、4NF、5NF的形式。n完整資料庫的例子教師資料檔 (教師代號,教師姓名,身份證號,生日,到職日期,電話,地址)學生資料檔 (學號,姓名,教師代號,身份證號,生日,電話,地址)課程資料檔 (課程代號,課程名稱,學分數,課程內容,教師代號)成績資料檔 (課程代號,學號,成績)n正規化的檢討正規化固然是設計資料庫的綱要,但它只是一個基本的原則而已,在原則之外,還是可以依照系統的需求自行做一些變化,下面是兩種可以加以變化的狀況:不必要的分割正規化的資料有時不必做得非常徹底,以一個地址資料檔為例 :地址資料檔 (姓名,縣市,區,門牌號碼,郵遞區號)與主鍵無關的相依性按照正規化原理,這個檔案必須再進行分割才符合3NF的要求,但是,在實際的作業上,所要的只是查詢全部的欄位,如果將它分割後,在每次查詢時,都會要多做一道還原動作(Join 運算),這實非明智之舉。人工分割有時為了增加資料處理的效率,可以將3NF的檔案再做分割。例如一個檔案擁有非常多的欄位,而其中比較少用到的欄位,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论