① 資料庫er圖怎麼畫
如何畫資料庫ER圖
資料庫設計中重要的一環首先就是概念設計,也就是說,要從實際問題出發,排除非本質的東西,抽象出現實的數據結構之客觀規律——即畫出數據結構圖——ER圖。這是資料庫設計的重點,也是資料庫設計的難點。
那麼,如何才能正確地反映客觀現實,將ER圖畫好呢?
答案是,必須進行正確的需求分析。那麼如何進行需求分析呢?需求分析一般有兩種方法,一種是結構化分析(SA),一種是面向對象分析(OOA).通過這兩種方法的實施以後,都可以得到比較正確的ER圖。現在以下面的實際問題為例,通過結構化分析(SA)方法的應用,講述如何得到比較正確的ER圖。
(一)校務管理系統
在要建立的系統中,有以下功能:
1.管理老師的功能:錄入老師情況(姓名.地址.所教課程),老師缺課記錄(名字.時間.原因.課程)
2.管理學生的功能:錄入學生情況(姓名.所選課程.成績)
3.教務主任的功能:查詢統計1:教師情況2:學生總成績3:學生平均成績
要求:
1)用結構化方法畫出系統頂層圖、0層圖,數據字典。
2)畫出該系統的數據模型ER圖。
一、結構化分析的需求分析
1)分析實際情況
根據實際情況,我們得到一下情況:
(一)教師任課流程:
② 如何提煉數據流圖的實體,畫資料庫的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圖以消除冗餘,主要採用分析方法。除此外,還可以用規范化理論來消除冗餘,這些內容一般在資料庫原理課程中,用一種公式化的方法來消除冗餘。