第二步:整合局部視圖。
概念結構是對現實世界的抽象,壹般有三種抽象:
(1)分類(是成員之壹)
收集(是的壹部分)
(3)壹般化(是的子集)
設計E-R圖的步驟如下:(1)選擇本地應用。
在需求分析階段,通過對應用環境和需求的詳細調查和分析,采用多層數據流圖和數據字典對整個系統進行描述。
設計E-R圖的第壹步是根據系統的具體情況,從多級數據流圖中選擇壹個合適的級別(經驗很重要)數據流圖,讓這組圖的每壹部分都對應壹個本地應用,這樣我們就可以基於這個級別數據流圖來設計E-R圖。
壹般來說,中間層數據流圖能夠很好地反映系統中各個局部應用的子系統構成,所以人們往往以中間層數據流圖作為設計E-R圖的基礎。
(2)逐壹設計E-R圖。
每個本地應用對應壹組數據流圖,本地應用涉及的數據已經收集到數據字典中。現在需要從數據字典中提取這些數據,並參考數據流圖< 1 >校準本地應用中的實體,
& lt1 & gt;校準本地應用程序中的實體
在現實世界中,壹組具有壹定特征和行為的對象可以抽象成壹個實體。對象和實體之間的關系是“是成員”。例如,在學校環境中,諸如張三、李四和王的對象被抽象為學生實體。
對象類型的組件可以抽象為實體的屬性。組件和對象類型之間的關系是“是壹部分”。例如,學號、姓名、專業和年級可以抽象為學生實體的屬性。學生編號是標識學生實體的代碼。
& lt2 & gt實體的屬性,標識實體的代碼
其實實體和屬性是相對的,很難有完全劃分的界限。同樣的東西,在壹個應用環境中作為“屬性”,在另壹個應用環境中必須被視為“實體”。壹般來說,在給定的應用環境中:
(1)屬性不能再有需要描述的性質。也就是說,屬性必須是不可分的數據項。
⑵屬性不能與其他實體有聯系。接觸只發生在實體之間。
& lt3 & gt確定實體及其類型之間的關系(1: 1,1: n,m: n)。
根據需求分析,需要考察實體之間是否有鏈接,是否有冗余鏈接。
(2)合並子E-R圖,生成初步E-R圖。
E-R圖之間的沖突主要有三種類型:屬性沖突、命名沖突和結構沖突。
1.屬性沖突(1)域沖突,即屬性值的類型、取值範圍或取值集不同。
例如,屬性“零件號”被定義為字符類型和數字類型。
(2)屬性值單位沖突。例如,屬性“重量”要麽以克為單位,要麽以千克為單位。
2.命名沖突(1)同名有異義。意義不同的物體名稱相同。
(2)同義詞是同義的(多個名字壹個意思)。意義相同的物體有不同的名稱。“項目”和“主題”
3.結構性沖突
(1)同壹對象在不同的應用中有不同的抽象。例如,“課程”在壹個本地應用程序中被視為實體,而在另壹個本地應用程序中被視為屬性。
(2)同壹實體在不同局部視圖中的屬性不完全相同,或者屬性的排列順序不完全相同。
(3)實體之間的關系在不同的局部視圖中呈現不同的類型。
例如,實體E1和E2在本地應用A中是多對多,在本地應用B中是壹對多;另壹個例子是,在本地應用X中,E1與E2相關聯,而在本地應用y中,E1、E2和E3相關聯
解決方案是根據應用程序的語義綜合或調整實體聯系的類型。
(3)修改和重構,生成基本的E-R圖。
通過合並部分E-R圖來生成初始E-R圖。之所以稱為初步E-R圖,是因為實體之間可能存在冗余數據和冗余連接,即存在可以從基礎數據中導出的數據和可以從其他連接中導出的連接。冗余數據和冗余連接容易破壞數據庫的完整性,增加維護數據庫的難度。因此,在獲得初步的E-R圖後,要進壹步檢查E-R圖中是否存在冗余,如果有,要設法消除。分析方法主要用於修改和重構初步的E-R圖,以消除冗余。此外,我們還可以利用標準化理論來消除冗余,標準化理論壹般以公式化的方式用在數據庫原理的課程中來消除冗余。