Ø 邏輯模型是對客觀事物及其聯繫的數據描述,包括網狀模型、層次模型、關係模型和麪向對象模型等,它是從計算機系統觀方面來進行建模,主要用於DBMS的實現。數據庫
Ø 概念模型又稱信息模型,是從用戶觀方面來對數據和信息進行建模的結果,主要用於數據庫的設計。安全
Ø 物理模型是對數據最底層的抽象,用於描述數據在計算機系統內部的表示方式和存取方法,其實現由DBMS完成。網絡
數據模型的兩大主要功能是用於描述數據及其關聯。它包含三個基本要素,即數據結構、數據操做和數據的約束條件。數據結構
定義:用於描述數據的靜態特性,它是所研究對象類型的集合。post
分類:大數據
Ø 數據描述對象spa
• 定義:用於描述數據的性質、內容和類型等相關的對象操作系統
• 指出對象所包含的項,並對項進行命名,指出項的數據類型和取值範圍等。設計
Ø 數據關係描述對象對象
• 定義:是用於描述數據間關係信息的對象
• 指明各類不一樣對象類型之間的關係及關係的性質,並對這些關係進行命名。
定義:用於對數據動態特性的描述,它是對數據庫中各類對象類型的實例容許執行的全部操做及相關操做規則的集合。
分類:
Ø 查詢
Ø 更新
• 更新操做又包括插入、刪除和修改。
在數據模型中,要明肯定義操做的各項屬性,如操做符、操做規則以及實現操做的語言等。
數據的約束條件是一組完整性規則的集合。完整性規則是指既定的數據模型中數據及其關係所具備的制約性規則和依存性規則。這些規則是經過限定符合數據模型的數據庫狀態及其變化的方法來保證數據的正確性、有效性和相容性。
數據結構是基礎,它肯定着數據模型的性質。
數據操做是關鍵,它肯定着數據模型的動態特性。
約束條件主要起輔助做用。
四種主要的邏輯模型
以樹狀層次結構組織數據,它的數據結構是根樹
特色:
Ø有且僅有一個節點沒有父節點,這個節點就是根樹的根節點。
Ø除了根節點外,其餘節點有且僅有一個父節點,但可能由0個或者多個子節點。
在層次模型中,具備相同父節點的子節點稱爲兄弟節點,沒有子節點的節點稱爲葉節點。
在根樹的層次結構中,每一個節點表明一個實體型。但因爲層次模型中的實體型是用記錄型來表示,因此根樹中的每一個節點其實是表明着一個記錄型。因爲每一個記錄型節點有且僅有一個父節點(根節點除外),因此只要每一個節點指出它的父節點,就能夠表示出層次模型的數據結構。若是要訪問某一個記錄型節點,則能夠運用相關的根樹遍歷方法從根節點開始查找該節點,而後對其訪問。
【例子】 一個學校包含多個學院,一個學院又包含多個系和研究所等。這樣,學校、學院、系和研究所等實體很是天然地構成了現實世界中的層次關係。層次模型正是爲了知足描述這種層次關係的須要而產生的。因此,它的表達方式天然、直觀,可是其缺點也是明顯。
下圖所示爲某學校按層次模型組織的數據示例。
某學校按層次模型組織的數據示例
層次模型缺點:
• 處理效率低
Ø 這是由於層次模型的數據結構是一種根樹結構,對任何節點的訪問都必須從根節點開始。這使得對底層節點的訪問效率變低,而且難以進行反向查詢。
• 不易進行更新操做
Ø 更新操做包括插入、修改和刪除等操做。對某一個樹節點進行這種更新操做時,都有可能致使整棵根樹大面積的變更。對大數據集來講,這但是一個沉重。
• 安全性很差
Ø 這主要體如今,當刪除一個節點時,則它的子節點和孫子節點都將被刪除。因此,必須慎用刪除操做。
• 數據獨立性較差
Ø 當用層次命令操做數據的時候,它要求用戶瞭解數據的物理結構,並須要顯式地說明存取途徑。
網狀模型:每個數據用一個節點表示,每一個節點與其餘節點都有聯繫,這樣,數據庫中的全部數據節點就構成了一個複雜的網絡。圖1.3所示爲按網狀模型組織的數據示例。
圖1.3 按網狀模型組織的數據示例
網狀模型的數據結構是網狀結構。網狀模型反映着現實世界中實體間更爲複雜的聯繫。由如下特色能夠看出,節點間沒有明確的從屬關係,一個節點能夠與其它多個節點有聯繫。
特色
Ø 容許存在一個以上的節點沒有父節點。
Ø 節點能夠有多餘一個的父節點。
缺點:
Ø 因爲在使用網狀模型時,用戶必須熟悉數據的邏輯結構,因此結構的複雜性增長了用戶查詢和定位的難度。
Ø 不支持對於層次結構的表達等。
Ø 與層次模型相似,網狀結構中的每一個節點表明一個實體型,而這種實體型是用記錄型來表示。與層次結構不一樣的是:在層次結構中有且僅有一個根節點,而在網狀結構中則容許同時存在多個「根節點」;在層次結構中每一個節點有且僅有一個父節點(根節點除外),而在網狀結構中則容許一個節點同時有多個「父節點」。
Ø 這種結構上的差別,也致使了節點對應的記錄型結構的變化。網狀模型中節點間聯繫的實現必須由節點同時指出其父節點和子節點的方法來完成。而在層次模型中,每一個節點只需指定其父節點便可(根節點除外)。也正是因爲這種差別的存在,使得網狀模型在性質和功能上發生了重要的改變。這主要體如今:網狀模型比層次模型具備更大的靈活性和更強的數據建模能力。
【例子】 圖1.8表示了學生A、B和課程C、D、E之間的一種選修聯繫的網狀結構圖。
對於小數據量而言,層次模型和網狀模型的缺點可能不太明顯,可是看成用於大數據量時,其缺點就顯得很是突出。因此,這兩種模型不適合用於當今以處理海量數據爲特徵的數據處理任務中。目前,它們基本上退出了市場,取而代之的是關係模型。
關係模型:以二維表格(關係表)的形式組織數據庫中的數據
關係模型是當今最爲流行的一種數據模型。在關係模型中,實體間的聯繫是經過二維關係(簡稱關係)來定義,其數據結構就是二維關係。每一個一種二維關係均可以用一張二維表來表示,表達直觀、明瞭。因此,不少時候是把二維表和關係直接等同起來,簡稱爲(二維)關係表。關係模型就是若干張關係表的集合。
例如,在學生成績管理系統所涉及的學生、課程和成績三個表中。學生表涉及的主要信息有學號、姓名、性別、出生時間、專業、總學分、備註。課程表涉及的主要信息有課程號、課程名、開課學期、學時和學分。成績表涉及的主要信息有學號、課程號和成績。表1.一、表1.2和表1.3分別描述了學生成績管理系統中學生、課程和成績這三個表的部分數據。
表1.1 學生表
學生、課程、成績,三個對象
表多是實體多是多對多關係
表1.2 課程表
表1.3 成績表
例如,表1.1中的「學號」可惟一標識每個學生,表1.2中的「課程號」可惟一標識每一門課。表1.3中的「學號」和「課程號」可惟一標識每個學生一門課程的成績。
有時,一個表可能有多個碼,好比表1.1中,姓名不容許重名,則「學號」、「姓名」均是學生信息表碼。對於每個關係表,一般可指定一個碼爲「主碼」,在關係模式中,通常用下劃線標出主碼。
設表1.1的名字爲XSB,關係模式可分別表示爲XSB(學號,姓名,性別,出生時間,專業,總學分,備註)。
設表1.2的名字爲KCB,關係模式可分別表示爲KCB(課程號,課程名,開課學期,學時,學分)。
設表1.3的名字爲CJB,關係模式可分別表示爲CJB(學號,課程號,成績,學分)。
Ø 關係:一張二維表。
Ø 記錄(或元組):關係表中的一行。
Ø 字段(或屬性):關係表中的一列。
Ø 域:即字段的值域,也就是字段的取值範圍。
Ø 數據項(或份量):某一個記錄中的一個字段值。
Ø 主關鍵字段(或主碼):簡稱主鍵,是關係表中一個或者多個字段的集合,這些記錄的值可以惟一標識每個記錄。
Ø 關係模式:是對關係的一種抽象的描述,其描述格式爲「關係名(字段1,字段2,…,字段n)」,其中「字段1」帶下劃線,表示該字段是主關鍵字段。
• 具備嚴密的數學基礎。關係代數、關係演算等均可以用於對關係模型進行定性或者定量的分析,探討關係的分開和合並及其有關性質等。
• 概念單一化、表達直觀,但又具備較強的數據表達和建模能力。通常來講,一個關係只表達一個主題,若是有多個主題在一塊兒,則須要將它們分開,用多個關係來表示,這就是概念的單一化。
• 關係都已經規範化。即關係要知足必定的規範條件,這使得關係模型表現出特有的一些性質。
Ø 例如,在一個關係中數據項是最基本的數據單位,它不能再進行分解;同一個字段的字段值具備相同的數據類型;各字段的順序是任意,記錄的順序也是任意的,等等。
• 在關係模型中,對數據的操做是集合操做,即操做的對象是記錄的集合,操做所產生的結果也是記錄的集合。這種操做不具備明顯的方向性,無論如何操做,其難度都同樣。而在層次模型和網狀模型中,對數據的操做帶有明顯的方向性,在正反兩個方向上操做的難度徹底不同。
Ø 對複雜問題的建模能力差。在對複雜問題建模時通常都會呈現出錯綜複雜的關係,而關係模型僅限於用二維關係來表示這些複雜關係,沒法用遞歸和嵌套的方式來描述(由於它不容許嵌套記錄和嵌套關係的存在)。因此,在許多時候關係模型顯得力不從心。
Ø 對象語義的表達能力比較差。現實世界中,對象之間的關係每每不只限於量的關係,並且還可能體現語義之間的聯繫,蘊涵着特定的內涵。但關係模型爲了規範化這些關係,可能會強行拆開這種語義聯繫,形成不天然的分解,從而使得在查詢等操做時出現語義不合理的結果。
Ø 可擴充性差。關係模式只支持記錄的集合這一種數據結構,而且數據項不可再分,沒法造成嵌套記錄和嵌套關係,因此它沒法擴充成層次模型或網狀模型。且它不支持抽象數據類型,不能對多種類型數據對象進行管理。
面向對象方法(Object-Oriented Paradigm,簡稱OO)基本出發點就是按照人類認識世界的方法和思惟方式來分析和解決問題。
面向對象模型是由面向對象方法進行建模和表示而造成的數據模型。
面向對象模型的相關理論和方法還不夠成熟,主要是處於理論研究和實驗階段。
從數據模型的建模方法來看,通常是先將現實世界中的問題建模爲信息世界中的概念模型,而後將信息世界中的概念模型轉化爲機器世界中的邏輯模型。
當確認概念模型已經可以充分表達原問題(現實世界中)的時候,再將這種概念模型轉化爲數據庫系統中某一個既定DBMS支持的數據模型,造成機器世界中的邏輯模型。
從現實世界到機器世界的轉換過程能夠用圖1.9來表示。
1.概念
實體是客觀存在的並能夠相互區分的事物。
實體的屬性是指實體所具備的特性。
Ø eg:學生是一個實體,如姓名、性別、成績等是實體的屬性。
碼又稱關鍵字,它是一個或者多個屬性的集合。
Ø eg:學號是學生實體的碼。
屬性的域是指一個屬性的取值範圍。
Ø eg:成績是學生實體的域。
實體型是指用實體名和實體屬性名的集合來共同刻畫同一類實體。
Ø eg:學生(學號,姓名,性別,籍貫,成績)是一個實體型。
實體集就是實體的集合。
聯繫
Ø 定義
• 是指事物之間的關係(現實世界)在信息世界中的反映。
Ø 兩種類型
• 實體內部的聯繫和實體之間的聯繫。
Ø 三種聯繫類型
假設A和B分別表示兩個實體集
• 一對一聯繫記爲(1:1)。
• 一對多聯繫記爲(1:n)。
• 多對多聯繫記爲(m:n)。
當將現實世界中的實際問題轉化爲信息世界中的概念模型時,用什麼來描述這種概念模型呢?
當在數據庫理論中,一般用E-R圖來描述概念模型 ,它提供了表示實體型、屬性和聯繫的方法。
1.實體及其屬性的表示
【例子】 對於一個實體型——學生(學號,姓名,成績),其E-R圖如圖1.10所示。
注意:實體圖ER圖能夠分開
2.實體型之間聯繫的表示
兩個實體型之間聯繫的表示
多個實體型(三個或三個以上)之間聯繫的表示
Ø 三個實體型A、B、C之間聯繫表示爲(m:n:o),其中m,n,o > 0。
【例子】 對於供應商、倉庫和零件,因爲一個供應商能夠提供多種零件並存放在不一樣倉庫中,而一種零件也能夠由多個供應商提供並存放在不一樣倉庫中,同時一個倉庫也能夠存放不一樣供應商提供的多種零件。因此供應商、倉庫和零件之間的聯繫是多對多聯繫,其E-R圖能夠用圖1.12表示。
3.實體型內部聯繫的表示
同一個實體型內部實體的三種聯繫對應的E-R圖,分別如圖1.13的(a)、(b)和(c)所示。
【例子】 職工實體型中的實體具備領導與被領導的聯繫,這種聯繫是一對多聯繫,能夠用圖1.14表示。
4.聯繫屬性的表示
聯繫的屬性的表示方法與實體的相似
Ø 對於供應商和倉庫之間的聯繫(庫存),其屬性(庫存量),能夠表示如圖1.15所示。
總結
利用實體、屬性和聯繫及其之間關係的表示方法能夠將現實世界中的複雜問題抽象成爲信息世界中的概念模型。
概念模型一般是用E-R圖表示的,E-R圖的設計過程就是對問題進行抽象和建模的過程。
數據的物理模型指數據的存儲結構,如對數據庫物理文件、索引文件的組織方式、文件的存取路徑,內存的管理等。物理模型對用戶是不可見的,它不只與數據庫管理系統有關,還與操做系統甚至硬件有關。