分布式數據庫:
一群分布在計算機網絡上,邏輯上相互關聯的數據庫
分布式計算系統
要求它具備一定數量的自主處理單元,這些單元通過計算機網絡互連並且協同處理他們各自分配到的任務
分布式數據庫系統(DDBS)包含分布式數據庫系統管理(DDBMS)和分布式數據庫(DDB)
DDBS的基礎問題
分布及復制數據庫的透明管理
-
數據獨立性
-
邏輯數據獨立性
-
用戶應不受數據庫的邏輯結構變化的影響
-
物理數據獨立性
-
向用戶應用隱蔽了存儲結構的細節
-
網絡透明(分布透明)
-
用戶不必指出數據在哪里存放
-
位置透明
-
用來執行的命令既和數據的位置無關,也和由哪個系統的完成無關
-
命名透明
-
對於數據庫里的對象都提供一個唯一的名字,如果沒有命名透明,用戶需要把位置名稱放入一個對象名稱內
-
復制透明
-
復制透明僅僅談及副本的存在,而不是他們的實際位置
-
分片透明
-
水平分片
-
把一個關系划分成一組子關系,每個子關系僅僅含有原來的關系的元組的一個子集。
-
垂直分片
-
把每個子關系定義成原來關系的屬性的一個子集
通過分布式事務的可靠的數據存取
改進的性能
更為的系統擴展
分片:
把每個划分的片段存儲在不同的站點,這個過程稱之為分片
分布式數據庫設計
划分(無重復)
-
數據分割成許多不相交的划分,每個划分存儲在一個節點上
重復(重復)
-
每個站點存儲全部的數據庫,或是部分重復,即每個划分存儲在不止一個站點但不是所有的站點上
設計的兩個根本的問題是划分和分布,前者是把數據庫划分成一個個片段,后者指片段的最優分布
分布式目錄管理
分布式並發控制
並發控制是在分布式數據庫的情況下和集中式的框架有所不同,它不僅要考慮單個數據庫的完整性,而且還要考慮數據庫多個副本的一致性,需要每個數據項的多個副本的值趨於一致的條件成為相互一致性
悲觀方法
樂觀方法
分布式死鎖管理
分布式數據庫的可靠性
復制
如果分布式數據庫是復制的,則必須執行保證副本一致性的協議,同一個數據項的拷貝要具有相同的值
這些協議可以是即時的,即在事務完成之前強迫執行一致性協議;
也可以是惰性的,即事務只更新一個拷貝(主拷貝),而在事務完成之后再把更新傳播給其他拷貝。
分布式DBMS體系架構
ANSI/SPARC 體系架構
-
外部視圖--終端用戶例如程序員看到的視圖 --用戶如何看待數據庫有關
-
內部視圖--系統或機器看到的視圖 --處理數據的物理定義和組織
-
概念視圖--企業所見到的視圖

概念模式:
數據庫的抽象定義,是建模企業在數據庫里的‘現實世界’視圖,代表的是數據與數據之間的關系,沒有考慮個別應用的需求和物理存儲媒介的限制
外部模式和概念模式的分離使我們獲得邏輯數據獨立性
概念模式和內部模式的分離使我們獲得物理數據獨立性
集中式DBMS的通用體系架構

界面層:
管理和應用交互的界面
控制層
對於查詢的控制是通過在查詢中加入語義完整性謂詞和授權謂詞完成的
查詢處理層
把查詢映像成優化的低層操作的序列。這一層與性能有關
執行層
指揮訪問計划的執行,包括事務管理(提交、回滾)以及代數操作的同步,通過調用數據訪問層的檢索和更新請求來解釋關系代數
數據訪問層
管理實現文件和索引的數據結構,同時管理緩沖區,對經常訪問的數據進行快速緩存
一致層
對並發控制進行管理,同時記錄更新請求的日志,這一層支持事務,系統,介質的恢復
分布式DBMS體系架構的模型

(1)本地系統的自治性(Autonomy)
這里的自治性指的是對控制的分配,而不是數據的分配,它告訴我們在多大程度上每個單獨的DBMS能夠獨立運行
自治系統的需求如下
-
本地DBMS的運行不會受到它們加入分布式系統的影響
-
本地DBMS對查詢的處理和優化不應當受到訪問多個數據庫的全局查詢的影響
-
系統的一致性和運行不應當受到個別DBMS的加入或離開分布式系統的影響
自治性也可以這樣說明
(1)設計自治:每個DBMS可以自由地選擇數據模型和事務處理技術
(2)通信自治:每個單獨的DBMS可以自由地決定什么樣的信息可以提供給其他DBMS,或者給控制全局執行的軟件
(3)執行自治:每個單獨的DBMS能夠用它自己的方式執行提交給他的事務
基於上述特征對DBMS進行分類:
(1)緊密集成
(2)半自治系統
(3)全孤立系統
(2)系統的分布(Distribution)
C/S分布
P2P分布(全分布)--早期的分布式數據庫系統大部分工作都是基於P2P的體系架構的
非分布
(3)系統的異構(Heterogeneity)
異構性可能發生在分布式系統的多個方面,從硬件的異構到不同的網絡協議,還有數據管理的程序變化等
C/S系統和P2P系統之間的主要區別並不在於提供給用戶和應用的透明性,而在於實現這種透明性的體系架構方面
分布式DBMS的詳細部件

用戶處理程序
-
用戶界面處理程序
-
接受用戶的命令,對他們進行解釋,並且對返回給用戶的結果數據格式化
-
語義數據控制程序
-
在全局模式中定義的完整性限制和授權檢查能否對用戶查詢進行處理,這一部件同時負責執行授權和他的功能
-
全局查詢優化程序和分解程序
-
決定了最小化代價函數的執行策略,並利用全局和本地概念模式以及全局詞典把全局查詢翻譯成本地查詢
-
全局查詢優化程序在所做的諸多工作中將負責生成執行分布式連結的最好策略
-
分布式執行監督程序
-
協調用戶請求的分布式執行,這個監督程序也被稱為分布式事務管理程序
-
在這種分布式的查詢執行過程中,不同站點的監督程序在通常情況下會相互通信
數據處理程序
-
本地查詢優化程序
-
扮演訪問路徑選擇器的角色,他負責挑選訪問任何數據項的最佳路徑
-
本地數據恢復管理器
-
保證本地數據庫的一致性,即使是在出現故障時也應如此
-
運行時間支持程序
-
根據查詢優化程序所生成的計划中的命令物理地訪問數據庫,他是對操作系統的接口,包含了數據庫緩沖區管理程序