ER圖設計的原則、方法與步驟


E-R的設計原則

  • 盡量減小實體集,能作為屬性時不要作為實體集。
  • “屬性”不能再具有需要描述的性質。“屬性”必須是不可分割的數據項,不能包括其他屬性。
  • “屬性”不能與其他實體具有聯系。在E-R中所有的聯系必須是實體間的聯系,而不能有屬性與實體之間的聯系。
  • 針對特定用戶的應用,確定實體、屬性和實體間的聯系,設計該用戶視圖的局部E-R圖。
  • 綜合局部E-R圖,產生出總體E-R圖。在綜合過程中,同名實體只能出現一次,並去掉不必要的聯系,以便消除冗余。一般來說,從總體E-R圖必須能導出原來的所有局部視圖,包括實體、屬性和聯系。

E-R圖設計的方法

​ 在設計E-R圖時,一般使用先局部后全局的方法。

  • 選擇局部應用:根據某個系統的具體情況,在多層的數據流圖中選擇一個適當層次的數據流圖作為設計分E-R圖的出發點 。
  • 逐一設計分E-R圖:將數據字典中的數據抽取出來,參照數據流圖,設計出E-R圖,再作必要的調整。
  • 調整原則:為簡化圖的處置,現實世界中的事物能作為屬性對待的,盡量作為屬性對待。作為“屬性”,不能再具有描述的性質,也不能與其他實體具有聯系。

E-R圖的設計步驟

  • 設計分E-R圖

    • 首先選擇局部應用。根據某個系統的具體情況,在多層的DFD中選擇一個適當層次的DFD,作為設計分E-R圖的出發點。讓這組圖中每一部分對應一個局部應用。由於高層的DFD只能反映系統的概貌,而中層的DFD能較好地反映系統中各局部應用的子系統組成,因此人們往往以中層DFD作為設計分E-R圖的依據。

    • 選擇好局部應用之后,就要對每個局部應用逐一設計分E-R圖。在前面選好的某一層次的DFD中,每個局部應用都對應了一組DFD,局部應用涉及的數據都已經收集在數據字典中了。現在就是要將這些數據從數據字典中抽取出來,參照DFD,標定局部應用中的實體、實體的屬性、標識實體的主碼,確定實體之間的聯系及其類型。

    • 在實際E-R圖設計時,實體與屬性之間並不存在形式上可以截然划分的界限,現實世界的事物能作為屬性對待的盡量作為屬性對待,從自然划分的內容出發定義雛形的E-R圖,再進行必要的調整。例如,圖2-17所示的是一個有屬性上升為用實體集表示的實例。

  • 分E-R圖的集成
    各子系統的分E-R圖設計好以后,下一步就是要將所有的分E-R圖集成一個系統的總E-R圖。一般說來,分E-R圖的合成有兩種方法:第一種方法是多個分E-R圖一次集成;第二種方法是逐步集成,用累加的方式一次集成兩個分E-R圖。第一種方法比較復雜,做起來難度較大。第二種方法每次只集成兩個分E-R圖,可以降低復雜度。無論采用哪種方式,每次集成分E-R圖時都需要分兩步走:

    • 將各分E-R圖合並起來生成初步E-R圖

      合並時注意解決各分E-R圖之間的沖突。由於各個局部應用所面向的問題是不同的,而且通常是由不同的設計人員進行不同局部的視圖設計,這樣就會導致各個分E-R圖之間必定會存在許多不一致的地方,即產生沖突問題。由於各個分E-R圖存在沖突,所以不能簡單地把它們畫到一起,必須先消除各個分E-R圖之間的不一致,形成一個能被全系統所有用戶共同理解和接受的統一的概念模型,再進行合並。合理消除各個分E-R圖的沖突是進行合並的主要工作和關鍵所在。

      • 分E-R圖之間的沖突主要包括屬性沖突、屬性取值單位沖突和命名沖突三種。
      • 屬性沖突 屬性沖突主要有兩種情況:
        • 屬性域沖突,即屬性值的類型、取值范圍或取值集合不同。例如,對於零件號屬性,不同的部門可能會采用不同的編碼形式,而且定義的類型又各不相同,有的定義為整型,有的則定義為字符型,這都需要各個部門之間協商解決。
        • 屬性取值單位沖突。例如,零件的重量,不同的部門可能分別用公斤、斤或千克來表示,結果會給數據統計造成錯誤。
      • 命名沖突 命名沖突有兩種:
        • 同名異義沖突,即不同意義的對象在不同的局部應用中具有相同的名字。
        • 異名同義沖突,即意義相同的對象在不同的局部應用中有不同的名字。
      • 結構沖突 結構沖突有3種情況:
        • 同一對象在不同的應用中具有不同的抽象。例如,職工在某一局部應用中被當作實體對待,而在另一局部應用中被當作屬性對待,這樣就會產生抽象沖突問題。
        • 同一實體在不同分E-R圖中的屬性組成不一致,即所包含的屬性個數和屬性排列次序不完全相同。這類沖突是由於不同的局部應用所關心的實體的不同側面而造成的。解決這類沖突的方法是使該實體的屬性取各個分E-R圖中屬性的並集,再適當調整屬性的次序,使之兼顧到各種應用。
        • 實體之間的聯系在不同的分E-R圖中呈現不同的類型。此類沖突解決方法是根據應用的語義對實體聯系的類型進行綜合或調整。

  • 消除不必要的冗余,生成基本E-R圖。

    • 在初步E-R圖中可能存在冗余的數據和實體間冗余的聯系。所謂冗余數據是指可由基本數據導出的數據。所謂冗余的聯系是可由其他聯系導出的聯系。冗余的存在容易破壞數據庫的完整性,給數據庫維護增加困難,應當加以消除。消除了冗余的初步E-R圖就稱為基本E-R圖。

    • 常見的消除冗余方法有分析方法和規范化理論方法。

    • 用分析方法消除冗余 分析方法是消除冗余的主要方法。分析方法消除冗余是以數據字典和DFD為依據,根據數據字典中關於數據項之間邏輯關系的說明來消除冗余的。

      • 在實際應用中,並不是要將所有的冗余數據與冗余聯系都消除。有時為了提高數據查詢效率、減少數據存取次數,在數據庫中就設計了一些數據冗余或聯系冗余。因而,在設計數據庫結構時,冗余數據的消除或存在要根據用戶的整體需要來確定。如果希望存在某些冗余,則應在數據字典的數據關聯中進行說明,並把保持冗余數據的一致作為完整性約束條件。

  • 用規范化理論消除冗余 基於第9章介紹的規范化理論消除冗余。


免責聲明!

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



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