天天看點

《資料庫原理與應用(第3版)》——2.1 資料和資料模型

本節書摘來自華章出版社《資料庫原理與應用(第3版)》一 書中的第2章,第2.1節,作者:何玉潔,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

現實世界的資料是散亂無章的,散亂的資料不利于人們對其進行有效的管理和處理,特别是海量資料。是以,必須把現實世界的資料按照一定的格式組織起來,以友善對其進行操作和使用。資料庫技術也不例外,在用資料庫技術管理資料時,資料被按照一定的格式組織起來,比如二維表結構或者層次結構,以使資料能夠被更高效地管理和處理。本節就對資料和資料模型進行簡單介紹。

在介紹資料模型之前,我們先了解資料與資訊的關系。在1.2節已經介紹了資料的概念,說明資料是資料庫中存儲的基本對象。為了了解世界、研究世界和交流資訊,人們需要描述各種事物。用自然語言來描述雖然很直接,但過于煩瑣,不便于形式化,而且也不利于用計算機來表達。為此,人們常常隻抽取那些感興趣的事物特征或屬性來描述事物。例如,一名學生可以用資訊“(張三,99121,男,1981,計算機系,應用軟體)”描述,這樣的一行資料稱為一條記錄。單看這行資料我們很難準确知道其确切含義,但對其進行解釋:張三是99121班的男學生,1981年出生,計算機系應用軟體專業,其内容就是有意義的。我們将描述事物的符号記錄稱為資料,将從資料中獲得的有意義的内容稱為資訊。資料有一定的格式,如姓名一般是長度不超過4個漢字的字元(假設不包括少數民族的姓名),性别是一個漢字的字元。這些格式的規定是資料的文法,而資料的含義是資料的語義。是以,資料是資訊存在的一種形式,隻有通過解釋或處理才能成為有用的資訊。

一般來說,資料庫中的資料具有靜态特征和動态特征兩個方面。

(1)靜态特征

資料的靜态特征包括資料的基本結構、資料間的聯系以及對資料取值範圍的限制。比如1.2.1節中給出的學生管理的例子。學生基本資訊包含學号、姓名、性别、出生日期、聯系電話、所在系、專業、班号,這些都是學生所具有的基本性質,是學生資料的基本結構。學生選課資訊包括學号、課程号和考試成績等,這些是學生選課的基本性質。但學生選課資訊中的學号與學生基本資訊中的學号是有一定關聯的,即學生選課資訊中的“學号”所能取的值必須在學生基本資訊中“學号”的取值範圍之内,因為隻有這樣,學生選課資訊中所描述的學生選課情況才是有意義的(我們不會記錄不存在的學生的選課情況),這就是資料之間的聯系。最後我們看資料取值範圍的限制。我們知道人的性别一項的取值隻能是“男”或“女”、課程的學分一般是大于0的整數值、學生的考試成績一般在0~100分之間等,這些都是對某個列的資料取值範圍進行的限制,目的是在資料庫中存儲正确的、有意義的資料。這就是對資料取值範圍的限制。

(2)動态特征

資料的動态特征是指對資料可以進行的操作以及操作規則。對資料庫資料的操作主要有查詢資料和更改資料,更改資料一般又包括對資料的插入、删除和更新。

一般将對資料的靜态特征和動态特征的描述稱為資料模型三要素,即在描述資料時要包括資料的基本結構、資料的限制條件(這兩個屬于資料的靜态特征)和定義在資料上的操作(屬于資料的動态特征)三個方面。

對于模型,特别是具體的模型,人們并不陌生。一張地圖、一組建築設計沙盤、一架飛機模型等都是具體的模型。人們可以從模型聯想到現實生活中的事物。計算機中的模型是對事物、對象、過程等客觀系統中感興趣的内容的模拟和抽象表達,是了解系統的思維工具。資料模型(data model)也是一種模型,它是對現實世界資料特征的抽象。

資料庫是企業或部門相關資料的集合,資料庫不僅要反映資料本身的内容,而且要反映資料之間的聯系。由于計算機不可能直接處理現實世界中的具體事物,是以,必須把現實世界中的具體事物轉換成計算機能夠處理的對象。在資料庫中用資料模型這個工具來抽象、表示和處理現實世界中的資料和資訊。

資料庫管理系統是基于某種資料模型對資料進行組織的,是以,了解資料模型的基本概念是學習資料庫知識的基礎。

在資料庫領域中,資料模型用于表達現實世界中的對象,即将現實世界中雜亂的資訊用一種規範的、形象化的方式表達出來。而且這種資料模型既要面向現實世界(表達現實世界資訊),同時又要面向機器世界(因為要在機器上實作出來),是以一般要求資料模型滿足三個方面的要求。

第一,能夠真實地模拟現實世界。因為資料模型是抽象現實世界的對象資訊,經過整理、加工,成為一種規範的模型。但構模組化型的目的是為了真實、形象地表達現實世界情況。

第二,容易被人們了解。因為建構資料模型一般是資料庫設計人員做的事情,而資料庫設計人員往往并不是所建構的業務領域的專家,是以,資料庫設計人員所建構的模型是否正确,是否與現實情況相符,需要由精通業務的使用者來評判。而精通業務的人員往往又不是計算機領域的專家,是以要求所建構的資料模型要形象化,要容易被業務人員了解,以便于他們對模型進行評判。

第三,能夠友善地在計算機上實作。因為對現實世界業務進行設計的最終目的是能夠在計算機上實作出來,用計算機來表達和處理現實世界的業務。是以所建構的模型必須能夠友善地在計算機上實作,否則就沒有任何意義。

用一種模型來同時很好地滿足這三方面的要求在目前是比較困難的,是以在資料庫領域中是針對不同的使用對象和應用目的,采用不同的資料模型來實作。

資料模型實際上是模型化資料和資訊的工具。根據模型應用的不同目的,可以将模型分為兩大類,它們分别屬于兩個不同的層次。

第一類是概念層資料模型,也稱為概念模型或資訊模型,它從資料的應用語義視角來抽取現實世界中有價值的資料并按使用者的觀點來對資料進行模組化。這類模型主要用在資料庫的設計階段,它與具體的資料庫管理系統無關,也與具體的實作方式無關。另一類是組織層資料模型,也稱為組織模型(有時也直接簡稱為資料模型,本書後述凡是稱資料模型的都指的是組織層資料模型),它從資料的組織方式來描述資料。所謂組織層就是指用什麼樣的邏輯結構來組織資料。資料庫發展到現在主要采用了如下幾種組織方式(組織模型):層次模型(用樹形結構組織資料)、網狀模型(用圖形結構組織資料)、關系模型(用簡單二維表結構組織資料)以及對象-關系模型(用複雜的表格以及其他結構組織資料)。組織層資料模型主要是從計算機系統的觀點對資料進行模組化,它與所使用的資料庫管理系統的種類有關,因為不同的資料庫管理系統支援的資料模型可以不同。組織層資料模型主要用于dbms的實作。

為了把現實世界中的具體事物抽象、組織為某一具體dbms支援的資料模型,人們通常首先将現實世界抽象為資訊世界,然後再将資訊世界轉換為機器世界。即,首先把現實世界中的客觀對象抽象為某一種描述資訊的模型,這種模型并不依賴于具體的計算機系統,而且也不與具體的dbms有關,而是概念意義上的模型,也就是我們前面所說的概念層資料模型;然後再把概念層資料模型轉換為具體的dbms支援的資料模型,也就是組織層資料模型(比如關系資料庫的二維表)。注意從現實世界到概念層資料模型使用的是“抽象”技術,從概念層資料模型到組織層資料模型使用的是“轉換”技術,也就是說先有概念模型,然後再到組織模型。從概念模型到組織模型的轉換是比較直接和簡單的,我們将在第10章資料庫設計中詳細介紹轉換方法。這個過程如圖2-1所示。