如何畫E-R圖

(一)、以自底向上設計概念結構的方法爲例,它通常分爲兩步:

第一步:首先要根據需求分析的結果(數據流圖、數據字典等)對現實世界的數據進行抽象,設計各個局部視圖即分E-R圖。

第二步:集成局部視圖。概念結構是對現實世界的一種抽象,一般有三種抽象:

 ⑴分類 ( is member of )

⑵聚集 ( is part of)

⑶概括 (is subset of )

設計分E-R圖的步驟是:

⑴選擇局部應用在需求分析階段,通過對應用環境和要求進行詳盡的調查分析,用多層數據流圖和數據字典描述了整個系統。設計分E-R圖的第一步,就是要根據系統的具體情況,在多層的數據流圖中選擇一個適當層次的(經驗很重要)數據流圖,讓這組圖中每一部分對應一個局部應用,我們即可以以這一層次的數據流圖爲出發點,設計分E-R圖。一般而言,中層的數據流圖能較好地反映系統中各局部應用的子系統組成,因此人們往往以中層數據流圖作爲設計分E-R圖的依據

⑵逐一設計分E-R圖每個局部應用都對應了一組數據流圖,局部應用涉及的數據都已經收集在數據字典中了。現在就是要將這些數據從數據字典中抽取出來,參照數據流圖,

<1>標定局部應用中的實體,

<2>實體的屬性、標識實體的碼,

<3>確定實體之間的聯繫及其類型(1:1、1:n、m:n)。

<1>標定局部應用中的實體現實世界中一組具有某些共同特性和行爲的對象就可以抽象爲一個實體。對象和實體之間是"is member of"的關係。例如在學校環境中,可以把張三、李四、王五等對象抽象爲學生實體。對象類型的組成成分可以抽象爲實體的屬性。組成成分與對象類型之間是"is part of"的關係。例如學號、姓名、專業、年級等可以抽象爲學生實體的屬性。其中學號爲標識學生實體的碼。

<2>實體的屬性、標識實體的碼實際上實體與屬性是相對而言的,很難有截然劃分的界限。同一事物,在一種應用環境中作爲"屬性",在另一種應用環境中就必須作爲"實體"。一般說來,在給定的應用環境中:⑴屬性不能再具有需要描述的性質。即屬性必須是不可分的數據項。⑵屬性不能與其他實體具有聯繫。聯繫只發生在實體之間。

<3>確定實體之間的聯繫及其類型(1:1、 1:n、 m:n)。根據需求分析,要考察實體之間是否存在聯繫,有無多餘聯繫

 

(二)、 合併分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三者之間有聯繫。解決方法是根據應用的語義對實體聯繫的類型進行綜合或調整。

(三)、修改與重構,生成基本E-R圖分E-R圖經過合併生成的是初步E-R圖。之所以稱其爲初步E-R圖,是因爲其中可能存在冗餘的數據和冗餘的實體間聯繫,即存在可由基本數據導出的數據和可由其他聯繫導出的聯繫。冗餘數據和冗餘聯繫容易破壞數據庫的完整性,給數據庫維護增加困難,因此得到初步E-R圖後,還應當進一步檢查E-R圖中是否存在冗餘,如果存在,應設法予以消除。修改、重構初步E-R圖以消除冗餘,主要採用分析方法。除此外,還可以用規範化理論來消除冗餘。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章