- 電子商務數據庫技術(第3版)
- 潘郁
- 2671字
- 2019-12-11 15:42:18
2.2.1 基本概念
(1)數據模型的內容。
數據模型是數據庫系統的數學形式框架,是用來描述數據的一組概念和定義,包括以下幾個方面的內容。
①數據的靜態特征,包括對數據結構和數據間聯系的描述。
②數據的動態特征,是一組定義在數據上的操作,包括操作的含義、操作符、運算規則及其語言等。
③數據的完整性約束,這是一組規則,數據庫中的數據必須滿足這組規則。
(2)不同數據模型的特征。
數據庫系統的數據模型有很多種,大體可分成兩類。一類是面向值的數據模型,如目前用得最多的關系模型。在關系模型中,數據庫的數據被看作是若干關系,關系則被看作是簡單的二維表格。另一類是面向對象模型,這是新一代的數據模型,如語義數據模型和時空數據模型。這一數據模型對現實環境的數據有很強的表現力,是適應計算機應用發展需要的新模型。早先的層次模型和網狀模型用有向圖描述數據及其聯系,它們可歸入不完善的面向對象模型。
不同的數據模型適合不同的應用環境,所以在眾多的數據模型中不存在所謂的最好的數據模型。不同的數據模型在以下幾個方面的特征不同,而正是這些不同決定了數據模型的適用范圍。
①面向對象和面向值。
傳統的關系模型是面向值的數據模型,允許用說明性數據語言;面向對象模型則提供了對象標識,所以被稱為面向對象的。
②冗余處理。
所有的數據都以某種方式幫助用戶避免多次重復存儲同一數據。重復存儲造成了數據冗余,冗余不僅浪費空間,而且可能因為同一數據在一處修改而另一處不變而造成數據的不一致。面向對象模型在數據冗余方面處理得更好。我們可以通過為一個對象建立一份副本,而在其他要用到該對象的地方通過對象標識或指針來指向這個副本。
③多對多聯系的處理。
在網狀模型中這個問題留給了物理設計層解決,而關系模型則禁止多對多聯系。
(3)數據模型的類型。
在實際應用中,為了更好地描述現實世界中的數據特征,常常針對不同的場合或不同的目的采用不同的方法描述數據特征,統稱為數據模型。一般來說數據模型有以下幾種。
①概念數據模型。
概念數據模型是面向數據庫用戶的現實世界的數據模型,與具體的DBMS無關。概念數據模型主要用來描述現實世界的概念化結構,它是數據庫在設計的初始階段擺脫計算機系統及DBMS的具體技術問題,集中精力分析數據、數據間聯系等。概念數據模型必須轉換成邏輯數據模型才能在DBMS中實現。最常用的概念數據模型是E-R(Entity-Relation)模型,它是將現實世界的信息結構轉換成數據庫的數據模型的橋梁。
②邏輯數據模型。
邏輯數據模型是用戶從數據庫所看到的數據模型,是具體的DBMS所支持的數據模型,如網狀模型、層次模型、關系模型和面向對象模型等。邏輯數據模型既要面向用戶,也要面向系統,一般由概念數據模型轉換而來。
③物理數據模型。
物理數據模型是描述數據在存儲介質上的組織方式的數據模型,它不僅與具體的DBMS有關,而且與操作系統和硬件有關。每一種邏輯數據模型在實現時都有對應的物理數據模型,一般來說都由DBMS自動完成物理數據模型的實現工作,設計者則只負責設計索引、聚集等特殊結構。
(1)現實世界。
現實世界是指存在于人腦之外的客觀世界。現實世界是客觀存在的。在現實世界中存在著各種運動著的事物,一個客觀存在并且可以識別的事物稱為個體。個體可以是一個具體的事物,也可以是抽象的概念。每個個體都有自己的特征,這些特征是人們區分個體的根據。一個個體具有多方面的特征,通常選擇人們感興趣以及最能夠表達該個體的若干特征來描述該事物。以單位職工為例,通常選用姓名、年齡、性別、籍貫、部門以及職務等來描述一個職工的特征。
在現實世界里,個體與個體之間存在著聯系,這種聯系是客觀存在的。如職工和部門,職工在部門中就職。事物之間的聯系也是多方面的,人們僅選擇那些感興趣的聯系。
(2)概念世界。
概念世界又稱信息世界,是現實世界在人們頭腦中的反映,是對客觀事物及其聯系的一種抽象描述。概念世界不是現實世界的簡單復制,而要經過選擇、命名、分類等抽象過程產生概念數據模型。概念數據模型是現實世界到機器世界必然經過的中間層次。建立概念數據模型涉及以下幾個術語。
①實體。我們把客觀存在并可以相互區別的事物稱為實體。實體可以是實際事物,也可以是抽象事件,還可以是事物之間的聯系。如一個職工、一個部門屬于實際事物,一次訂貨、借閱若干本圖書、一場考試則是比較抽象的事件。
具有相同類型和相同特征的實體集合稱為實體集。屬性的集合表征一種實體的類型,稱為實體型,如可以用工號、姓名、年齡、性別和部門等屬性來表征“職工”這一實體型。實體型“職工”表示全體職工的整體,并不具體指某個職工。嚴格地說,實體集屬于“型”這一級的概念,對應的實例一級的例子是當前屬于該實體集的所有實體的集合。在討論數據模型時應該用實體集。但為了敘述簡單,有時人們常不加區分簡單地用“實用”。在應該用實體集的地方,從上下文可以理解具體指的是“實體”還是“實體集”。本書也是這樣的。
②屬性。屬性是用來描述實體的某一方面特性的。如職工實體用若干屬性(工號、姓名、性別、出生日期、職務,部門)來描述。屬性的具體取值稱為屬性值,用以描述一個具體實體。如屬性組合(0986,張洋,男,01/06/53,處長,審計部門)在職工花名冊中就表征了一個具體的人。
③實體標識符。如果某個屬性或屬性組合的值能夠唯一地標識出實體集中的每一個實體,則可以選擇該屬性或屬性組合作為實體標識符。例如,“職工號”可以作為實體標識符;而由于可能有重名者存在,“姓名”就不宜作為實體標識符。
④聯系。現實世界中的事物是存在普遍聯系的。這種聯系反映到信息世界里后可以分成兩類,一類是實體內部各屬性之間的聯系,另一類是實體之間的聯系。實體之間的聯系用E-R模型來反映,對于實體內部各個屬性之間的聯系通常在數據庫的規范化過程進行處理。
(3)機器世界。
信息經過加工編碼進入機器世界,機器世界的處理對象是數據。機器世界常用到以下幾個概念。
①記錄。相應于每一實體的數據叫記錄。
②字段。相應于屬性的數據稱為字段,或者叫數據項,又稱數據元素或初等項。
③文件。相應于實體集的叫文件,它是同類記錄的集合。
④記錄型。相應于實體型的為記錄型。
⑤關鍵字。相應于實體標識符的為關鍵字,關鍵字又稱碼。
上述概念的對應關系如下。

實體、屬性與記錄、字段均有型與值之分。如“職工”是一個實體型,“林玫”“王芮”則是實體值。屬性中的性別、年齡是屬性型,而(男,女)(23,30)則分別為性別、年齡的屬性值。記錄型是數據項型的一個有序組;同理,記錄值是數據項值的同一有序組。記錄型是一個框架,只有給它的每個數據項取值后才能得到記錄。