[1031 - 資料庫管理概論] Chapter 4 Database design
- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
Course Point
- 資料庫建置的第一個步驟為概念資料塑模:產生概念資料模型(E-R model),了解使用者的需求。
- 邏輯資料庫設計 : 將概念資料模型(如E-R model)轉為特定資料庫技術的邏輯資料模型,為資料庫建置的第二個步驟。由於index table 中的資料已經被排序過了,因此可以採用「二元搜尋法」,排序速度以及搜尋速度會變快。
由Schema (綱要) 來描述資料庫的結構。(Table name, Attribute, Primary key, Foreign key)。 - 關聯式資料庫重要的觀念 (Rlational data modeling)
- Data structure (資料庫的結構) : Data are organized in the form of table, with rows and column.Relation ≡ Table : 為有名字的二維資料表格,其包含有名字的欄位(屬性)、且任意個數的紀錄,為關聯式資料庫的唯一一種資料結構。
由schema描述。
結構包含Relation的名字、屬性、PK、FK。
使用者看到的都是表格,利用表格來呈現資料,將表格視為集合來進行處理。
當要操作資料時,便是針對表格去執行以集合理論為基礎的數學運算,而其執行結果還是表格。 - Data manipulation(如何處理資料) ex. 使用SQL language.
- Data integrity(資料的正確性)。
- Primary key : 能夠為一識別一筆紀錄,以底線表示。
- Composite key : primary key由一個以上的屬性組成則稱Composite key。
- Foreign key : 是A relation的attrinute,同時也是B relation 的 primary key,以虛線(dashed underline)表示。
- E-R Model 可有多值屬性,但Relational data model 不允許。
- 每個Database 的 Table name 為 unique name。
- 每個attribute在同個Table的名字都為 unique name。
- column or row的順序不重要 (不影響整筆記錄的意義)。
(p.212補充) - Candidate key (候選鍵) : 可以識別一筆row的資料,但若為複合鍵的情況下,Candidate key的所有屬性都不能是redundancy (也就是不能有屬性是刪除後對於Candidate key識別一筆row資料沒有影響);Candidate key 一定是 Determinant,但Determinant不一定是Candidate key。
- Data structure (資料庫的結構) : Data are organized in the form of table, with rows and column.
- Constraint (限制)
- Integrity constraint (正確性限制) : 限制 relational data model 能接受的值或動作。
- Domain constraint : 限制可接受值之範圍。
- Entity integrity : primary key cann’t be NULL.
- Referential integrity : foreign key must be a primary key in another table.
- 將 E-R Diagrams 轉為 Relational data schema。
(1) 一對一:將弱式Entity的Attribute新增到其中一個Relation要用最有效率的那個(通常是放到最小基數最小的那個,盡量不要出現有欄位會有NULL的情況),不產生新Relationship。
(2) 一對多:將其中一個Relationship 的PK放到另一個Relationship當FK。
(3) 多對多:產生新Relationship,包含兩個PK當作CK,並包含弱式Entity的Attribute。
- 多元關係(父子型態):
(1 )將Associative作為一個Relationship,並將可以為一識別屬性的屬性加上其他Relationship的PK,成為CK。(2) 將所有弱式Entity加上父Entity的PK成為新的Relationship。
- Unary relationship(只有一個Entity type)的Relationship的情況下:
(1) 一對一 與 一對多 : 不新增其他relationship,但可能會新增屬性。
> Foreign key 和Primaray key 的屬性可以相同,但名稱是不同的。
(2) 多對多:會新增一個Reationship並且包含弱式Entity的Attribute,而與原來Ralationship而來的PK加上多加的新PK組成的CK,多加的PK需思考一下為何。(下圖新增的PK為component item,概念為一個Item可能為一個item或多個item組成)
- Normalization : 將有問題的Table拆成沒問題的多個小表格;將Determinant變成PK或CK。正規化後,所有的功能相依都不可以消失!
(1) First normal form (1NF) : 不可以有空值、多值屬性,一定要有PK且不能重複出現。
(2) Second normal form (2NF) : 只有PK能決定唯一識別一個值(把與主鍵部分功能相依的部分獨立為一個Table)。
> Functional dependency(功能相依) : A→B (B相依於A),A能夠識別唯一一個B值,B值由A決定,也就是知道A值就能知道B值。
> Partial functional dependencies(部分功能相依):不是所有PK的屬性決定唯一值。
(3) Third normal form (3NF) : 將非PK值卻能決定唯一值之Determinant (決定者)拆出去成為另一個table的PK(不能有Transitive dependency 間接功能相依)。
- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
留言
張貼留言