- Access 2010數據庫應用技術(第2版)
- 劉衛(wèi)國主編
- 4544字
- 2021-02-08 16:46:44
1.4 數據模型
數據庫是現實世界中某種應用環(huán)境(一個單位或部門)所涉及的數據的集合,它不僅要反映數據本身的內容,而且要反映數據之間的聯系。由于計算機不能直接處理現實世界中的具體事物,所以必須將這些具體事物轉換成計算機能夠處理的數據。在數據庫技術中,用數據模型(Data Model)來對現實世界中的數據進行抽象和表示。
1.4.1 數據的抽象過程
從現實世界中的客觀事物到數據庫中存儲的數據是一個逐步抽象的過程,這個過程經歷了現實世界、觀念世界和機器世界3個階段,對應于數據抽象的不同階段,采用不同的數據模型。首先將現實世界的事物及其聯系抽象成觀念世界的概念模型,然后轉換成機器世界的數據模型。概念模型并不依賴于具體的計算機系統,它不是數據庫管理系統所支持的數據模型,它是現實世界中客觀事物的抽象表示。概念模型經過轉換成為計算機上某一數據庫管理系統支持的數據模型。所以說,數據模型是對現實世界進行抽象和轉換的結果,數據的抽象過程如圖1-3所示。

圖1-3 數據的抽象過程
1. 對現實世界的抽象
現實世界就是客觀存在的世界,其中存在著各種客觀事物及其相互之間的聯系,而且每個事物都有自己的特征或性質。計算機處理的對象是現實世界中的客觀事物,在對其實施處理的過程中,首先應了解和熟悉現實世界,從對現實世界的調查和觀察中抽象出大量描述客觀事物的事實,再對這些事實進行整理、分類和規(guī)范,進而將規(guī)范化的事實數據化,最終實現由數據庫系統存儲和處理。
2. 觀念世界中的概念模型
觀念世界是對現實世界的一種抽象,通過對客觀事物及其聯系的抽象描述,構造出概念模型。概念模型的特征是按用戶需求對數據進行建模,表達了數據的全局邏輯結構,是系統用戶對整個應用項目涉及的數據的全面描述。概念模型主要用于數據庫設計,它獨立于實現時的數據庫管理系統。也就是說,無論選擇何種數據庫管理系統,都不會影響概念模型的設計。
概念模型的表示方法有很多,目前較常用的是實體聯系模型(Entity Relationship Model,E-R模型)。E-R模型主要用E-R圖來表示。
3. 機器世界中的邏輯模型和物理模型
機器世界是指現實世界在計算機中的體現與反映。現實世界中的客觀事物及其聯系,在機器世界中以邏輯模型來描述。在選定數據庫管理系統后,就要將E-R圖表示的概念模型轉換為具體的數據庫管理系統支持的邏輯模型。邏輯模型的特征是按計算機實現的觀點對數據進行建模,表達了數據庫的全局邏輯結構,是設計人員對整個應用項目數據庫的全面描述。邏輯模型服務于數據庫管理系統的應用實現。通常,我們把數據的邏輯模型直接稱為數據模型。數據庫系統中主要的邏輯模型有層次模型、網狀模型和關系模型。
物理模型是對數據最底層的抽象,用以描述數據在物理存儲介質上的組織結構,與具體的數據庫管理系統、操作系統和硬件有關。
從概念模型到邏輯模型的轉換是由數據庫設計人員完成的,從邏輯模型到物理模型的轉換是由數據庫管理系統完成的,一般人員不必考慮物理實現細節(jié),因而邏輯模型是數據庫系統的基礎,也是應用過程中要考慮的核心問題。
1.4.2 概念模型
當分析某種應用環(huán)境所需的數據時,總是首先找出涉及的實體及實體之間的聯系,進而得到概念模型,這是數據庫設計的先導。
1. 實體與實體集
實體(Entity)是現實世界中任何可以相互區(qū)分和識別的事物,它可以是能觸及的客觀對象,如一位教師、一名學生、一種商品等,也可以是抽象的事件,如一場足球比賽、一次借書等。
性質相同的同類實體的集合稱為實體集(Entity Set)。例如,一個學院的所有教師,2010南非世界杯足球賽的全部64場比賽等。
2. 屬性
每個實體都具有一定的特征或性質,這樣才能區(qū)分一個個實體。例如,教師的編號、姓名、性別、職稱等都是教師實體具有的特征,足球賽的比賽時間、地點、參賽隊、比分、裁判姓名等都是足球賽實體的特征。實體的特征稱為屬性(Attribute),一個實體可用若干屬性來描述。
能唯一標識實體屬性或屬性集的稱為實體標識符。例如,教師的編號可以作為教師實體的標識符。
3. 類型與值
屬性和實體都有類型(Type)和值(Value)之分。屬性類型就是屬性名及其取值類型,屬性值就是屬性所取的具體值。例如,教師實體中的“姓名”屬性,屬性名“姓名”和取字符類型的值是屬性類型,而“趙琳琳”“劉穆奮”等是屬性值。每個屬性都有特定的取值范圍,即值域(Domain),超出值域的屬性值則認為無實際意義。例如,“性別”屬性的值域為男、女,“職稱”屬性的值域為助教、講師、副教授、教授等。由此可見,屬性類型是個變量,屬性值是變量所取的值,而值域是變量的取值范圍。
實體類型就是實體的結構描述,通常是實體名和屬性名的集合。具有相同屬性的實體,有相同的實體類型。實體值是一個具體的實體,是屬性值的集合。例如,教師實體類型是:
教師(編號,姓名,性別,出生日期,職稱,基本工資,研究方向)
教師“劉穆奮”的實體值是:
(T6,劉穆奮,男,09/21/65,教授,3500,數據庫技術)
由上可見,屬性值所組成的集合表征一個實體,相應的這些屬性名的集合表征一個實體類型,同類型實體的集合稱為實體集。
在Access中,用“表”來表示同一類實體,即實體集;用“記錄”來表示一個具體的實體;用“字段”來表示實體的屬性。顯然,字段的集合組成一條記錄,記錄的集合組成一個表,實體類型則代表了表的結構。
4. 實體間的聯系
實體之間的對應關系稱為聯系(Relationship),它反映了現實世界事物之間的相互關聯。例如,圖書和出版社之間的關聯關系為:一個出版社可以出版多種圖書,同一種圖書可以在多個出版社出版。
實體間的聯系是指一個實體集中可能出現的每一個實體與另一實體集中多少個具體實體存在聯系。實體之間有各種各樣的聯系,歸納起來有3種類型。
(1)一對一聯系
如果對于實體集A中的每一個實體,實體集B中至多只有一個實體與之聯系,反之亦然,則稱實體集A與實體集B具有一對一聯系,記為1∶1。例如,一個工廠只有一個廠長,一個廠長只在一個工廠任職,廠長與工廠之間的聯系就是一對一聯系,如圖1-4所示。

圖1-4 一對一聯系
(2)一對多聯系
如果對于實體集A中的每一個實體,實體集B中可以有多個實體與之聯系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯系,則稱實體集A與實體集B有一對多聯系,記為1∶n。例如,一個公司有許多職員,但一個職員只能在一個公司就職,所以公司和職員之間的聯系是一對多聯系,如圖1-5所示。

圖1-5 一對多聯系
(3)多對多聯系
如果對于實體集A中的每一個實體,實體集B中可以有多個實體與之聯系,而對于實體集B中的每一個實體,實體集A中也可以有多個實體與之聯系,則稱實體集A與實體集B之間有多對多聯系,記為m∶n。例如,一個讀者可以借閱多種圖書,任何一種圖書可以被多個讀者借閱,所以讀者和圖書之間的聯系是多對多聯系,如圖1-6所示。

圖1-6 多對多聯系
5. E-R圖
概念模型是反映實體及實體之間聯系的模型。在建立概念模型時,要逐一給實體命名以示區(qū)別,并描述它們之間的各種聯系。E-R圖是用一種直觀的圖形方式建立現實世界中實體及其聯系模型的工具,它是數據庫設計的一種基本工具。
E-R圖用矩形框表示現實世界中的實體,用菱形框表示實體間的聯系,用橢圓形框表示實體和聯系的屬性,實體名、屬性名和聯系名分別寫在相應框內。對于作為實體標識符的屬性,在屬性名下畫一條橫線。實體與相應的屬性之間、聯系與相應的屬性之間用線段連接。聯系與其涉及的實體之間也用線段連接,同時在線段旁標注聯系的類型(1∶1、1∶n或m∶n)。
圖1-7用來表示讀者實體和圖書實體的多對多聯系模型,其中,“借書證號”屬性作為讀者實體的標識符(不同讀者的借書證號不同),“書號”屬性作為圖書實體的標識符。聯系也可以有自己的屬性,如讀者實體和圖書實體之間的“借閱”聯系可以有“借閱日期”屬性。

圖1-7 讀者實體和圖書實體的E-R圖
1.4.3 邏輯模型
E-R模型只能說明實體間語義的聯系,還不能進一步說明詳細的數據結構。在進行數據庫設計時,總是先設計E-R模型,然后再把E-R模型轉換成計算機能實現的邏輯數據模型,如關系模型。邏輯模型不同,其描述和實現的方法也不同,相應的支持軟件即數據庫管理系統也不相同。在數據庫系統中,常用的邏輯模型有層次模型、網狀模型和關系模型3種。
1. 層次模型
層次模型(Hierarchical Model)用樹形結構來表示實體及其之間的聯系。在這種模型中,數據被組織成由“根”開始的“樹”,每個實體由“根”開始沿著不同的分支放在不同的層次上。“樹”中的每一個節(jié)點代表一個實體類型,連線則表示它們之間的聯系。根據樹形結構的特點,建立數據的層次模型需要滿足如下兩個條件。
① 有一個節(jié)點沒有父節(jié)點,這個節(jié)點即根節(jié)點。
② 其他節(jié)點有且僅有一個父節(jié)點。
如圖1-8所示的層次模型就像一顆倒置的樹,根結點在最上面,其他結點在下,逐層排列。事實上,許多實體間的聯系本身就是自然的層次關系,如一個單位的行政機構、一個家庭的世代關系等。

圖1-8 層次模型示意圖
層次模型的特點是各實體之間的聯系通過指針來實現,查詢效率較高。但由于受到如上所述的兩個條件的限制,層次模型可以方便地表示出一對一和一對多的實體聯系,但不能直接表示出多對多的實體聯系。對于多對多聯系,必須先將其分解為幾個一對多聯系,才能將其表示出來。因而,對于復雜的數據關系,實現起來較為麻煩,這就是層次模型的局限性。
采用層次模型來設計的數據庫稱為層次數據庫。層次模型的數據庫管理系統是最早出現的,它的典型代表是IBM公司在1968年推出的IMS(Information Management System)系統,這是世界上最早出現的大型數據庫管理系統。
2. 網狀模型
網狀模型(Network Model)是用實體類型為節(jié)點的有向圖來表示各實體及其之間的聯系。其特點如下。
① 可以有一個以上的節(jié)點無父節(jié)點。
② 至少有一個節(jié)點有多于一個的父節(jié)點。
在網狀模型中,子結點與父結點的聯系可以不唯一,因此要為每個聯系命名,并指出與該聯系有關的父結點和子結點。在圖1-9中,E3有E1、E2兩個父結點,把E1和E3之間的聯系命名為R1,E2和E3之間的聯系命名為R2。

圖1-9 網狀模型示意圖
網狀模型比層次模型復雜,它可以直接用來表示多對多聯系。然而由于技術上的困難,一些已實現的網狀數據庫管理系統(如Database Task Group系統)中仍然只允許處理一對多聯系。
網狀模型的特點是各實體之間的聯系通過指針實現,查詢效率高,多對多聯系也容易實現。但是當實體集和實體集中實體的數目較多時,眾多的指針使管理工作變得復雜,對用戶來說使用起來也比較麻煩。
3. 關系模型
與層次模型和網狀模型相比,關系模型(Relational Model)有著本質的差別,它用二維表格來表示實體及其相互之間的聯系。在關系模型中,把實體集看成一個二維表,每一個二維表稱為一個關系。每個關系均有一個名字,稱為關系名。
關系模型是由若干個關系模式(Relational Schema)組成的集合,關系模式就相當于前面提到的實體類型,它的實例稱為關系(Relation)。對于教師關系模式—教師(編號,姓名,性別,出生日期,職稱,基本工資,研究方向),其關系實例如表1-1所示。
表1-1 教師關系模式

一個關系就是沒有重復行和重復列的二維表,二維表的每一行在關系中稱為元組,每一列在關系中稱為屬性。教師關系的每一行代表一個教師的記錄,每一列代表教師記錄的一個字段。
雖然關系模型比層次模型和網狀模型發(fā)展得晚,但它的數據結構簡單、容易理解,而且它建立在嚴格的數學理論基礎上,所以是目前比較流行的一種數據模型。自20世紀80年代以來,新推出的數據庫管理系統幾乎都支持關系模型。本書討論的Access 2010就是一種關系數據庫管理系統。
- HTML5+CSS3+JavaScript從入門到精通:上冊(微課精編版·第2版)
- Cocos2D-X權威指南(第2版)
- Node.js 10實戰(zhàn)
- MATLAB應用與實驗教程
- Xamarin.Forms Projects
- Learning Selenium Testing Tools(Third Edition)
- Learning Three.js:The JavaScript 3D Library for WebGL
- Python編程:從入門到實踐
- jQuery炫酷應用實例集錦
- 編寫高質量代碼:改善Objective-C程序的61個建議
- Java Web從入門到精通(第3版)
- FPGA嵌入式項目開發(fā)實戰(zhàn)
- 零基礎學Python編程(少兒趣味版)
- JQuery風暴:完美用戶體驗
- Go Systems Programming