數據模型是數據庫中數據的存儲方式,是數據庫係統的核心和基礎。在數據庫中用數據模型這個工具來抽象、表示和處理現實世界中的數據和信息。數據模型就是現實世界的模擬。數據模型應滿足三方麵要求。
(1)能比較真實的模擬現實世界。
(2)容易為人所理解。
(3)便於在計算機上實現。
人們一般用“現實世界—信息世界—數據世界”的過程,把現實世界中存在的客觀對象(事物或事件)抽象成信息世界的實體,用概念模型來表示實體及其之間的聯係,然後再將實體描述成數據世界中DBMS支持的數據模型。
具體地說,作為以上抽象過程的中間層次,概念模型可以按用戶的觀點準確地模擬應用單位對數據的描述及業務需求,即對應用數據和信息建模。目前常用“實體—聯係”(EntityRelationship,簡稱ER)方法來建立概念模型,這種方法,采用ER圖來描述某一應用單位的概念模型。下麵介紹ER概念模型中的相關術語。
(1)實體(Entity)。
客觀事物在信息世界中稱為實體。這些事物既可以是直觀的,如一本書、一個學生;也可以是抽象的,如一門課程、一場考試。
(2)屬性(Attribute)。
實體所具有的特性在信息世界中稱為屬性。一個實體可由若幹屬性來描述,如某學生的特征可由學號、姓名、性別、年齡、專業等屬性組成。
(3)碼(Key)。
唯一標識實體的屬性集稱為碼。
(4)實體型。
具有相同屬性的實體必然具有共同的特征和性質。用實體名及屬性名集合來抽象和刻畫同類實體。
(5)實體集(Entityset)。
具有相同特性的實體的集合,稱為實體集。如在一所學校中,所有教師組成一個教師實體集,所有學生組成一個學生實體集,所有的課程組成一個課程實體集。
(6)值域(Domain)。
值域是實體屬性取值的範圍。如課程成績一般在0~100之間,性別的取值必須為“男”或“女”,年齡的取值應該從0開始且不應該超過某個固定的值(如150)等。這種屬性的取值範圍稱為值域。
(7)聯係。
在現實世界中,事物內部以及事物之間是有聯係的,這些聯係必然在信息世界中加以反映。一般存在兩類聯係。一個是實體內部的聯係,即構成實體的各屬性之間的聯係;另一個是實體之間的聯係。
兩個實體之間的聯係可以分為以下三類。
①一對一聯係(1∶1)。
如果對於實體集A中的每一個實體,實體集B中至多有一個實體與之聯係,反之亦然,則稱實體集A與實體集B具有一對一聯係,記為1∶1。例如,確定部門實體與經理實體之間存在一對一聯係,意味著一個部門隻能由一個經理管理,而一個經理隻能管理一個部門。
②一對多聯係(1∶n)。
如果對於實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯係,反之,對於實體集B中的每一個實體,實體集A中至多隻有一個實體與之聯係,則稱實體集A與實體集B有一對多聯係,記為1∶n。例如,一個部門中有若幹名職工,而每個職工隻在一個部門中工作,則部門與職工之間具有一對多聯係。