各位學長,現醜了!
最近把DATABASE又從頭學起,一面做筆記,順便分享給大家。
學長先進們如果發現錯誤,煩請不吝指教,大聲的指導我喔! :lol: :lol:
===============================================
資料庫設計初步1(初稿) - Data Module設計規劃 by BEETHOBEAR
Data Module(資料模型)是一種用來說明你的資料庫設計的圖表,主要由三種要素組成:
1. Entity(單項)
2. Attribute(屬性)
3. Relationship(關連性)
透過Normalization(正規化)的幾個Normal Form(正規式),可以來檢視設計出的Data Module架構是否正確。
First Normal Form(第一正規形式, 簡稱1NF)
--------------------------------------
當某Entity的所有Attribute都只有單一值時,我們稱該單項符合1NF。要讓某Entity符合1NF,我們必須逐一檢查該Entity的所有個案,確定每個個案的Attribute都只有單一值。若某Attibute具有多個值,它就不符合1NF
Unique Identifier(獨特識別碼)
---------------------------
任何Entity都必須要有一個Unique Identifier,我們稱此為ID Attribute(ID 屬性),它必須符合以下規則:
1. 在該Entity的所有個案中,它必須是獨一無二的。
2. 該Entity所有個案的ID Attribute,在個案的整個生命期中,都絕對不能是NULL。
3. 在個案的整個生命期中,此值絕對不能改變。
Relationship(關連性)
-------------------
關連性的每一方都有兩個元件,一個是Name(名稱),一個是Degree(程度)
Second Normal Form(第二正規形式, 簡稱2NF)
------------------------------------------
若某Entity已符合1NF的規範,而且它的所有nonidentifying attribute(非識別屬性)均相依於該單項的整體Unique Identifier我們稱該Entity符合2NF。如果有任何attribute並不完全相依於該Entity的Unique Identifier,則表示該Attribute不應該放在該Entity中,必須先將它排除,然後再找出其應該隸屬的Entity,或新增一個額外的Entity來容納該屬性。
檢驗Relationship
----------------
1. 如果在您的Data Module中出現一對一的Relationship的話(機率很小),您可能需要檢驗一下當初資料庫是如何設計的,一對一的Relationship的出現,暗示著這兩個Entity可能根本就是同一個,他們可能應該被歸納成一個Entity才對。
2. 所有多對多的Relationship都應該用下列技術來解決:
a.建立一個新Entity(或稱Junction Entity接續項),並賦予適當的名稱。如果實在無法為Junction Entity適當命名,,不妨將它所連接的兩個Entity之名稱合併起來。
b.建立新Entity與原本兩個Entity的關連性,每個原本的Entity都應該與Junction Entity產生一對多的關連性。
c.如果新Entity沒有一個明確的Unique Identifier,可以沿用原本Entity的ID Attribute,合併成一個新的Unique Identifier供新Entity使用。
Third Normal Form(第三正規式, 簡稱3NF)
-------------------------------------
若某Entity已符合2NF的規範,而且沒有非ID Attribute相依於任何其他非ID Attribute,我們稱該Entity符合3NF(第三正規形式)。要正規化相依於其他非ID Attribute的Attribute,可將相依與被相依的兩種Attribute都移到一個新Entity來達成。
--BEETHOBEAR--