官术网_书友最值得收藏!

1.4 數據模型

1.4.1 數據模型的概念

模型是現實世界特征的模擬與抽象,比如日常生活中所見到的汽車模型、航空模型等都是具體的模型,人們見到這些模型就聯想到真實的事物。數據模型(Data Model)也是一種模型,它是數據特征的抽象。數據模型是數據庫系統的核心與基礎,它從抽象層次上描述了系統的靜態特征、動態行為和約束條件,為數據庫系統的信息表示與操作提供了一個抽象的框架。數據模型所描述的內容有三部分:數據結構、數據操作和數據的約束條件。

(1)數據結構:主要描述數據的類型、內容、性質以及數據間的聯系等,是對系統靜態特征的描述。數據結構是數據模型的基礎,數據操作和約束都是建立在數據結構上的,不同的數據結構具有不同的操作和約束。通常按照數據結構的類型來命名數據模型,例如層次結構、網狀結構和關系結構的數據模型分別被命名為層次模型、網狀模型和關系模型。

(2)數據操作:主要描述在相應的數據結構上進行的操作類型和操作方式,是對系統動態特征的描述。

(3)數據的約束條件:主要描述數據結構內數據間的語法、詞義聯系、制約和依存關系,以及數據動態變化的規則,以保證數據的正確、有效和相容。它是一組完整性規則的集合,用以限定符合數據模型的數據庫狀態及其變化。

1.4.2 數據模型的分類

現有的數據庫系統都是建立在某種數據模型之上的。數據模型應滿足三個要求:一是能比較真實地模擬現實世界,二是容易讓人理解,三是在計算機中比較容易實現。一種數據模型要同時滿足這三個要求會比較困難,因此在數據庫系統中針對不同的使用對象和應用目的會分別采用不同的數據模型。不同的數據模型實際上也是提供給我們模型化數據和信息的不同工具。根據應用的不同目的,目前廣泛使用的數據模型有兩類,它們分別屬于兩個不同的層次。

(1)概念模型:也稱為信息模型,是一種面向用戶、面向客觀世界的模型,主要用來描述世界的概念化結構。它按用戶的觀點對數據和信息建模,幫助數據庫的設計人員在設計的初始階段,擺脫計算機系統及數據庫管理系統的具體技術問題,集中精力分析數據以及數據之間的聯系等,與具體的數據庫管理系統無關。概念模型是現實世界到信息世界的第一次抽象,用于信息世界的建模,是數據庫設計人員的有力工具,也是數據庫設計人員與用戶之間交流的語言。

(2)數據模型:它直接面向數據庫的邏輯結構,是對現實世界的第二次抽象。它按計算機系統的觀點對數據建模,主要用于數據庫管理系統的實現。目前最常用的數據模型主要包括層次模型、網狀模型、關系模型。

現實世界轉換為計算機世界的過程如圖1-5所示。

圖1-5 現實世界轉換為計算機世界的過程

1.4.3 概念模型的表示方法

1. 信息世界的基本概念

(1)實體(Entity):是指客觀世界中存在并且可以相互區分的事物,可以是具體的人、事、物等實際對象,也可以是抽象的概念和聯系。一個學生、一個部門、一門課、一次選課、部門與職工的關系等都是實體。

(2)屬性(Attribute):是指實體所具有的某一特性,一個實體包含若干屬性。例如,職工實體可以由職工號、姓名、性別、年齡、學歷、部門等屬性描述。(1001,張三豐,男,33,研究生,技術部)這個屬性組合用來描述一個職工實體。

(3)碼(Key):是指唯一標識實體的屬性或屬性集。例如,職工號是職工實體的碼。

(4)域(Domain):是指屬性的取值范圍。例如,職工號的域為4位整數。

(5)實體型(Entity Type):具有相同屬性的實體必然具有共同的特征和性質,可以用實體名及其屬性名集合來抽象刻畫這些實體。例如,職工(職工號,姓名,性別,年齡,學歷,部門)就是一個實體型。

(6)實體集(Entity Set):同類實體的集合稱為實體集。例如,全體職工就是一個實體集。

(7)聯系(Relationship):在客觀世界中,事物內部及事物之間是普遍存在聯系的,這些聯系在信息世界中表現為實體(型)內部的聯系和實體(型)之間的聯系。實體內部的聯系通常是指組成實體的各屬性之間的聯系。實體之間的聯系通常是指不同實體型之間的聯系。

2. 概念模型的表示方法

概念模型的表示方法有很多,最常用的表示方法為實體-聯系方法(Entity-Relationship Approach),簡稱E-R方法,該方法使用E-R圖(Entity-Relationship Diagram,實體-聯系圖)來描述現實世界的概念模型。E-R方法也稱為E-R模型(Entity-Relationship Model)。

(1)實體型用矩形表示,在矩形框內寫實體名。

(2)屬性用橢圓形表示,在橢圓框內寫屬性名,并用無向邊將其與相應的實體連接起來。例如:學生實體具有學號、姓名、性別、年齡、班級等屬性。用E-R圖表示如圖1-6所示。

圖1-6 學生實體及屬性

(3)聯系用菱形表示,在菱形框內寫聯系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁邊標注聯系的類型。兩個實體型之間的聯系通常有3種。

一對一聯系(1:1):在該聯系中,對于實體集A中的每一個實體,實體集B中至多有一個(也可以沒有)實體與之聯系,反之亦然,記為1:1。其聯系如圖1-7所示。例如,一個職工只能有一個工作證,一個工作證只能屬于一個職工,則職工和職工證之間就是一對一的聯系。

一對多聯系(1:n):在該聯系中,對于實體集A中的每一個實體,實體集B中有n(n≥0)個實體與之聯系。反之,對于實體集B中的每一個實體,實體集A中至多有一個實體與之聯系,記為1:n。其聯系如圖1-8所示。例如,一個職工可以有多個手機號碼,但一個手機號碼只能實名認證給一個職工,職工與手機號碼之間的聯系就是一對多的聯系。

多對多聯系(m:n):在該聯系中,對于實體集A中的每一個實體,實體集B中有n(n≥0)個實體與之聯系。反之,對于實體集B中的每一個實體,實體集A中也有m(m≥0)個實體與之聯系,記為m:n。其聯系如圖1-9所示。例如,一個項目可以有多個職工參加,而一個職工也可以參加多個項目,則項目和職工之間的聯系是多對多的聯系。

實際上,一對一聯系是一對多聯系的特例,而一對多聯系又是多對多聯系的特例。

圖1-7 1:1聯系

圖1-8 1:n聯系

圖1-9 m:n聯系

通常,兩個以上的實體型之間也存在著一對一、一對多、多對多聯系。例如,對于課程、教師與參考書三個實體集來說,一門課程可以由若干個老師講授,使用若干本參考書,每一個老師只講授一門課程,每一本參考書只供一門課程使用,則課程、教師與參考書三者之間的聯系是一對多的,如圖1-10所示。

再如,對于供貨商、工程、材料三個實體集來說,一個供貨商可以供給多個工程多種材料,而每個工程可以使用多個供貨商提供的材料,每種材料又可以由不同的供貨商提供,則供貨商、工程、材料三者之間的聯系是多對多的,如圖1-11所示。

圖1-10 三個實體集之間一對多的聯系

圖1-11 三個實體集之間多對多的聯系

同一個實體集內的各實體之間也存在一對一、一對多、多對多的聯系。例如職工實體集內部具有領導與被領導的聯系,即某一職工(干部)“領導”若干名職工,而一個職工僅被另外一個職工直接領導,因此這是同一實體集內一對多的聯系,如圖1-12所示。

圖1-12 同一實體集內1:n聯系

注意,如果聯系也具有屬性,則這些屬性也要用無向邊與該聯系連接起來。例如學生與課程之間存在學習的聯系,學習就有“成績”這一屬性。學生與課程的E-R圖如圖1-13所示。

圖1-13 學生與課程的E-R圖

主站蜘蛛池模板: 林西县| 仪陇县| 丰县| 阳西县| 迁西县| 敖汉旗| 启东市| 洪洞县| 涟水县| 扎囊县| 道孚县| 信丰县| 武山县| 泉州市| 嘉禾县| 颍上县| 开封县| 东辽县| 苍南县| 黄平县| 那坡县| 兴仁县| 宜黄县| 辽中县| 施甸县| 淳安县| 淅川县| 宁陕县| 文化| 溧水县| 淮滨县| 巴南区| 林甸县| 永和县| 绥芬河市| 林周县| 哈巴河县| 高尔夫| 工布江达县| 建瓯市| 临沭县|