關系數據庫設計方法


概念結構設計方法(概念模式)

概念模式通常采取自頂向下法(實體分析法),通過兩個步驟完成概念設計:

  1. 建立局部信息結構
  2. 將局部信息合並為全局信息結構並優化,使用 E-R 模型作為概念模型的描述工具

E-R 圖的表示方法

概念結構設計是將需求分析得到的用戶需求抽象為信息結構(概念模型)的過程,通常使用E-R圖作為建模工具具體由三部分組成:

  1. 實體型:用矩形表示,矩形內寫明實體名稱
  2. 屬性:用橢圓表示,用無向邊將其與響應實體連接起來
  3. 聯系:用菱形表示,菱形內寫明聯系的名稱,並用無向邊分別和有關實體連接,同時無向邊旁備注聯系類型,如果聯系也有屬性,則同樣使用無向邊連接。

實體間的聯系

實體間的聯系通常指不同實體型的實體集之間的聯系一般有三種情形

兩個實體型之間的聯系

設兩個實體集 A、B,兩個實體型間的聯系可分為 一對一、一對多、多對多

1> 一對一(1:1)

對於 A 中每一天實體, B 中最多有一個與之聯系,反之亦然,則 A與B 記為 1:1

2> 一對多(1:N)
對於 A 中每一個實體,B 中有N個實體與之聯系,反之,B的每一個實體,A中至多有一個實體與之對應,則記為 1:N

3> 多對多(M:N)

對於 A 中每個實體,B 中有N個實體與之聯系,反之 B 中每個實體,A 中有M個實體與之聯系,記為 (M:N)

example:

graph TB A[系] --1--> B{隸屬} B --1--> C[系主任] a[班級] --1--> b{包含} b --N--> c[學生] q[學生] --M--> w{選課} w --N--> e[課程]
兩個實體以上的實體型之間的聯系

同兩個實體之間的聯系一樣存在以上三種聯系

example:

graph TB A[課程] --1--> B{講授} B --M--> C[教師] B --N--> D[參考書] a[供應商] --M--> b{供應} b --N--> c[項目] b --P--> d[零件]
單個實體型內的聯系

同一個實體集內的各實體間也可以存在以上三種聯系

example:

graph LR A[職工] --1--> B{領導} B --N--> A

局部信息結構設計

局部信息結構設計:根據需求分析報告中標明的不同用戶視圖范圍所建立的滿足該范圍內用戶需求的信息結構。通常為五個步驟

確定局部范圍

主要依據需求分析報告中標明的用戶視圖范圍來確定局部范圍;基本准則:部門和功能相對獨立,同其他局部范圍相互影響較小,且實體個數適量。

選擇實體

在確定的局部范圍內選擇一些合適的信息單位作為局部信息結構的基本實體

選擇實體的關鍵字屬性

實體的存在依賴於關鍵字的存在。關鍵字屬性確定后,實體的非關鍵字就易於確定了。

確定實體間聯系

數據間的聯系必須在概念設計時確定。
分析實體間是否存在聯系的方法:將局部范圍內的實體逐一取出與該范圍內的其他實體試行匹配,能否找到與兩個參加試匹配的實體都有關的問題或同一任務同時使用到參與試匹配的兩個實體,存在則它們之間存在聯系。

確定實體屬性

屬性分為標識屬性和說明屬性兩類。
標識屬性作用實體的關鍵字,說明屬性作用描述實體的一般特征

確定說明屬性的基本原則: 說明屬性的存在和使用依賴於標識屬性。值為單值,不允許嵌套屬性和重復組的現象出現在實體中。

全局信息結構設計

將所有局部信息結構合並為一個全局信息結構。其必須是所有局部信息結構的全面准確的映像,形成的全局信息結構仍能實現各局部信息結構能實現的需求

合並是在假設各局部信息結構都說完全一致的前提下進行,即各局部信息結構能滿足對於的需求,其內部不存在需要合並的成分。

由於局部信息結構僅以滿足局部應用需求為目標,各個局部信息結構對同一數據對象因各自應用特征不同而可能采取不同處理,及每個開發人員對數據語義理解的差別等待,合並中會出現各種各樣的沖突,需要合理的解決沖突才能進行合理的合並產出一個合理的全局信息結構。因此合並是一個不斷發現和解決沖突的過程。

沖突的種類

屬性沖突

屬性值域的沖突,如屬性值的類型、取值范圍、取值集合的不同
屬性取值單位沖突,如某個屬性有的值用 M 為度量單位,有的用 CM 為度量單位

命名沖突

同名異義:不同意義的實體類型或聯系類型名在不同的局部應用中具有相同的名字
異名同義: 相同意義的實體類型或聯系類型名在不同局部應用中具有不同的名字

結構沖突

同一對象在一個局部E-R圖中作為實體,在另一個局部E-R途中作為屬性
同一實體在不同E-R圖中屬性個數和類型不同
實體之間的聯系在不同的E-R圖中是不同的類型

解決方法

對於屬性、命名沖突,通常采用討論、協商等行政手段解決
對於結構沖突,須通過認真分析,采用技術手段加以解決

一個好的全局E-R模型除能反映用戶功能需求之外,實體類型個數盡可能少,實體類型所含屬性盡可能少,實體間聯系無冗余。

全局E-R模型的優化可通過上述三個條件來完成

邏輯結構設計方法

邏輯結構設計是將概念模型轉換為具體的 DBMS 所支持的邏輯數據模型,即將E-R圖轉換為關系模型、對關系數據模型進行優化、設計面向用戶的外模式。

E-R圖轉換為關系模型

轉換原則

  • 一個實體型轉換為一個關系模式。實體的屬性轉換為關系的屬性,實體碼作為關系碼

  • 一個一對一(1:1)聯系轉換為一個獨立的關系模式,可與任意一端對應的關系模式合並。該聯系相連的各實體碼及聯系本身的屬性轉換為關系的屬性,每個實體碼為關系候選碼

  • 一個一對多(1:N)聯系轉換為一個獨立關系模式,可與N端對應的關系模式合並。同樣相連的各實體碼及聯系本身屬性均轉換為關系的屬性,關系的碼為N端實體的碼

  • 一個多對多(M:N)聯系轉換為一個關系模式,與該聯系相連的各實體碼及聯系本身的實現轉換為關系屬性,關系的碼為各個實體碼的組合

  • 三個及三個以上實體間的一個多元聯系轉換為一個關系模式。與該多元聯系相連的實體碼及聯系本身的屬性轉換為關系的屬性,關系碼為各個實體的組合

  • 相同碼的關系模式可合並

數據模型的優化

關系數據模型的優化通常參考關系規范化理論

優化方法

  • 確定各屬性間的函數依賴關系
  • 對於各關系模式之間的數據依賴進行極小化處理,消除冗余的聯系。
  • 判斷每個關系模式的范式,根據實際需要確定最合適的范式
  • 按需求分析階段得到的處理要求,分析模式對於應用環境是否合適,去掉是否要對某些模式進行合並或分解

設計用戶子模式

將概念模型轉換為全局邏輯模型后,可根據局部應用需求,利用視圖設計更符合局部用戶需要的用戶外模式
定義數據庫全局模式主要從系統時間效率、空間效率、以為會角度出發,用戶外模式與模式是相對獨立的,因此外模式可注重考慮用戶的習慣於方便。

  • 可通過視圖機制在設計用戶視圖時,重新定義某些屬性的別名
  • 可對不同級別的用戶定義不同的視圖,保證系統安全性
  • 簡化用戶對系統的使用。

物理設計方法

  • 建立索引,通過 DBMS 提供的有關命令實現(有靜態(頻率高才用)和動態兩種方式)

  • 建立聚集,將相關數據集中存放的物理存儲技術

Owen 的個人博客
博客園


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM