- 分布式數據庫系統:大數據時代新型數據庫技術(第3版)
- 于戈 申德榮等編著
- 15字
- 2023-08-28 19:21:21
CHAPTER 1
第1章
分布式數據庫系統概論
1.1 引言及準備知識
分布式數據庫系統(Distributed DataBase System,DDBS)是隨著計算技術的發展和應用需求的推動而提出的新型軟件系統。簡單地說,分布式數據庫系統是地理上分散而邏輯上集中的數據庫系統,即通過計算機網絡將地理上分散的各局域節點連接起來共同組成一個邏輯上統一的數據庫系統。因此,分布式數據庫系統是數據庫技術和計算機網絡技術相結合的產物。
分布式數據庫系統與集中式數據庫系統一樣,包含兩個重要部分:分布式數據庫和分布式數據庫管理系統。在介紹分布式數據庫系統之前,先重溫一下有關數據庫和數據庫管理系統的基本概念。
1.1.1 基本概念
1.數據庫
數據庫(DataBase,DB)的定義有很多。從用戶使用數據庫的角度出發,數據庫可定義為長期存儲在計算機內、有組織、可共享的數據集合。數據庫中的數據按一定的數據模型組織、描述、存儲,具有較小的冗余度、較高的數據獨立性并易于擴展,同時可為各種用戶共享。數據庫設計就是對一個給定的應用環境(現實世界)設計出最優的數據模型,然后,按模型建立數據庫,如圖1.1所示。典型的數據模型是E-R概念模型和關系數據模型。

圖1.1 數據庫模型
2.數據庫管理系統
數據庫管理系統(DataBase Management System,DBMS)是人們用于管理和操作數據庫的軟件,介于應用程序和操作系統之間。實際的數據庫很復雜,對數據庫的操作也相當煩瑣,因此,需要有數據庫管理系統有效地管理和操作數據庫,使用戶不必涉及數據的具體結構描述及實際存儲就能方便、最優地操作數據庫。DBMS不僅具有最基本的數據管理功能,還提供多用戶的并發控制、事務管理和訪問控制,以保證數據的完整性和安全性,并在數據庫出現故障時對系統進行恢復。數據庫管理系統可描述為由用戶接口、查詢處理、查詢優化、存儲管理四個基本模塊和事務管理、并發控制、恢復管理三個輔助模塊組成,其模型如圖1.2所示。

圖1.2 數據庫管理系統模型
3.數據庫系統
數據庫系統(DataBase System,DBS)是指與數據庫相關的整個系統。廣義上講,數據庫系統由數據庫、數據庫管理系統、應用開發工具(運行環境)、應用系統和數據庫管理員等構成,如圖1.3所示。狹義的數據庫系統只包括數據庫和數據庫管理系統。

圖1.3 廣義的數據庫系統組成
4.模式
從現實世界的信息抽象到數據庫存儲的數據是一個逐步抽象的過程。美國國家標準協會的標準計劃與需求委員會(American National Standards Institute, Standards Planning And Requirements Committee, ANSI-SPARC)根據數據的抽象級別為數據庫定義了三層模式參考模型,如圖1.4所示。

圖1.4 ANSI-SPARC三層模式參考模型
外模式是數據庫用戶和數據庫系統的接口,是數據庫用戶的數據視圖(View),是數據庫用戶可以看見和使用的局部數據的邏輯結構和特征的描述,是同應用有關的數據的邏輯表示。一個數據庫系統通常有多個外模式。外模式是保證數據庫安全的重要措施,因為每個用戶只能看見和訪問特定的外模式中的數據。通常,由DBMS中的視圖定義(Create View)命令定義數據庫的外模式。
例如,某外模式定義如下:

模式是關于數據庫中全體數據的邏輯結構和特征的描述,是所有用戶的公共數據視圖。模式是數據庫中數據在邏輯級上的視圖。一個數據庫只有一個模式。模式以某種數據模型為基礎,綜合考慮了所有用戶的需求,并將這些需求有機地結合成一個邏輯整體。定義模式時不僅要定義數據的邏輯結構,如組成關系模式的屬性名、屬性的類型、取值范圍,還要定義屬性間的關聯關系、完整性約束等。模式由DBMS中提供的模式描述語言定義。
例如,某模式定義如下:

內模式是關于數據物理結構和存儲方式的描述,是數據在數據庫內部的表示方式。一個數據庫只有一個內模式,如關系表的存儲方式是按照堆存儲還是按照屬性值聚簇存儲、索引是采用B+樹索引還是采用哈希索引等。內模式由DBMS中提供的內模式描述語言定義。
例如,某內模式定義如下:

1.1.2 基礎知識
在后面章節的學習中,將涉及關系模型、關系代數和SQL語言知識。下面給出簡單介紹。
1.關系模型
關系模型是數據庫的三種經典數據模型(層次數據模型、網狀數據模型和關系數據模型)之一。關系是二維表,也稱為表。表中的一行稱為關系的一個元組,表中的一列稱為關系的一個屬性。
2.關系代數
關系是一個集合,關系的元組是集合的元素。常見的關系代數包括5個集合運算和3個關系運算。
5個集合運算為:
●并(UNION)運算:設有兩個關系R和S,具有相同的關系模式,R和S的并運算的結果是由兩個關系中所有元組組成的一個新關系,記為R∪S或R+S。
●交(INTERSECT)運算:設有兩個關系R和S,具有相同的關系模式,R和S的交運算的結果是由兩個關系中所有公共元組組成的一個新關系,記為R∩S。
●差(DIFFERENCE)運算:設有兩個關系R和S,具有相同的關系模式,R和S的差運算結果是由屬于關系R但不屬于關系S的元組組成的一個新關系,記為R-S。
●乘(PRODUCT)運算:設R有m個屬性,S有n個屬性,R有i個元組,S有j個元組,R和S的乘(笛卡兒積)的運算結果是由(m+n)個屬性、i×j個元組組成的一個新關系,每個元組的前m個分量(屬性值)來自R的一個元組,后n個分量來自S的一個元組,記為R×S。
●除(DIVIDE)運算:設有關系R(X,Y)和S(Y,Z),其中X、Y、Z為屬性組,R中的Y與S中的Y可有不同的屬性名,但必須出自相同的值域。R和S的除運算得到一個新關系P(X),P是R中滿足下列條件的元組在X屬性上的投影:元組在X上分量值x的象集YX包含S在Y上投影的集合,記為R÷S。
3個關系運算為:
●選擇(SELECT)運算:選擇運算是從指定的關系R中選擇滿足條件(條件表達式)的元組組成的一個新關系,記為σ<條件表達式>(R)。
●投影(PROJECT)運算:投影運算是從指定的關系R中選擇屬性集A的所有值組成的一個新關系,記為∏A(R)。
●連接(JOIN)運算:連接運算有θ連接、等值連接和自然連接三種運算,θ是算術比較符號。設有關系R(A,B)和S(C,D),A、C出自同一值域,R和S的θ連接運算是由兩個關系R和S中滿足AθC連接條件的元組連接在一起組成的一個新關系,記為。若θ是等號(=),該連接操作稱為等值連接,記為
。若A、C具有相同的屬性名,R和S的連接運算默認按A=C連接條件進行連接,并去除重復列屬性,則為自然連接運算,記為R∞S。
3.SQL語言
SQL(Structured Query Language)是一種非過程性語言,提供了數據定義(建立數據庫和表結構)、數據操作(輸入、修改、刪除、查詢)、數據控制(授予、回收權限)等數據庫操作命令,較好地滿足了數據庫語言的要求。美國國家標準協會(ANSI)與國際標準化組織(ISO)制定了SQL標準,相繼推出了SQL/86、SQL/92、SQL/99、SQL/2003、SQL/2006等。SQL提供了靈活而強大的查詢功能,具有可移植性。SQL已為廣大用戶所采用,成為用戶訪問數據庫系統的標準接口語言。