python中e-r图_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圖以消除冗余,主要采用分析方法。除此外,還可以用規范化理論來消除冗余。
作者: Dirichlet 發表于 2010-11-24 14:07 原文鏈接
總結
以上是生活随笔為你收集整理的python中e-r图_E-R图基本步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汉字和utf编码转换
- 下一篇: 连号人民币值钱吗