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

2.1 概念模型及表示

概念模型是對信息世界的管理對象、屬性及聯系等信息的描述形式。概念模型不依賴計算機及數據庫管理系統,它是對現實世界的真實、全面反映。本節介紹有關概念模型的基本概念和表示方法。

2.1.1 信息的三種世界及描述

信息的三種世界是指現實世界、信息世界和計算機世界(也稱數據世界)。數據庫是模擬現實世界中某些事務活動的信息集合,數據庫中所存儲的數據,來源于現實世界的信息流。信息流用來描述現實世界中一些事物的某些方面的特征及事物間的相互聯系。在處理信息流前,必須先對其進行分析,并用一定的方法加以描述,然后將描述轉換成計算機所能接受的數據形式。

1.信息的現實世界

現實世界泛指存在于人腦之外的客觀世界。信息的現實世界是指我們要管理的客觀存在的各種事物、事物之間的相互聯系及事物的發生、變化過程。通過對現實世界的了解和認識,使得我們對要管理的對象、過程和方法有個概念模型。認識信息的現實世界并用概念模型加以描述的過程稱為系統分析。信息的現實世界通過實體、特征、實體集及聯系進行劃分和認識。

(1)實體

現實世界中存在的可以相互區分的事物或概念稱為實體(Entity)。實體可以分為事物實體和概念實體,例如,一個學生、一個工人、一臺機器、一部汽車等是事物實體,一門課、一個班級等稱為概念實體。

(2)實體的特征

每個實體都有自己的特征(Characteristic),利用實體的特征可以區別不同的實體。例如,學生通過姓名、性別、年齡、身高、體重等許多特征來描述自己。盡管實體具有許多特征,但是我們在研究時,只選擇其中對管理及處理有用的或有意義的特征。例如,對于人事管理,職工的特征可選擇姓名、性別、年齡、工資、職務等;而在描述一個人健康情況時,可以用職工的身高、體重、血壓等特征表示。

(3)實體集及實體集之間的聯系

具有相同特征或能用同樣特征描述的實體的集合稱為實體集(Entity Set)。例如學生、工人、汽車等都是實體集。實體集不是孤立存在的,實體集之間有著各種各樣的聯系,例如學生和課程之間有“選課”聯系,教師和教學系之間有“工作”聯系。

2.信息世界

現實世界中的事物反映到人們的頭腦里,經過認識、選擇、命名、分類等綜合分析而形成了印象和概念,從而得到了信息。當事物用信息來描述時,即進入信息世界。在信息世界中:實體的特征在頭腦中形成的知識稱為屬性;實體通過其屬性表示稱為實例;同類實例的集合稱為對象,對象即實體集中的實體用屬性表示得出的信息集合。實體與實例是不同的,例如張三是一個實體,而“張三,男,25歲,計算機系學生”是實例,現實世界中的張三除了姓名、性別、年齡和所在系外還有其他的特征,而實例僅對需要的特征通過屬性進行了描述。在信息世界中,實體集之間的聯系用對象聯系表示。

信息世界通過概念模型(也稱信息模型)、過程模型和狀態模型反映現實世界,它要求對現實世界中的事物、事物間的聯系和事物的變化情況準確、如實、全面地表示。概念模型通過E-R圖中的對象、屬性和聯系對現實世界的事物及關系給出靜態描述。過程模型通過信息流程圖和數據字典描述事物的處理方法和信息加工過程。狀態模型通過事物狀態轉換圖對事物給出動態描述。數據庫主要是根據概念模型設計的,而數據處理方法主要根據過程模型設計的,狀態模型對數據庫的系統功能設計有重要的參考價值。

3.信息的計算機世界

信息世界中的信息,經過數字化處理形成計算機能夠處理的數據,就進入了計算機世界。計算機世界也叫機器世界或數據世界。在信息轉換為數據的過程中,對計算機硬件和軟件(軟件主要指數據庫管理系統)都有限定,所以信息的表示方法和信息處理能力要受到計算機硬件和軟件限制。也就是說,數據模型應符合具體的計算機系統和DBMS的要求。

在計算機世界中用到下列術語。

(1)數據項

數據項(Item)是對象屬性的數據表示。數據項有型和值之分,數據項的型是對數據特性的表示,它通過數據項的名稱、數據類型、數據寬度和值域等來描述;數據項的值是其具體取值。數據項的型和值都要符合計算機數據的編碼要求,即都要符合數據的編碼要求。

(2)記錄

記錄(Record)是實例的數據表示。記錄有型和值之分:記錄的型是結構,由數據項的型構成;記錄的值表示對象中的一個實例,它的分量是數據項值。例如,“姓名,性別,年齡,所在系”是學生數據的記錄型,而“張三,男,23,計算機系”是一個學生的記錄值,它表示學生對象的一個實例,“張三”“男”“23”“計算機系”都是數據項值。

(3)文件

文件(File)是對象的數據表示,是同類記錄的集合。即同一個文件中的記錄類型應是一樣的。例如,將所有學生的登記表組成一個學生數據文件,文件中的每條記錄都要按“姓名,性別,年齡,所在系”的結構組織數據項值。

(4)數據模型

現實世界中的事物反映到計算機世界中就形成了文件的記錄結構和記錄,事物之間的相互聯系就形成了不同文件間的記錄的聯系。記錄結構以及記錄聯系的數據化的結果就是數據模型(Data Model)。

4.現實世界、信息世界和計算機世界的關系

現實世界、信息世界和計算機世界這三個領域是由客觀到認識、由認識到使用管理的三個層次,后一領域是前一領域的抽象描述。三個領域之間的術語對應關系,可由表2-1表示。

表2-1 信息的三種世界術語的對應關系表

現實世界、信息世界和計算機世界的轉換關系可以用圖2-1表示。

圖2-1 信息的三個世界的聯系和轉換過程

從圖中可以看出,現實世界的事物及聯系,通過系統分析成為信息世界的信息模型,而信息模型經過數據化處理轉換為數據模型。

2.1.2 概念模型的基本概念

數據庫的概念模型也稱信息模型。在介紹概念模型基本概念之前,有必要說明:本書根據最新的研究所界定的概念模型中的對象、實例等概念,在許多教科書中仍被稱作實體集(或實體型)、實體。其實對象和實體集、實例和實體的概念是不同的。但為了統一起見,本書在解釋了它們之間對應關系的前提下,有些地方也用實體集、實體表示對象、實例。

1.概念模型涉及的基本概念

(1)對象和實例

對象是實體集遵循其實體型抽象的結果。現實世界中,具有相同性質、服從相同規則的一類事物(或概念,即實體)的抽象稱為對象(Object),對象是實體集信息化(數據化)的結果。對象中的每一個具體的實體的抽象為該對象的實例(Instance)。

(2)屬性

屬性(Attribute)是實體的某一方面特征的抽象表示。如學生,可以通過學生的“姓名”“學號”“性別”“年齡”及“政治面貌”等特征來描述。此時,“姓名”“學號”“性別”“年齡”及“政治面貌”等就是學生的屬性。屬性值是屬性的具體取值。例如某一學生,其姓名為“李利”,學號為“79201”,性別為“男”,年齡為“21”,政治面貌為“黨員”,這些具體描述就稱為屬性值。

(3)碼、主碼和次碼

碼(Key)也稱關鍵字,它能夠唯一標識一個實體。碼可以是屬性或屬性組,如果碼是屬性組,則其中不能含有多余的屬性。例如在學生的屬性集中,學號確定后,學生的其他屬性值也都確定了,學生記錄也就確定了。由于學號可以唯一地標識一個學生,所以學號為碼。在有些實體集中,可以有多個碼。如學生實體集,假設學生姓名沒有重名,那么屬性“姓名”也可以作為碼。當一個實體集中包括有多個碼時,通常要選定其中的一個碼為主碼(Primary Key),其他的碼就是候選碼。

實體集中不能唯一標識實體屬性的叫次碼(Secondary Key)。例如“年齡”“政治面貌”,這些屬性都是次碼。一個主碼值對應一個實例,而一個次碼值會對應多個實例。

(4)域

屬性的取值范圍稱為屬性的域(Domain)。例如,學生的年齡為16~35范圍內的正整數,其數據域為(16~35)。

2.實體聯系的類型

(1)兩個實體集之間的聯系

兩個實體集之間的聯系可概括為以下3種。

1)一對一聯系(1:1)。設有兩個實體集A和B,如果實體集A與實體集B之間具有一對一聯系,則對于實體集A中的每一個實體,在實體集B中至多有一個(也可以沒有)實體與之聯系;反之,對于實體集B中的每一個實體,實體集A也至多有一個實體與之聯系。兩實體集間的一對一聯系記作1:1。例如,在一個工廠里面只有一個廠長,而一個廠長只能在一個工廠里任職,則工廠與廠長之間具有一對一聯系。

2)一對多聯系(1:n)。設有兩個實體集A和B,如果實體集A與實體集B之間具有一對多聯系,則對于實體集A的每一個實體,實體集B中有一個或多個實體與之聯系;而對于實體集B的每一個實體,實體集A中至多有一個實體與之聯系。實體集A與實體集B之間的一對多聯系記作1:n。例如,一個學校里有多名教師,而每個教師只能在一個學校里教學,則學校與教師之間具有一對多聯系。

3)多對多聯系(m:n)。設有兩個實體集A和B,如果實體集A與實體集B之間具有多對多聯系,則對于實體集A的每一個實體,實體集B中有一個或多個實體與之聯系;反之,對于實體集B中的每一個實體,實體集A中也有一個或多個實體與之聯系。實體集A與實體集B之間的多對多聯系記作m:n。例如,工廠里的一個職工可以參加多種體育組織,而一個體育組織也可以有多名職工,體育組織與職工之間具有多對多聯系。

實際上,一對一聯系是一對多聯系的特例,而一對多聯系又是多對多聯系的特例。圖2-2是用E-R圖表示兩個實體集之間的1:1、1:n或m:n聯系的實際例子。

圖2-2 兩個實體集聯系的例子

(2)多實體集之間的聯系

兩個以上的實體集之間也會存在聯系,其聯系類型一般為一對多和多對多。

1)多實體集之間的一對多聯系。設實體集E1,E2,…,En,如果Ej(j=1,2,…,n)與其他實體集E1,E2,…,Ej-1,Ej+1,…,En之間存在一對多的聯系,則對于Ej中的一個給定實體,可以與其他實體集Ei(i≠j)中的一個或多個實體聯系,而實體集Ei(i≠j)中的一個實體最多只能與Ej中的一個實體聯系,則稱Ej與E1,E2,…,Ej-1,Ej+1,…,En之間的聯系是一對多的。

例如,在圖2-3a中,一門課程可以有若干教師講授,一個教師只講授一門課程;一門課程使用若干本參考書,每一本參考書只供一門課程使用。所以課程與教師、參考書之間的聯系是一對多的。

圖2-3 三個實體集聯系的實例

2)多實體集之間的多對多聯系。在兩個以上的多個實體集之間,當一個實體集與其他實體集之間均存在多對多聯系,而其他實體集之間沒有聯系時,這種聯系稱為多實體集間的多對多聯系。

例如,有三個實體集:供應商、項目、零件,一個供應商可以供給多個項目多種零件;每個項目可以使用多個供應商供應的零件;每種零件可由不同供應商供給。因此,供應商、項目、零件三個實體型之間是多對多的聯系,如圖2-3b所示。

(3)實體集內部的聯系

實際上,在一個實體集的實體之間也可以存在一對多或多對多的聯系。例如,職工是一個實體集,職工中有領導,而領導自身也是職工。職工實體集內部具有領導與被領導的聯系,即某一個職工領導若干名職工,而一個職工僅被一個領導管理,這種聯系是一對多的聯系,如圖2-4所示。

圖2-4 同一實體集內的一對多聯系實例

2.1.3 概念模型的表示方法

概念模型是對信息世界的建模,概念模型應當能夠全面、準確地描述出信息世界中的基本概念。概念模型的表示方法很多,其中最為著名和使用最為廣泛的是P.P.Chen于1976年提出的實體-聯系方法(Entity-Relationship Approach),簡稱E-R圖法。該方法用E-R圖來描述現實世界的概念模型,提供了表示實體集、屬性和聯系的方法。E-R圖也稱為E-R模型。在E-R圖中:

1)用長方形表示實體集,長方形內寫實體集名。

2)用橢圓形表示實體集的屬性,并用線段將其與相應的實體集連接起來。例如,學生具有學號、姓名、性別、年齡和所在系,共5個屬性,用E-R圖表示如圖2-5所示。

圖2-5 學生及屬性的E-R圖

由于實體集的屬性比較多,有些實體可具有多達上百個屬性,所以在E-R圖中,實體集的屬性可不直接畫出,而通過數據字典的方式表示(即文字說明方式)。無論使用哪種方法表示實體集的屬性,都不能出現遺漏屬性的情況。

3)用菱形表示實體集間的聯系,菱形內寫上聯系名,并用線段分別與有關實體集連接起來,同時在線段旁標出聯系的類型。如果聯系具有屬性,則該屬性仍用橢圓框表示,仍需要用線段將屬性與其聯系連接起來。聯系的屬性必須在E-R圖上標出,不能通過數據字典說明。例如,供應商、項目和零件之間存在供應聯系,該聯系有供應量屬性,如圖2-6所示。

圖2-6 實體間聯系的屬性及其表示

主站蜘蛛池模板: 巍山| 格尔木市| 高邮市| 潞西市| 漳州市| 重庆市| 丰台区| 洪洞县| 太和县| 平江县| 潮州市| 黔江区| 青海省| 宜兴市| 汪清县| 正蓝旗| 普洱| 建昌县| 铜山县| 城步| 天祝| 黄梅县| 将乐县| 盐城市| 五原县| 锦屏县| 海林市| 堆龙德庆县| 晋州市| 镇远县| 如东县| 漾濞| 芜湖县| 伊春市| 盐边县| 江陵县| 太保市| 德安县| 高台县| 平泉县| 上虞市|