- 數據庫應用基礎教程(Visual FoxPro 9.0)
- 程東勝 廣樹建主編
- 6223字
- 2018-12-29 02:15:59
1.3 數據模型
數據(data)是描述事物的符號記錄。模型(Model)是現實世界的抽象。數據模型(Data Model)是數據特征的抽象,是數據庫管理的教學形式框架。數據庫系統是提供信息表示和操作手段的形式構架。數據模型包括數據庫數據的結構部分、數據庫數據的操作部分和數據庫數據的約束條件。
數據模型描述的內容包括三部分:數據結構、數據操作、數據約束。
數據結構:數據模型中的數據結構主要描述數據的類型、內容、性質以及數據間的聯系等。數據結構是數據模型的基礎,數據操作和約束都建立在數據結構上。不同的數據結構具有不同的操作和約束。
數據操作:數據模型中的數據操作主要描述在相應的數據結構上的操作類型和操作方式。
數據約束:數據模型中的數據約束主要描述數據結構內數據間的語法、詞義聯系、它們之間的制約和依存關系,以及數據動態變化的規則,以保證數據的正確、有效和相容。
數據模型按不同的應用層次分成三種:概念數據模型、邏輯數據模型、物理數據模型。
(1)概念數據模型(Conceptual Data Model)
概念數據模型簡稱概念模型,是面向數據庫用戶的實現世界的模型,主要用來描述世界的概念化結構,使數據庫的設計人員在設計的初始階段,擺脫計算機系統及數據庫管理系統(DBMS)的具體技術問題,集中精力分析數據和數據之間的聯系等,與具體的數據管理系統無關。概念數據模型必須轉換成邏輯數據模型,才能在數據庫管理系統中實現。
(2)邏輯數據模型(Logical Data Model)
邏輯數據模型簡稱數據模型,是用戶從數據庫所看到的模型,是具體的數據庫管理系統所支持的數據模型,如網狀數據模型(Network Data Model)、層次數據模型(Hierarchical Data Model)等。數據模型既要面向用戶,又要面向系統,主要用于數據庫管理系統的實現。
(3)物理數據模型(Physical Data Model)
物理數據模型簡稱物理模型,是面向計算機物理表示的模型,描述了數據在儲存介質上的組織結構,不但與具體的數據庫管理系統有關,而且與操作系統和硬件有關。每種邏輯數據模型在實現時都有其對應的物理數據模型。數據庫管理系統為了保證其獨立性與可移植性,大部分物理數據模型的實現工作由系統自動完成,而設計者只設計索引、聚集等特殊結構。
概念數據模型中最常用的是E-R模型、擴充的E-R模型、面向對象模型及謂詞模型。邏輯數據類型中最常用的是層次模型、網狀模型、關系模型,應用最廣泛的是關系模型。
1.3.1 E-R概念模型
概念數據模型是現實世界到信息世界的抽象表示。最常用的概念數據模型是E-R(Entity Relationship,實體-關系)模型。E-R模型中的主要概念有實體、實體型、實體集、屬性、碼及實體間的聯系。
1.實體(Entity)
實體表示客觀存在的可以相互區別的事物。實體可以是具體的人、事及物,也可以是抽象的概念與關系,如一個學生、一本書、一個公司、某個學校、某份合同、一門課程等。
實體用其特征來描述,如學生“王五”可以有姓名、學號、性別、年齡等特征;又如,書可以用書名、作者、出版社、出版時間等描述。
實體是指現實世界存在的個體,具有同類特征的個體的集合形成一個實體集。所謂“同類特征”,是指研究問題的某方面,如同是學生、同是教師、同是學校的員工等。為了抽象描述一個實體集,用實體名及表征實體的多個特征的集合來描述,稱為實體的“型”,實體集里的每個實體是它的值或實例。
〖例1-1〗 在“人才檔案管理系統”中,具體的實體如一個專門人才、一個成果、一項成就等,抽象的實體如某個求職期望、一張證明、一份工作報告等。
〖例1-2〗 在“人才檔案管理系統”中,可以將“人才檔案”、“成就成果”、“專業特長”和“聯系方式”等定義成不同的實體集。
① “人才檔案”實體集中包含的是“人才檔案管理系統”全體人才,是有關專門人才的自然情況(人才編號、姓名、性別、出生日期、政治面貌、民族、學歷、工資現狀、工作簡歷、照片等)的全部信息記錄。
② “成就成果”實體集中包含的是“人才檔案管理系統”全體人才的成就成果,是有關專門人才成就成果(成果編號、成果名稱、成果類別、成果出處、成果完成人)的全部信息記錄。
③ “聯系”實體集中包含的是“人才檔案管理系統”全體人才聯系方式,是有關人才聯系方式(聯系編號、聯系人、工作單位、電話、手機、E-mail、郵編、通訊地址)的全部信息記錄。
以上幾個實體集僅僅是“人才檔案管理系統”中的部分實體集,“人才檔案管理系統”除上述實體集外,還包含求職期望、人才需求等實體集,這里不再一一列舉。
在一個具體的數據庫應用系統中,實體型與實體集二者的關系是相對的,“型”的含義在于說明實體的屬性“類型”, “集”的含義在于說明所謂該類型實體的“集合”,它們都是用來說明同類實體的。
另外,實體的概念有“型(Type)”和“值(value)”之分。例如,“人才檔案”的屬性(人才編號、姓名、性別、出生日期、政治面貌、民族、學歷、工資現狀、工作簡歷、照片)是實體的“型”,而對于一個具體的“人才”實體,如(Gz05002,楊行東,男,03/30/1949,黨員,漢族,大學,4260,略,略)就是實體的“值”。
同樣,實體集是用“型”來描述的,而每個具體的實體則是實體的“值”或稱為實例,若干個實體的“值”便是實體集的“值”。為了敘述方便,在不引起混淆的情況下,可以不去仔細區分實體“型”和“值”,簡稱“實體”。
2.屬性(Attribute)
實體具有若干特征或性質,這些特征或性質稱之為屬性。也可以說,屬性是用于描述實體特征和性質的,具有相同屬性的實體具有相同的特征和性質,屬性不能獨立于實體而存在。
每個屬性有一定的取值范圍,稱為該屬性的域。例如,學生實體的屬性學號的域可以是5位的整數,姓名的域是字符串的集合,性別的域為男和女等,用這些屬性對應的一組值可以表示具體的實體。
〖例1-3〗 在“人才檔案管理系統”中:每個人才是一個個體,可看成是一個實體,“人才檔案”實體的屬性有人才編號、姓名、性別、出生日期、政治面貌、民族、學歷、工資現狀、工作簡歷、照片,用來描述人才信息記錄。例如:
(Gz05002,楊行東,男,03/30/1949,黨員,漢族,大學,4260,略,略)
表示一個人才,是一個實體。
每個成就成果是一個事件,可看成是一個實體。“成就成果”實體的屬性有成果編號、成果名稱、成果類別、成果出處、成果完成人,用來描述與專門人才相關的成就成果信息記錄。例如:
(0001, Visual FoxPro高級編程技術,著作,電子工業出版社,劉偉箭、楊行東等)
表示一項成就成果,是一個實體。
〖例1-4〗 在“人才檔案管理系統”中,“人才檔案”、“成就成果”和“聯系方式”實體型表示如下:
人才檔案(人才編號,姓名,性別,出生日期,政治面貌,民族,學歷,工資現狀,工作簡歷,照片)
成就成果(成果編號,成果名稱,成果類別,成果出處,成果完成人)
聯系方式(聯系編號,聯系人,工作單位,電話,手機,E-mail,郵編,通訊地址)
3.碼(Key)
為了區別實體集中的每個實體,用能起標志作用的一個或一組屬性加以區別,這個或組屬性稱為實體的碼(或關鍵字)。如學生實體集中的屬性學號能夠標志學生實體,可作為學生實體的碼,這樣可以用學號來區分標志具有相同姓名的不同學生。作為碼的屬性或屬性集又稱為主屬性,否則稱為非主屬性。
〖例1-5〗 在“人才檔案管理系統”的“人才檔案”實體集中,因為專門人才是通過人才編號來區分的,所以“人才編號”可作為“人才檔案”實體集中的碼。在“成就成果”實體集中,因為成就成果是通過成果編號來區分的,所以“成果編號”可作為“成就成果”實體集中的碼。
4.實體間的聯系(Relationship)
聯系是兩個或兩個以上的實體集間關聯關系的描述。
〖例1-6〗 在“人才檔案管理系統”中,“人才檔案”實體集與“成就成果”實體集之間可構成關聯關系,“成就成果”中的成果是屬于“人才檔案”中的某個或某幾個專門人才的。在“人才檔案管理系統”中,“人才檔案”實體集與“工資”實體集之間可構成關聯關系,“工資”中記錄的是“人才檔案”中的某一個人現有的工資狀況。
在現實世界中,事物的聯系有兩種:事物內部的聯系和事物之間的聯系,在概念模型中表現為實體內部的聯系和實體間的聯系。實體內部的聯系是指實體的各屬性之間的聯系,實體間的聯系是指不同實體集間的聯系。兩個實體集之間的聯系,稱為二元聯系。兩個實體集之間有以下三種聯系。
(1)一對一的聯系
一對一的聯系是實體間最簡單的一種聯系,表示了兩個實體集中的個體間存在著一對一的聯系。例如,在學校中,一個系有一個系主任,而這個系主任只能在一個系中任職,則實體集系與實體系主任之間的聯系就是一對一的。又如,一個班級有一個班長,一個班長只能屬于一個學生班級,則班級與班長之間也是一對一的聯系。一對一的聯系記為1︰1。
(2)一對多的聯系
實體間的另一種聯系是一對多的聯系。例如,一個班級有若干名學生,每個學生只在一個班級,則班級與學生間的聯系就是一對多的。一對多的聯系記為1︰n。
(3)多對多的聯系
多對多的聯系是現實世界存在的較為普遍的聯系。例如學生與課程,一個學生可以選修多門課程,而一門課程可供多個學生選修,則學生與課程之間就是多對多的聯系。多對多的聯系記為m︰n。
實體間的各種聯系可用圖1-8示意,分別表示了班級與班長、班級與學生和學生與課程之間的1︰1、1︰n、m︰n的聯系。

圖1-8
在多個實體間也可以存在有聯系,稱為多元聯系,如供應商、零件、工程之間的關系,可用圖1-9所示。

圖1-9
除了不同實體間的聯系外,在一個實體集內部的不同實體間也可能存在著一對一、一對多、多對多的聯系。圖1-10表示了職工實體之間存在的領導與被領導的一對多的關系。

圖1-10
5.E-R圖(實體-聯系圖)
概念模型可通過E-R圖來描述,即通過圖形描述實體、實體屬性和實體之間的聯系。因此,概念模型也稱為E-R模型。
在E-R模型中,數據的結構被表示為E-R圖,圖中有3個主要的元素,即實體集、屬性和聯系。其中:“矩形”框用于表示實體集,“橢圓形”框用于表示實體集中實體的公共屬性,“菱形”框用于表示實體集之間的聯系。
〖例1-7〗 繪制實體集圖。
在“人才檔案管理系統”中,有“人才檔案”、“成就成果”、“專業”、“聯系”、“求職期望”和“人才需求”等實體集,其對應的E-R圖如圖1-11所示。

圖1-11
〖例1-8〗 繪制實體集公共屬性圖。
“聯系方式”實體集中,每個實體具有聯系編號、聯系人、工作單位、電話、手機、E-mail、郵編、通信地址等屬性,其對應的E-R圖如圖1-12所示。

圖1-12
〖例1-9〗 繪制實體集之間的聯系圖。
① 在人才檔案管理活動中,由于“人才檔案”實體集與“聯系”實體集具有關聯關系,其對應的E-R圖如圖1-13(a)所示。
② 在人才檔案管理活動中,由于“人才檔案”實體集與“求職期望”實體集具有關聯關系,其對應的E-R圖如圖1-13(b)所示。
③ 在人才檔案管理活動中,由于“人才需求”實體集與“成就成果”實體集具有關聯關系,其對應的E-R圖如圖1-13(c)所示。

圖1-13
6.E-R模型的設計實例
“人才檔案管理系統”是一個包含人才檔案信息管理、人才需求信息管理和求職期望的綜合信息管理系統。實體集個數較多,實體集中實體公共屬性較多,實體集之間的相互關聯關系復雜,繪制其E-R模型相對復雜,通常采用的設計思想是:“化全局”為“局部”,再做“局部集成”。
“人才檔案管理系統”E-R模型具體設計步驟如下:
<1> 繪制“人才檔案管理系統”總體功能框圖,如圖1-14所示。

圖1-14
<2> 繪制“人才檔案管理系統”每個子系統的E-R模型圖,如圖1-15所示。

圖1-15
<3> 繪制“人才檔案管理系統”幾個子系統的E-R模型圖的集成圖:人才檔案信息管理子系統、人才需求信息管理子系統和求職期望信息管理子系統部分E-R模型圖集成圖,如圖1-16所示。

圖1-16
1.3.2 層次模型
層次數據模型(Hierarchical Model)是較早用于數據庫技術的一種數據模型。現實世界中如組織機構、家族關系、物品分類等之間都存在著自然的層次關系。用樹型(層次)結構表示實體類型及實體間聯系的數據模型稱為層次模型。
層次模型是指用樹結構表示實體及其之間的聯系,樹中每個節點代表一個記錄類型,樹結構表示實體型之間的聯系。一個層次模型中的限制條件是:有且僅有一個節點,無父節點,此節點為樹的根;其他節點有且僅有一個父節點。
層次模型的特點是記錄之間的聯系通過指針實現,查詢效率高。其缺點是只能表示1︰n的聯系。盡管有許多輔助手段實現m︰n的聯系,但比較復雜,不易掌握。層次模型的示例如圖1-17所示。

圖1-17
1.3.3 網狀模型
在現實世界中,事物間的關系多數是非層次關系,如果用層次模型描述非層次關系就有一定的困難。基于這種情況,引入了網狀模型。網狀模型(Network Model)是層次模型的擴展,表示多個從屬關系的層次結構,呈現一種交叉關系的網絡結構,網狀模型是有向圖結構。其主要特征如下:允許一個以上的節點無父節點,一個節點可以有多個父節點。
在網狀模型中,每個節點表示一個記錄類型,節點之間的連線表示記錄類型間的聯系,從一個節點到另一個節點用有向線段表示,箭頭指向“一對多”聯系的“多”方。
網狀模型是比層次模型更具有普遍性的數據結構,層次模型是網狀模型的特例。圖1-18是兩個簡單的網狀模型的例子。

圖1-18
1.3.4 關系模型
盡管網狀數據模型比層次模型更具有普遍性,由于其結構比較復雜,所以不利于應用程序的實現,操作上也有很多不便。為此,新的數椐模型——關系模型便應運而生。目前,主流數據庫大都是基于關系模型的數據庫系統的。
關系模型(Relational Model)中的“關系”是有特定含義的。一般來說,任何數據模型都描述一定數據之間的關系。層次模型描述數據之間的從屬層次關系,網狀模型描述數據之間的多種從屬網狀關系。關系模型中的“關系”雖然也適用于這種一般的理解,但又特指那種具有相關性而非從屬性的按照某種平行序列排列的數據集合關系。關系模型用“二維表”表示事物間的聯系。
關系模型的數據結構是一種二維表格結構,現實世界的實體與實體之間的聯系在關系模型中均用二維表格來表示,如圖1-19所示。

圖1-19
1.3.5 面向對象模型
面向對象的概念最初出現在程序設計方法中,由于其優點突出,便于描述復雜的客觀現實,因此迅速滲透到計算機科學領域的眾多分支。面向對象模型是面向對象概念與數據庫技術相結合的產物,用于支持非傳統應用領域對數據模型提出的新要求。
面向對象模型(Object Oriented Model)最基本的概念是對象(Object)和類(Class)。在面向對象模型中,對象是指客觀的某一事物,對對象的描述具有整體性、完整性,對象不僅包含描述它的數據,而且包含對它進行操作的方法的定義,對象的外部特征與行為是封裝在一起的。其中,對象的狀態是該對象屬性集,對象的行為是在對象狀態上操作的方法集。共享同一屬性集和方法集的所有對象構成了類。
面向對象模型是用“面向對象”的觀點來描述客觀事物的邏輯組織、對象間聯系和約束的模型,能完整地描述現實世界的數據結構,具有豐富的表達能力。由于該模型相對比較復雜,涉及的知識比較多,因此尚未達到關系模型的普及程度。
綜上所述,有了數據模型,我們就可以在數據庫中用數據模型這個工具來抽象、表達和處理現實世界中的事物及事物間的關聯關系。
數據模型是數據庫系統設計的核心,規范了數據庫中數據的組織形式,表示了數據與數據之間的聯系。數據模型的好壞直接影響數據庫的性能。
任何數據模型都描述一定數據之間的關系。層次模型描述數據之間的從屬層次關系,網狀模型描述數據之間的多種從屬的網狀關系,關系模型描述非從屬性平行數據之間的集合關系,面向對象模型描述數據對象之間的關聯關系。
層次模型和網狀模型是早期的數據模型,現已逐漸退出市場。由于關系模型有更簡單、靈活的特點,因此目前流行的數據庫軟件大多使用關系模型。但是,隨著信息的大量傳播,現實生活中有著許多更復雜的數據結構和應用領域,對這些復雜數據的處理,使用關系模型來描述也會顯得較為困難,因此面向對象模型是正在發展中的、具有廣泛應用開發價值的模型。
- 從0到1:數據分析師養成寶典
- Visual Studio 2015 Cookbook(Second Edition)
- 圖解機器學習算法
- 商業分析思維與實踐:用數據分析解決商業問題
- Neural Network Programming with TensorFlow
- 深度剖析Hadoop HDFS
- 白話大數據與機器學習
- 淘寶、天貓電商數據分析與挖掘實戰(第2版)
- Instant Autodesk AutoCAD 2014 Customization with .NET
- SAS金融數據挖掘與建模:系統方法與案例解析
- Web Services Testing with soapUI
- 智慧城市中的大數據分析技術
- Internet of Things with Python
- SQL Server 2008寶典(第2版)
- Node.js High Performance