官术网_书友最值得收藏!

2.1 數據和數據模型

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

2.1.1 數據與信息

在介紹數據模型前,先來了解數據與信息的關系。第1章1.2小節已經介紹了數據的概念,說明數據是數據庫中存儲的基本對象。為了了解世界、研究世界和交流信息,人們需要描述各種事物。用自然語言描述雖然很直接,但過于煩瑣,不便于形式化,而且也不利于用計算機來表達。為此,人們常常只抽取那些感興趣的事物特征或屬性來描述事物。例如,一名學生可以用信息(張三,201412101,男,河北,計1401,軟件工程)描述,這樣的一行數據稱為一條記錄。單看這行數據不一定能準確知道其含義,但對其進行如下解釋:張三的學號是201412101,他是計1401班的男生,河北生源,軟件工程專業,其內容就是確定的。我們將描述事物的符號記錄稱為數據,將從數據中獲得的有意義的內容稱為信息。數據有一定的格式,如姓名是長度不超過4個漢字的字符串(假設學生的姓名都不超過4個漢字),性別是一個漢字的字符。這些格式的規定是數據的語法,而數據的含義是數據的語義。因此,數據是信息存在的一種形式,只有通過解釋或處理才能成為有用的信息。

一般來說,數據庫中的數據具有靜態特征和動態特征兩個方面。

① 靜態特征。數據的靜態特征包括數據的基本結構、數據間的聯系以及對數據取值范圍的約束。例如,1.2.1小節中給出的學生管理的例子。學生基本信息包含學號、姓名、性別、出生日期、聯系電話、所在系、專業、班號,這些都是學生具有的基本性質,是學生數據的基本結構。學生選課信息包括學號、課程號和考試成績等,這些是學生選課的基本性質。但學生選課信息中的學號與學生基本信息中的學號是有一定關聯的,即學生選課信息中的“學號”能取的值應在學生基本信息中的“學號”取值范圍內,因為只有這樣,學生選課信息中描述的學生選課情況才是有意義的(我們不會記錄不存在的學生的選課情況),這就是數據之間的聯系。最后我們看數據取值范圍的約束。我們知道人的性別的取值只能是“男”或“女”、課程的學分一般是大于0的整數值、學生的考試成績一般在0~100分等,這些都是對某個列的數據取值范圍進行的限制,目的是在數據庫中存儲正確的、有意義的數據。這就是對數據取值范圍的約束。

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

一般將對數據的靜態特征和動態特征的描述稱為數據模型三要素,即在描述數據時要包括數據的基本結構、數據的約束條件(這兩個屬于靜態特征)和定義在數據上的操作(屬于動態特征)三個方面。

2.1.2 數據模型

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

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

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

在數據庫領域中,數據模型用于表達現實世界中的對象,即將現實世界中雜亂的信息用一種規范的、易于處理的方式表達出來。而且這種數據模型既要面向現實世界(表達現實世界信息),同時又要面向機器世界(因為要在機器上實現出來),因此一般要求數據模型滿足三個方面的要求。

第一,能夠真實地模擬現實世界。因為數據模型是抽象現實世界對象信息,經過整理、加工,成為一種規范的模型。但構建模型的目的是為了真實、形象地表達現實世界情況。

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

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

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

數據模型實際上是模型化數據和信息的工具。根據模型應用的不同目的,可以將模型分為兩大類,它們分別屬于兩個不同的層次。

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

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

圖2-1 從現實世界到機器世界的過程

主站蜘蛛池模板: 湾仔区| 望奎县| 古蔺县| 塔城市| 万年县| 滁州市| 汉沽区| 黔江区| 霍林郭勒市| 碌曲县| 比如县| 崇信县| 师宗县| 黔西县| 定结县| 平顶山市| 瑞金市| 泽库县| 郴州市| 嘉定区| 自贡市| 高阳县| 灵宝市| 阿图什市| 阜康市| 德清县| 吉安市| 建始县| 正宁县| 蒲城县| 镇安县| 个旧市| 西藏| 南华县| 嘉善县| 东城区| 洛扎县| 吴江市| 博野县| 邵阳市| 栾川县|