數據庫設計-邏輯設計


數據庫設計-邏輯設計

概念結構設計:

定義:將需求分析得到的用戶需求抽象成信息結構,即概念模型。

概念模型:通常的描述工具是E-R模型圖。

數據庫概念模型的設計方法:

 

概念設計的步驟:

  1. 進行數據抽象,設計局部概念模式
    • 分解法:將一個大的需求分解成一個個的小的需求,具體到單個用戶的基本需求,為每個用戶或用戶組建立一個對應的局部E-R模型
    • 常用抽象方法:
      • 聚集:將若干對象和它們之間的聯系組合成一個新的對象。
        • 例如:學生屬性信息(學號,姓名,性別)聚集成一個學生實體。
      • 概括:將一組具有某些共同特征的對象合並成更高層面的對象。
        • 例如:對不同學生(本科生,研究生)統一概括出共同特征,並抽象成學生實體。
  2. 將局部概念模式綜合成全局概念模式
    • 將各個局部概念模式合並成一個全局概念模式。
    • 解決冗余問題
    • 解決對象定義不一致問題:同名異意,異名同意。

概念設計中涉及到的專有名詞:

      • 關系:一個關系對應一張表。
      • 元組:一個元組對應表中的一行記錄。
      • 屬性:一個屬性對應表中的一列記錄。
      • 主屬性:候選碼中出現的屬性。
      • 非主屬性:沒有在任何候選碼中出現。
      • 候選碼:可以唯一標識元組的屬性組。
      • 主碼:候選碼之中的一個。
      • 域:屬性的取值范圍。
      • 分量:元組中的一個屬性值。

ER圖圖例說明:

      • 矩形:表示實體集。
      • 菱形:聯系集。
      • 橢圓:實體的屬性。
      • 線段:實體與屬性之間的聯系。

局部概念結構設計:

  1. 選擇局部應用:根據系統具體情況,在多層的數據流圖中選擇一個適當層次的數據流圖,從該數據流圖出發,設計局部E-R模型。
  2. 逐一設計局部E-R模型:參照數據字典和數據流圖,確定每個局部應用應該包含那些實體,實體有包含那些屬性,以及實體之間的聯系和類型。
    1. 實體的定義:現實世界中事物。
      • 例如:學生
    2. 屬性的定義:描述實體的性質。
      • 例如:學號,姓名,性別
    3. 聯系的定義:實體之間的關系:一對一;一對多;多對多。
      • 例如:一個學生對應一個班級,一個班級對應多個學生,多個老師對應多個班級。

全局概念結構設計:

  1. 合並局部E-R模型,生成初步的全局E-R圖。

合並原則:

  1. 進行兩兩合並。
  2. 先合並那些與現實世界有聯系的局部結構。
  3. 合並從公共實體類型開始,最后在加入獨立的局部結構。

2.E-R圖中沖突:

  1. 屬性沖突:
    1. 屬性值域沖突:屬性值的類型,取值范圍,取值集合不同。
      • 例如:學生學號,有的為數值型,有的為字符型。
    2. 屬性的取值單位沖突。
      • 例如:學生身高,有的以m為單位,有的以cm為單位。
  2. 命名沖突:
    1. 同名異義:同一個名字的對象在不同的實體里具有不同的含義。
      • 例如:學校A中以學生為單位,學校B中以班級為單位,
    2. 異名同義:同一個含義的對象在不同的是實體中具有不同的名稱。
      • 例如:有的學生把計算機教室稱為機房,有的學生把計算機教室稱為實驗室。
  3. 結構沖突:
    1. 同一對象在不同應用中有不同的抽象,可能為實體,也可能為屬性。
      • 例如:學生可以為實體,也可以是班級實體的一個屬性。
    2. 同一對象在不同應用中屬性組成不同。
      • 例如:學生在班級中的所擁有的屬性,和學生在檔案中的所擁有的屬性個數不一樣。
    3. 同一聯系在不同應用中有不同的類型。
      • 在學校,學生和老師是多對一的關系;在家教中,學生和老師是一對一的關系。

邏輯結構設計階段:

概念結構設計階段得到的E-R模型是獨立與任何一種數據模型的信息結構,是一個與具體DBMS無關的設計概念。

任務:將概念結構設計的E-R模型轉換成與選用具體機器上的DBMS所支持的數據模型相符合的邏輯結構。

步驟:

  1. 將概念結構轉換成為一般的關系模型。
  2. 將轉換來的關系模型想特定的DBMS支持下的數據模型轉換。
  3. 依據應用的需求和具體的DBMS的特點進行調整和完善。

E-R圖向關系模型的轉換:

    1. 實體類型的轉換。
      • 每個實體類型->關系模式,實體的屬性集為關系的屬性,實體的標識符便是關系的碼。
    2. 聯系類型的轉換。
      1. 1:1聯系:在任意一個關系的屬性中加入另一個關系的碼和聯系類型的屬性,通常兩個實體可以直接合並成一個實體。
      2. 1:N聯系:在N端關系的屬性中加入1端關系的碼和聯系類型的屬性。
      3. M:N聯系:兩端關系的碼加上聯系類型的屬性,碼為兩端碼的組合。

網上商城數據庫ER圖:

 

以上僅為本人學習過程中的知識總結,若有錯誤,還請諸位不吝賜教。

 


免責聲明!

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



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