數據庫概念結構設計


  • 數據模型
    • 數據模型也是一種模型,它是對現實世界數據特征的抽象
    • 數據模型是數據庫系統的核心和基礎
  • 兩類數據模型
    • 概念模型
      • 概念模型,也稱信息模型,它是按照用戶的觀點來對數據和信息建模,主要用於數據庫設計
      • 概念模型的一種表示方法:實體-聯系方法->E-R模型
      • 基本概念
        • 實體
          • 客觀存在並可相互區別的事物稱為實體
        • 屬性
          • 實體所具有的某一特性稱為屬性
          • 唯一標識實體的屬性稱為鍵
        • 實體型
          • 用實體名及其屬性名集合來抽象和刻畫同類實體,稱之為實體型,例如
        • 實體集
          • 同一類型實體的集合稱為實體集,例如全體學生就是一個實體集
        • 聯系
          • 現實世界中,事物內部以及事物之間是有聯系的,這些聯系在信息世界中反映為實體內部的聯系和實體之間的聯系,實體內部的聯系通常是指組成實體的各個屬性之間的聯系,實體之間的聯系通常是指不同實體集之間的聯系。
          • 實體之間的聯系有一對一、一對多和多對多等多種類型
      • 特點:
        1. 能夠真實地反映現實世界,包括事物和事物之間的聯系,能滿足用戶對數據的處理要求,是現實世界的一個真實模型
        2. 易於理解,可以用它和不熟悉計算機的用戶交換意見。
        3. 易於更改,當應用環境和應用要求改變時容易對概念模型修改和擴充
        4. 易於向關系、網狀、層次等各種數據模型轉換
    • 邏輯模型和物理模型
      • 邏輯模型主要包括層次模型、網狀模型、關系模型、面向對象數據模型、對象關系數據模型、半結構化數據模型
      • 物理模型是對數據最底層的抽象
    • 首先將現實世界抽象成信息世界,然后將信息世界轉換為機器世界
 
  • E-R模型
    • 實體之間的聯系
      • 兩個實體之間的聯系
        1. 一對一聯系(1:1)
          • 如果對於實體集A中的每一個實體,實體集B中至多有一個(也可以沒有)實體與之聯系,反之亦然,則稱實體集A與實體集B具有一對一聯系,記為1:1
        2. 一對多聯系(1:n)
          • 如果對於實體集A的每一個實體,實體集B中有n個實體(n>=0)與之聯系,反之,對於實體集B中的每一個實體,實體集A中至多只有一個實體與之聯系,則稱實體集A與實體集B有一對多聯系,記為1:n
        3. 多對多聯系(m:n)
    • 如果對於實體集A中的每一個實體,實體集B中有n個實體(n>=0)與之聯系,反之,對於實體集B中的每一個實體,實體集A中也有m個實體(m>=0)與之聯系,則稱實體集A與實體集B具有多對多聯系,即為m:n
      • 兩個以上實體之間的聯系
        • 一般地,兩個以上的實體型之間也存在着一對一,一對多和多對多聯系
      • 單個實體型內的聯系
        • 同一個實體集內的各個實體之間也可以存在一對一、一對多和多對多的聯系。
        • 一般地,把參與聯系的實體型的數目成為聯系的度。兩個實體型之間的聯系度為2,也成為二元聯系,三個實體型之間的聯系讀為3,也稱為3元聯系,N個實體型之間的聯系度為N,也稱N元聯系
    • E-R圖
      • E-R圖提供了表示實體型、屬性和聯系的方法
        1. 實體型用矩形表示,矩形框內寫明實體名
        2. 屬性用橢圓表示
        3. 聯系用菱形表示
    • 擴展E-R模型
      • ISA聯系
        • 用E-R方法構建一個項目的模型時,經常會遇到某些實體型是某個實體型的子類型,例如,研究生和本科生是學生的子類型,學生是父類型。這種父類和子類聯系稱為ISA聯系,表示“is a”的語義
        • ISA聯系一個重要的性質是子類繼承了父類的所有屬性,當然,子類也可以有自己的屬性。
        • 分類方法
          1. 分類屬性
            • 分局分類屬性的值把父實體型的實體分派到子實體型中
          2. 不相交約束和可重疊約束
            • 不相交約束描述父類中的一個實體不能同時屬於多個子類的實體集,即一個父類中的實體最多屬於一個子類實體集。
            • 如果父類中的一個實體能同時屬於多個子類中的實體集,則稱為可重疊約束
          3. 完備性約束
            • 完備性約束描述父類中的一個實體是否必須是一個子類的實體,如果是,則叫做完全特化,否則叫部分特化
            • 完全特化用父類到子類的雙線連接表示,單線則表示部分特化
      • 基數約束
        • 基數約束是實體之間一對一、一對多和多對多聯系的細化,參與聯系的每個實體型用基數約束來說明實體型中的任何一個實體可以在聯系中出現最少次數
        • 基數約束用一個數對min.max表示,0<=min<=max。
        • min=1的約束叫做強制參與約束,即被施加基數約束的實體型中的每個實體都要參與聯系
        • min=0的約束叫做非強制參與約束,被施加基數約束的實體型中的實體可以出現在聯系中,也可以不出現在聯系中
      • part of 聯系
        • Part of 聯系即部分聯系,它表明某個實體型是另外一個實體型的一部分
        • 分類
          • 非獨占part of聯系:整體實體如果被破壞,部分實體仍然可以獨立存在
          • 獨占part of 聯系:整體如果被破壞,部分實體不能存在,在E-R圖中用弱實體;類型和識別聯系來表示獨占聯系,如果一個實體型的存在依賴於其他實體,則這個實體型叫做弱實體型,否則叫做強實體型
 
 
概念結構設計
  • 實體與屬性的划分原則
    • 為了簡化E-R圖的處置,顯示世界的事務能作為屬性對待的話盡量作為屬性
    • 什么條件的事物可以作為屬性對待呢? 准則如下
      1. 作為屬性,不能再具有需要描述的性質。屬性必須是不可分割的數據項,不能包含其他屬性
      2. 屬性不能與其他實體有聯系。E-R圖中所表示的聯系是實體之間的聯系
  • E-R圖的集成
    • 在開發一個大型信息系統時,最經常采用的策略是自頂向下地進行需求分析,然后再自底向上的設計概念結構
    • 首先設計各子系統的分E-R圖,然后將它們集成起來得到全局E-R圖
    • E-R圖的集成一般需要分兩步:合並、修改和重構
      • 合並E-R圖,生成初步E-R圖
        • 各個子系統的E-R圖之間的沖突主要有三類:屬性沖突、命名沖突、結構沖突合並
          1. 屬性沖突
            1. 屬性域沖突
            2. 屬性取值單位沖突
          2. 命名沖突
            1. 同名異義
            2. 異名同義
          3. 結構沖突
            1. 同一個對象在不同應用中具有不同的抽象
              • 解決方法:把屬性變換為實體或把實體變換為屬性,使同一個對象具有相同的抽象
            2. 同一實體在不同子系統的E-R圖中所包含的屬性個數和屬性排列次序不完全相同
              • 這是很常見的一類沖突,原始是不同的局部應用關心的是該實體的不同側面
              • 解決方法是使該實體的屬性取各個子系統的E-R圖中的屬性的並集,再適當調整順序
            3. 實體間的聯系在不同的E-R圖中為不同的類型
      • 消除不必要的冗余
        • 在初步E-R圖中可能存在一些冗余的數據和實體之間冗余的聯系
          • 所謂冗余的數據是指可由基本數據導出的數據,冗余的聯系是指可由其他聯系導出的聯系
          • 消除了冗余后的初步E-R圖稱為基本E-R圖
        • 消除冗余采用分析方法,即以數據字典和數據流圖為依據,根據數據字典中關於數據項之間的邏輯關系的說明來消除冗余
        • 也可以用規范化理論來消除冗余
          1. 確定分R-R圖實體之間的數據依賴
          2. 求Fl的最小覆蓋Gl,差集為D=Fl-Gl
            • 冗余的聯系一定在D中,而D中的聯系不一定是冗余的
            • 當實體之間存在多種聯系時,要將實體之間的聯系在形式上加以區分
 


免責聲明!

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



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