實體-聯系圖(ER圖)
數據模型中包含3種相互關聯的信息:數據對象、數據對象的屬性及數據對象彼此間相互連接的關系。1.數據對象
數據對象是對軟件必須理解的復合信息的抽象。所謂符合信息是指具有一系列不同性質或屬性的事物,僅有單個值得事物(例如,寬度)不是數據對象。數據對象可以是外部實體(例如,產生或使用信息的任何事物)、事物(例如,報表)、行為(例如,打電話)、事件(例如,響警報)、角色(例如,教師、學生)、單位(例如,會計科)、地點(例如,倉庫)或結構(例如文件)等。總之,可以由一組屬性來定義的實體都可以被認為是數據對象。
數據對象彼此間是有關聯的,例如,教師“教”課程,學生“學”課程。教或學的關系表示教師和課程或課程之間的一種特定的連接。
數據對象只封裝了數據而沒有對施加于數據上的操作的引用,這是數據對象與面向對象范型中的“類”或“對象”的顯著區別。
2.屬性
屬性定義了數據對象的性質。必須把一個或多個屬性定義為“標識符”,也就是說,當人們希望找到數據對象的一個實例時,用標識屬性作為“關鍵字”(通常簡稱為“鍵”)。
應該根據對所要解決的問題的理解,來確定特定數據對象的一組合適的屬性。例如,為了開發機動車管理系統,描述汽車的屬性應該是生產廠、品牌、型號、發動機號碼、車體類型、顏色、車主姓名、住址、駕駛證號碼、生產日期及購買日期等。但是,為了開發設計汽車的CAD系統,用上述這些屬性描述汽車就不合適了,其中車主姓名、住址、駕駛證號碼、生產日期和購買日期等屬性應該刪去,而描述汽車技術指標的大量屬性應該添加進來。
3.聯系
客觀世界中的事物彼此間往往是有聯系的。例如,教師與課程漸存在“教”這種聯系,而學生與課程間則存在“學”這種聯系。
數據對象彼此之間相互連接的方式稱為聯系,也稱為關系。聯系可分為以下3種類型。
?一對一聯系(1:1)
? ? 例如,一個部門有一個經理,而每個經理只在一個部門任職,則部門與經理的聯系是一對一的。
?一對多聯系(1:N)
? ?例如,某校教師與課程之間存在一對多的聯系“教”,即每位教師可以教多門課程,但是每門課程只能由一位教師來教。
?多對多聯系(M:N)
? ? 例如,圖3.2表示學生與課程間的聯系(“學”)是多對多的,即一個學生可以學多門課程,而每門課程可以有多個學生來學。
? ?聯系也可能有屬性。例如,學生“學”某門課程所取得的成績,既不是學生的屬性也不是課程的屬性。由于“成績”既依賴于某名特定的學生又依賴于某門特定的課程,所以它是學生與課程之間的聯系“學”的屬性。?
4.實體-聯系圖的符號
? ?通常,使用實體-聯系圖來建立數據模型。可以把實體-聯系圖簡稱為ER圖,相應地可把用ER圖描繪的數據模型稱為ER模型。
圖 某校學生管理ER圖
? ?ER圖中包含了實體(即數據對象)、關系和屬性3種基本成分,通常用矩形框代表實體,用連接相關實體的菱形框表示關系,用橢圓形或圓角矩形表示實體(或關系)的屬性,并用直線把實體(或關系)與其屬性連接起來。例如,圖3.2時某學校教學管理的ER圖。? ?人們通常是用實體、聯系和屬性這3個概念來理解實現問題的,因此,ER模型比較接近人的習慣思維方式。此外,ER模型使用簡單的圖形符號表達系統分析員對問題域的理解,不熟悉計算機技術的用戶也能理解它,因此,ER模型可以作為用戶與分析員之間有效的交流工具。