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

1.2 數(shù)據(jù)庫技術的相關概念

數(shù)據(jù)庫技術涉及的基本概念有:數(shù)據(jù)、信息、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應用程序、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)模型、數(shù)據(jù)庫模式以及數(shù)據(jù)庫語言等。下面分別介紹這幾個概念。

1.2.1 數(shù)據(jù)和信息

1.數(shù)據(jù)和信息的概念

日常生活中,大家將數(shù)據(jù)和信息混為一談,認為數(shù)據(jù)就是信息,信息就是數(shù)據(jù)。這個觀點是錯誤的,信息和數(shù)據(jù)根本不是一回事。數(shù)據(jù)和信息的區(qū)別,可以用一句話來概括:數(shù)據(jù)是信息的形式,信息是數(shù)據(jù)的內容。

(1)數(shù)據(jù)的概念

如果將客觀存在并且可以相互區(qū)分的事物稱為實體,那么數(shù)據(jù)是對實體特性的一種記載,這種記載通常表現(xiàn)為符號的記錄。

純粹的數(shù)據(jù)沒有任何意義,需要經(jīng)過解釋才能明確其表達的含義。例如21,當解釋其代表人的年齡時就是21歲;當解釋其代表商品價格時,就是21元。

(2)信息的概念

將從數(shù)據(jù)中獲得的有意義的內容稱為信息。信息和解釋不可分,數(shù)據(jù)的解釋是對數(shù)據(jù)含義的說明,數(shù)據(jù)的含義稱為數(shù)據(jù)的語義,也就是數(shù)據(jù)的信息。

例如,對于(姜笑楓,197101,1989,計算機系)這樣一個數(shù)據(jù)集合,其語義可以解釋為:姜笑楓,1971年1月生,1989年考入計算機系;還可以解釋為:姜笑楓,工號197101,1989年任職于計算機系。

2.數(shù)據(jù)的靜態(tài)特征

數(shù)據(jù)的靜態(tài)特征指的是數(shù)據(jù)的基本結構、數(shù)據(jù)間的聯(lián)系以及數(shù)據(jù)的約束。對于學生成績而言,可以用這三個特征來描述學生成績信息。

(1)數(shù)據(jù)的基本結構

對于每一個學生的成績,既可以用{學號、姓名、性別、專業(yè)、班級、數(shù)學、外語、計算機}這樣的一個集合結構來描述;也可以用{學號、姓名、性別、專業(yè)、班級}以及{學號、數(shù)學、外語、計算機}這樣的兩個集合結構來描述。

(2)數(shù)據(jù)間的聯(lián)系

如果用{學號、姓名、性別、專業(yè)、班級}以及{學號、數(shù)學、外語、計算機}這樣的兩個集合結構來描述學生的成績,那么第一個集合結構的學號與第二個集合結構的學號必然存在著某種聯(lián)系。

(3)數(shù)據(jù)的約束

數(shù)據(jù)反映的是客觀對象的信息,它必然要遵循某些約束。例如對于百分制的課程成績,學生的成績必然在0~100分之間;又如,學生的性別只能取“男”或“女”這兩個值。

3.數(shù)據(jù)的動態(tài)特征

數(shù)據(jù)的動態(tài)特征包括對數(shù)據(jù)可以進行的操作以及操作規(guī)則。對數(shù)據(jù)庫技術而言,數(shù)據(jù)的操作主要有查詢和更新兩大類。查詢最常用,例如查詢成績不及格的學生名單;更新又包括插入、刪除和修改三項操作,對于一般的數(shù)據(jù)庫應用而言,也是必不可少的。

1.2.2 數(shù)據(jù)庫

數(shù)據(jù)庫(database),顧名思義,就是存放數(shù)據(jù)的倉庫,只是這個倉庫是在計算機存儲器上建立的,而且倉庫中的數(shù)據(jù)按一定的格式組織并長期存儲,提供給用戶共同使用。

嚴格地講,數(shù)據(jù)庫是長期存儲在計算機外部存儲器上的有組織的、可共享的數(shù)據(jù)集合。有組織的數(shù)據(jù)集合意味著數(shù)據(jù)的結構化和關聯(lián)化:結構化表現(xiàn)為數(shù)據(jù)打包成一個個既定結構的數(shù)據(jù)對象;關聯(lián)化表現(xiàn)在數(shù)據(jù)對象之間的互連性。

圖1-2描述了數(shù)據(jù)庫“銷售訂單”的數(shù)據(jù)對象及其聯(lián)系:訂單數(shù)據(jù)庫包含sllers、product、Customer、order和orderdetail 5個數(shù)據(jù)對象;這5個數(shù)據(jù)對象都有很多屬性,例如數(shù)據(jù)對象product包括商品編號、商品名稱、商品價格、商品庫存、商品簡介和暢銷否6個屬性;這5個數(shù)據(jù)對象之間都通過公共屬性相互關聯(lián),例如數(shù)據(jù)對象sller和數(shù)據(jù)對象order通過銷售員編號這個公共屬性相互關聯(lián)。

圖1-2 數(shù)據(jù)庫的數(shù)據(jù)結構

數(shù)據(jù)的組織總是基于某種數(shù)據(jù)模型的,科學組織的數(shù)據(jù)可以極大地提高數(shù)據(jù)的共享度、檢索速度和管理效率。數(shù)據(jù)模型這一內容將在1.2.6小節(jié)中介紹。

1.2.3 數(shù)據(jù)庫管理系統(tǒng)

1.數(shù)據(jù)庫管理系統(tǒng)的概念

數(shù)據(jù)庫管理系統(tǒng)(database management system)是一種管理和操縱數(shù)據(jù)庫的軟件,英文縮寫為DBMS,其主要功能是科學地組織和存儲數(shù)據(jù)、高效地獲取和維護數(shù)據(jù),在數(shù)據(jù)庫系統(tǒng)中起核心的作用,是用戶程序與數(shù)據(jù)庫中數(shù)據(jù)的接口。

由于DBMS功能復雜,一般由軟件供應商開發(fā)并授權用戶使用。例如Microsoft公司的Access就是微軟公司開發(fā)的一個DBMS,其他商用的DBMS產品還有Microsoft公司的Visual FoxPro、SQL Server、Oracle公司的Oracle、IBM公司的DB2等。盡管還有其他DBMS產品,但這5種DBMS幾乎囊括了所有的市場份額。

2.數(shù)據(jù)庫管理系統(tǒng)的功能

DBMS 的功能主要有:創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、創(chuàng)建其他支持對象(如索引等),讀取數(shù)據(jù)庫數(shù)據(jù),插入、更新或刪除數(shù)據(jù)庫數(shù)據(jù),維護數(shù)據(jù)庫結構,定義和執(zhí)行約束規(guī)則,并發(fā)控制,提供數(shù)據(jù)安全保障等。

(1)DBMS的首要功能是創(chuàng)建數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫中的表和其他輔助結構。例如,創(chuàng)建圖1-3所示的數(shù)據(jù)庫“訂單”,創(chuàng)建數(shù)據(jù)庫中的數(shù)據(jù)表order和product。為了提高檢索速度,還可以給數(shù)據(jù)表創(chuàng)建索引等支持結構。

(2)DBMS的第二個功能是讀取和修改數(shù)據(jù)庫中的數(shù)據(jù)。為此,DBMS接收用戶或應用程序的請求,并將這些請求轉化為對數(shù)據(jù)庫文件的操作。DBMS的第二個功能還包括數(shù)據(jù)庫結構的維護。例如,根據(jù)業(yè)務變化修改表的結構或改變相關輔助對象的屬性等。

(3)DBMS的第三個功能是約束規(guī)則的定義和檢查。例如,在圖1-2所示的訂單數(shù)據(jù)庫中,如果用戶在order表中提交一張訂單,訂單中有一個商品的商品編號在product表中沒有相應的數(shù)據(jù),就會導致錯誤。為了防止這種錯誤的發(fā)生,用戶可以用DBMS制定如下的數(shù)據(jù)約束規(guī)則:order表中商品編號的值必須引用 product 表中商品編號的值,對于 product 表中不存在的商品編號, DBMS應該拒絕含有這樣商品編號的訂單的插入或更新請求。

(4)DBMS的第四個功能是并發(fā)控制,它可以保證一個用戶的工作不會干擾另一個用戶的工作。另外DBMS具有安全保證功能,它可以保證只有授權用戶能對數(shù)據(jù)庫完成得到授權的活動,例如防止用戶查看特定數(shù)據(jù),又如限制用戶操作在指定的范圍內。

一般來說,DBMS還應該具有備份數(shù)據(jù)庫和恢復數(shù)據(jù)庫的功能。數(shù)據(jù)庫是數(shù)據(jù)的集中倉庫,是具有相當價值的重要資源,必須采取有效步驟,確保在軟硬件故障或自然災害等事件中沒有數(shù)據(jù)丟失。

1.2.4 數(shù)據(jù)庫應用程序

為了提高數(shù)據(jù)庫的易用性,普通用戶對數(shù)據(jù)庫的管理和訪問一般通過數(shù)據(jù)庫應用程序作為媒介,而不是直接使用DBMS命令。現(xiàn)在的DBMS都給用戶提供了很多應用程序開發(fā)工具,如報表設計器、窗體設計器、查詢設計器等,它們?yōu)閿?shù)據(jù)庫應用程序的開發(fā)和使用提供了良好的環(huán)境和幫助,可提高生產率20~100倍。

數(shù)據(jù)庫應用程序的功能一般包括:窗體的創(chuàng)建和處理、查詢的創(chuàng)建和處理、報表的創(chuàng)建和處理等。當然,數(shù)據(jù)庫應用程序的上述功能都是圍繞著特定應用的業(yè)務邏輯展開的。

1.2.5 數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫系統(tǒng)是在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),它是以計算機平臺為基礎,動態(tài)地組織、存儲、管理和分析處理數(shù)據(jù)庫數(shù)據(jù)的軟硬件系統(tǒng)。數(shù)據(jù)庫系統(tǒng)的組成如圖1-3所示,它包括五個部分:計算機平臺、用戶、數(shù)據(jù)庫應用程序、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫。

圖1-3 數(shù)據(jù)庫系統(tǒng)的組成

在圖1-3中,最右邊的組成部分是數(shù)據(jù)庫,它是描述實體的數(shù)據(jù)對象的集合。右數(shù)第二個組成部分是數(shù)據(jù)庫管理系統(tǒng),一般使用它的英文縮寫DBMS,這是一個計算機系統(tǒng)軟件,一般由軟件巨頭開發(fā)并授權用戶使用,它的主要功能是數(shù)據(jù)庫的創(chuàng)建、管理和維護。

數(shù)據(jù)庫應用程序是用戶和DBMS間的媒介程序,它通過向DBMS發(fā)送請求命令來更新數(shù)據(jù)庫中的數(shù)據(jù),也可以通過DBMS檢索數(shù)據(jù)庫中的數(shù)據(jù),并以友好的形式向用戶顯示結果。數(shù)據(jù)庫應用程序可以由軟件供應商提供,也可以由數(shù)據(jù)庫用戶編寫。

用戶是數(shù)據(jù)庫系統(tǒng)的第四個組成部分,他們一般通過數(shù)據(jù)庫應用程序進行事務管理,當然高級用戶也可以直接通過DBMS操縱和管理數(shù)據(jù)庫。

1.2.6 數(shù)據(jù)模型

對于模型,人們并不陌生。日常生活中所說的模型通常是指某個真實事物按比例縮小的版本,例如航模飛機、地圖等,它們與所模擬的真實事物在結構上是相似的,因此,模型是對現(xiàn)實世界中研究對象的模擬和抽象。在日常生活中,模型的一個重要的作用是在制造真實事物之前,花費最少的代價,利用模型對研究對象的結構、性能等進行實驗和評估,以降低真實對象的制造風險。

1.數(shù)據(jù)模型的概念

數(shù)據(jù)模型是一種用來表達數(shù)據(jù)的工具模型。在數(shù)據(jù)庫領域,數(shù)據(jù)模型用于表達現(xiàn)實世界中的對象及其聯(lián)系,即將現(xiàn)實世界中雜亂的信息用一種規(guī)范的、形象化的方式表達出來。

前面說過,數(shù)據(jù)呈現(xiàn)結構、約束和操作三類特征,相應地,在計算機中表示數(shù)據(jù)的數(shù)據(jù)模型應該能夠全面地描述數(shù)據(jù)的數(shù)據(jù)結構、數(shù)據(jù)約束和數(shù)據(jù)操作。盡管數(shù)據(jù)模型具有結構、約束和操作三方面的要素,但數(shù)據(jù)模型的結構是最核心的,很多情況下提到的數(shù)據(jù)模型,指的就是數(shù)據(jù)對象的數(shù)據(jù)結構。

數(shù)據(jù)模型既要面向現(xiàn)實世界,又要面向機器世界,因此需滿足三個要求:①能夠真實地模擬現(xiàn)實世界;②容易被人們理解;③能夠方便地在計算機上實現(xiàn)。

在數(shù)據(jù)庫領域建立數(shù)據(jù)模型的目的有兩個:一個是提高數(shù)據(jù)庫的可研究性,另一個是規(guī)避風險,將真實數(shù)據(jù)的組織、管理和分析處理風險掌握在可控范圍中。

2.數(shù)據(jù)模型的層次

數(shù)據(jù)描述涉及三個世界:一是現(xiàn)實世界,這是存在于人們頭腦之外的客觀世界;二是信息世界,這是現(xiàn)實世界在人們頭腦中的反映形式;三是機器世界,這是信息世界的信息在機器世界中的數(shù)據(jù)組織形式。

數(shù)據(jù)模型是對數(shù)據(jù)的抽象和模擬,根據(jù)不同應用目的,可以將數(shù)據(jù)模型分為三大類:第一類是概念層數(shù)據(jù)模型,第二類是組織層數(shù)據(jù)模型,第三類是物理層數(shù)據(jù)模型。

(1)概念層數(shù)據(jù)模型

概念層數(shù)據(jù)模型,即概念模型,它按用戶的觀點對現(xiàn)實世界的論域建立模型。概念模型更關注數(shù)據(jù)的語義,是現(xiàn)實世界的論域在人腦中的模型,屬于信息世界的建模。概念模型是面向用戶和現(xiàn)實世界的模型,與具體的DBMS無關,不依賴于數(shù)據(jù)的組織結構。

常用的概念層數(shù)據(jù)模型有實體-聯(lián)系模型、語義對象模型等。本書主要應用實體-聯(lián)系模型進行概念層次的數(shù)據(jù)建模,這個內容在1.5節(jié)中有詳細的介紹。

(2)組織層數(shù)據(jù)模型

數(shù)據(jù)庫中的數(shù)據(jù)是按一定的邏輯結構存放的,這種結構是用組織層數(shù)據(jù)模型來表示的。組織層數(shù)據(jù)模型是基于機器世界的數(shù)據(jù)庫系統(tǒng)視角來建模的,用于DBMS實現(xiàn),因此與具體的DBMS有很大關系。組織層數(shù)據(jù)模型,在數(shù)據(jù)庫的設計中,有著非常重要的作用,直接影響數(shù)據(jù)庫中數(shù)據(jù)的質量和效率。請注意:如果沒有特別聲明,下文提到數(shù)據(jù)模型,指的都是組織層數(shù)據(jù)模型。

(3)物理層數(shù)據(jù)模型

物理層數(shù)據(jù)模型是對數(shù)據(jù)最底層的抽象,描述數(shù)據(jù)在計算機系統(tǒng)內部的表示方式和存取方法,在計算機外部存儲設備上的存儲方式和存取方法。

3.組織層數(shù)據(jù)模型

任何一個數(shù)據(jù)庫管理系統(tǒng)都是基于組織層次的某種數(shù)據(jù)模型的,數(shù)據(jù)庫技術的發(fā)展就是沿著組織層數(shù)據(jù)模型的主線展開的。迄今為止,比較流行的組織層數(shù)據(jù)模型有三種:層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型以及關系數(shù)據(jù)模型。

(1)層次數(shù)據(jù)模型

在層次數(shù)據(jù)模型(hierarchical data model)的數(shù)據(jù)集合中,各數(shù)據(jù)對象之間是一種依次的一對一的或一對多的聯(lián)系。在這種模型中,層次清楚,可沿層次路徑存取和訪問各個數(shù)據(jù)對象。層次結構猶如一棵倒置的樹,因而也稱其為樹形結構。圖1-4所示即為層次數(shù)據(jù)模型的數(shù)據(jù)集合的一個例子。

層次數(shù)據(jù)模型的特點如下。

? 有且僅有一個根結點,它是一個無父結點的結點。

? 除根結點以外的所有其他結點有且僅有一個父結點。

? 同層次的結點之間沒有聯(lián)系。

層次數(shù)據(jù)模型的優(yōu)點是結構簡單、層次清晰,并且易于實現(xiàn)。適宜描述類似于行政編制、家族關系及書目章節(jié)等信息載體的數(shù)據(jù)結構。但用層次模型不能直接表示多對多的聯(lián)系,因而難以實現(xiàn)對復雜數(shù)據(jù)關系的描述。

(2)網(wǎng)狀數(shù)據(jù)模型

在網(wǎng)狀數(shù)據(jù)模型(network data model)中,各數(shù)據(jù)對象之間建立的往往是一種層次不清楚的一對一、一對多或多對多的聯(lián)系,此種結構可用來表示數(shù)據(jù)間復雜的邏輯關系。圖1-5即是一個網(wǎng)狀數(shù)據(jù)模型的例子。

圖1-4 層次數(shù)據(jù)模型舉例

圖1-5 網(wǎng)狀數(shù)據(jù)模型舉例

網(wǎng)狀數(shù)據(jù)模型的特點如下。

? 一個結點可以有多個父結點。

? 可以有一個以上的結點無父結點。

? 兩個結點之間可以有多個聯(lián)系。

網(wǎng)狀數(shù)據(jù)模型的主要優(yōu)點是在表示數(shù)據(jù)之間多對多的聯(lián)系時具有很大的靈活性,但這種靈活性是以數(shù)據(jù)結構的復雜化為代價的。

事實上,網(wǎng)狀數(shù)據(jù)模型和層次數(shù)據(jù)模型在本質上是類似的,它們都是用結點表示實體,用連線表示實體之間的聯(lián)系。在計算機中具體實現(xiàn)時,每一個結點都是一個存儲的數(shù)據(jù)記錄,而用鏈接指針來實現(xiàn)數(shù)據(jù)記錄之間的聯(lián)系。這種用指針將數(shù)據(jù)記錄聯(lián)系在一起的方法,很難對整個數(shù)據(jù)集合進行修改和擴充。

(3)關系數(shù)據(jù)模型

關系數(shù)據(jù)模型(relational data model)用二維表表示實體以及實體之間的聯(lián)系,每一個二維表被稱為一個關系。表1-6所示的學生信息就是一個典型的關系數(shù)據(jù)模型數(shù)據(jù)結構的例子。

關系數(shù)據(jù)模型與層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型的主要區(qū)別在于它描述數(shù)據(jù)的一致性。它把每個數(shù)據(jù)實體以及實體之間的關系都分別按同一方法描述為一個關系,并且不像后兩者那樣事先規(guī)定實體之間的先后順序或從屬、層次等關系,而是讓實體之間彼此獨立。

最終,關系數(shù)據(jù)模型(關系模型)成了計算機人的選擇。主要的原因是關系模型具有結構簡單、數(shù)據(jù)獨立性高以及提供非過程性標準操縱語言SQL等。關系模型的特征將在1.3節(jié)中展開介紹。

表1-6 關系數(shù)據(jù)模型的數(shù)據(jù)結構

1.2.7 數(shù)據(jù)庫模式

數(shù)據(jù)模型是描述數(shù)據(jù)的一種工具,而數(shù)據(jù)庫模式是使用具體的數(shù)據(jù)模型工具描述的數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結構和完整性約束。需要提醒大家的是,描述數(shù)據(jù)庫模式的模型工具一般都是組織層數(shù)據(jù)模型。

關于數(shù)據(jù)庫模式,在特定的上下文,還有狹義和廣義之分。狹義的數(shù)據(jù)庫模式,僅僅指數(shù)據(jù)庫中數(shù)據(jù)的邏輯結構;而廣義的數(shù)據(jù)庫模式,除了數(shù)據(jù)庫的邏輯結構、完整性約束以外,還包括數(shù)據(jù)庫的數(shù)據(jù)操作。

說到數(shù)據(jù)庫模式,還要提一提數(shù)據(jù)庫的用戶模式和存儲模式。用戶模式一般是數(shù)據(jù)庫模式的一個子集,是用戶能夠看到和使用的數(shù)據(jù)庫中的局部數(shù)據(jù)結構。存儲模式是數(shù)據(jù)庫在計算機中的數(shù)據(jù)物理結構和存放方式的描述。

盡管一個數(shù)據(jù)庫只能有一個數(shù)據(jù)庫模式,但基于數(shù)據(jù)庫模式可以定義多個數(shù)據(jù)庫的用戶模式,以滿足不同用戶的需求。另外,數(shù)據(jù)庫只能有一個存儲模式。下文將基于關系數(shù)據(jù)模型構建關系數(shù)據(jù)庫的模式,這方面的內容請參看1.4節(jié)。

1.2.8 數(shù)據(jù)庫語言

前面介紹了數(shù)據(jù)庫模式的結構、操作和約束,那么怎樣在數(shù)據(jù)庫中定義數(shù)據(jù)的結構和完整性約束呢?又怎樣來描述數(shù)據(jù)操作呢?這就需要開發(fā)一種語言,它至少滿足以下兩個條件:首先功能必須是強大的,必須支持數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型;其次可用性必須是很高的,必須是通用的、簡潔的、易用的。只有滿足這兩個條件,數(shù)據(jù)庫用戶才能夠接受這種語言,并使用它定義和操縱數(shù)據(jù)庫。

對于數(shù)據(jù)庫技術來說,開發(fā)這樣一種語言,是一個至關重要的問題,說它關系到數(shù)據(jù)庫技術的生死存亡也不為過,因此一度出現(xiàn)了很多種語言。

隨著時間的流逝,其中一種語言——SQL,成為了數(shù)據(jù)庫用戶的選擇。SQL,是 Structured Query Language的縮略詞,中文名稱是結構化查詢語言或結構查詢語言,它的主要功能是關系數(shù)據(jù)庫的定義和操縱,之所以關系數(shù)據(jù)庫能夠風靡一時,SQL發(fā)揮了重要的作用。

今天,SQL已成為國際標準。使用SQL,可以輕松地定義關系數(shù)據(jù)庫中數(shù)據(jù)表的數(shù)據(jù)結構和完整性約束,可以靈活地操縱數(shù)據(jù)表中的數(shù)據(jù)。這部分內容將在第6章重點介紹。

主站蜘蛛池模板: 岢岚县| 赤城县| 巴马| 五大连池市| 旬邑县| 饶平县| 上饶县| 景宁| 阳东县| 应用必备| 昭觉县| 隆化县| 德保县| 东乌珠穆沁旗| 柳林县| 驻马店市| 大埔区| 吉林省| 嘉禾县| 咸阳市| 麻栗坡县| 晋州市| 普陀区| 济阳县| 准格尔旗| 娄底市| 乌兰察布市| 淮阳县| 湖北省| 焦作市| 鹿邑县| 枝江市| 磐安县| 桐庐县| 辽阳县| 东乌| 新巴尔虎左旗| 友谊县| 时尚| 东城区| 阳江市|