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

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

圖1.2 數(shù)據(jù)庫管理系統(tǒng)模型
3.數(shù)據(jù)庫系統(tǒng)
數(shù)據(jù)庫系統(tǒng)(DataBase System,DBS)是指與數(shù)據(jù)庫相關(guān)的整個系統(tǒng)。廣義上講,數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用開發(fā)工具(運行環(huán)境)、應(yīng)用系統(tǒng)和數(shù)據(jù)庫管理員等構(gòu)成,如圖1.3所示。狹義的數(shù)據(jù)庫系統(tǒng)只包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)。

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

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

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

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

1.1.2 基礎(chǔ)知識
在后面章節(jié)的學(xué)習(xí)中,將涉及關(guān)系模型、關(guān)系代數(shù)和SQL語言知識。下面給出簡單介紹。
1.關(guān)系模型
關(guān)系模型是數(shù)據(jù)庫的三種經(jīng)典數(shù)據(jù)模型(層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型和關(guān)系數(shù)據(jù)模型)之一。關(guān)系是二維表,也稱為表。表中的一行稱為關(guān)系的一個元組,表中的一列稱為關(guān)系的一個屬性。
2.關(guān)系代數(shù)
關(guān)系是一個集合,關(guān)系的元組是集合的元素。常見的關(guān)系代數(shù)包括5個集合運算和3個關(guān)系運算。
5個集合運算為:
●并(UNION)運算:設(shè)有兩個關(guān)系R和S,具有相同的關(guān)系模式,R和S的并運算的結(jié)果是由兩個關(guān)系中所有元組組成的一個新關(guān)系,記為R∪S或R+S。
●交(INTERSECT)運算:設(shè)有兩個關(guān)系R和S,具有相同的關(guān)系模式,R和S的交運算的結(jié)果是由兩個關(guān)系中所有公共元組組成的一個新關(guān)系,記為R∩S。
●差(DIFFERENCE)運算:設(shè)有兩個關(guān)系R和S,具有相同的關(guān)系模式,R和S的差運算結(jié)果是由屬于關(guān)系R但不屬于關(guān)系S的元組組成的一個新關(guān)系,記為R-S。
●乘(PRODUCT)運算:設(shè)R有m個屬性,S有n個屬性,R有i個元組,S有j個元組,R和S的乘(笛卡兒積)的運算結(jié)果是由(m+n)個屬性、i×j個元組組成的一個新關(guān)系,每個元組的前m個分量(屬性值)來自R的一個元組,后n個分量來自S的一個元組,記為R×S。
●除(DIVIDE)運算:設(shè)有關(guān)系R(X,Y)和S(Y,Z),其中X、Y、Z為屬性組,R中的Y與S中的Y可有不同的屬性名,但必須出自相同的值域。R和S的除運算得到一個新關(guān)系P(X),P是R中滿足下列條件的元組在X屬性上的投影:元組在X上分量值x的象集YX包含S在Y上投影的集合,記為R÷S。
3個關(guān)系運算為:
●選擇(SELECT)運算:選擇運算是從指定的關(guān)系R中選擇滿足條件(條件表達式)的元組組成的一個新關(guān)系,記為σ<條件表達式>(R)。
●投影(PROJECT)運算:投影運算是從指定的關(guān)系R中選擇屬性集A的所有值組成的一個新關(guān)系,記為∏A(R)。
●連接(JOIN)運算:連接運算有θ連接、等值連接和自然連接三種運算,θ是算術(shù)比較符號。設(shè)有關(guān)系R(A,B)和S(C,D),A、C出自同一值域,R和S的θ連接運算是由兩個關(guān)系R和S中滿足AθC連接條件的元組連接在一起組成的一個新關(guān)系,記為。若θ是等號(=),該連接操作稱為等值連接,記為
。若A、C具有相同的屬性名,R和S的連接運算默認按A=C連接條件進行連接,并去除重復(fù)列屬性,則為自然連接運算,記為R∞S。
3.SQL語言
SQL(Structured Query Language)是一種非過程性語言,提供了數(shù)據(jù)定義(建立數(shù)據(jù)庫和表結(jié)構(gòu))、數(shù)據(jù)操作(輸入、修改、刪除、查詢)、數(shù)據(jù)控制(授予、回收權(quán)限)等數(shù)據(jù)庫操作命令,較好地滿足了數(shù)據(jù)庫語言的要求。美國國家標準協(xié)會(ANSI)與國際標準化組織(ISO)制定了SQL標準,相繼推出了SQL/86、SQL/92、SQL/99、SQL/2003、SQL/2006等。SQL提供了靈活而強大的查詢功能,具有可移植性。SQL已為廣大用戶所采用,成為用戶訪問數(shù)據(jù)庫系統(tǒng)的標準接口語言。
- 程序員修煉之道:從小工到專家
- ETL數(shù)據(jù)整合與處理(Kettle)
- Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)
- 算法競賽入門經(jīng)典:習(xí)題與解答
- Java Data Science Cookbook
- Libgdx Cross/platform Game Development Cookbook
- 揭秘云計算與大數(shù)據(jù)
- Python數(shù)據(jù)分析:基于Plotly的動態(tài)可視化繪圖
- Apache Kylin權(quán)威指南
- 企業(yè)級容器云架構(gòu)開發(fā)指南
- Augmented Reality using Appcelerator Titanium Starter
- 數(shù)據(jù)分析師養(yǎng)成寶典
- 云計算寶典:技術(shù)與實踐
- Hands-On System Programming with C++
- SOLIDWORKS 2018中文版機械設(shè)計基礎(chǔ)與實例教程