分佈式數據庫簡述

一、概述

     分佈式數據庫系統通常使用較小的計算機系統,每臺計算機可單獨放在一個地方,每臺計算機中都可能有DBMS的一份完整拷貝副本,或者部分拷貝副本,並具有自己局部的數據庫,位於不同地點的許多計算機通過網絡互相連接,共同組成一個完整的、全局的邏輯上集中、物理上分佈的大型數據庫。

二、體系結構

      根據我國制定的《分佈式數據庫系統標準》,分佈式數據庫系統抽象爲4層的結構模式。這種結構模式得到了國內外的支持和認同。4層模式劃分爲全局外層、全局概念層、局部概念層和局部內層,在各層間還有相應的層間映射。這種4層模式適用於同構型分佈式數據庫系統,也適用於異構型分佈式數據庫系統。

三、發展歷程-爲生先死

(圖片引用自網絡)
年份是指關鍵事件發生事件的時間節點,並不一定是具體時間,歡迎更正。
1.分佈式數據庫的研究始於20世紀70年代中期。世界上第一個分佈式數據庫系統SDD-1是由美國計算機公司(CCA)於1979年在DEC計算機上實現。
2.自1970年代關係數據庫興起,當時的數據庫主要功能就是保存數據和滿足用戶對數據計算需求,如Oracle/DB2等。
3.1990年之後,出現開源數據庫MySQL和PostSQL,這些數據庫遵循摩爾定律的硬件提升速度,具有良好的單機性能。
4.2005年左右,人們開始探索分佈式數據庫,帶起了NoSQL這波浪潮。這些數據庫解決的首要問題是單機上無法保存全部數據,其中以HBase/Cassadra/MongoDB爲代表
5.2012~2013年Google 相繼發表了Spanner和F1兩套系統的論文,讓業界第一次看到了關係模型和NoSQL的擴展性在一個大規模生產系統上融合的可能性。
6.之後NoSQL謝幕,NewSQL登場。NewSql是一類新式的關係型數據庫管理系統。

四、術語解釋


分佈式數據庫的術語對我來說需要記錄的有點多,根據個人情況略過吧。
DBMS:數據庫管理系統(Database Management System)是一種操縱和管理數據庫的大型軟件,用於建立、使用和維護數據庫,簡稱DBMS。
DDBS:分佈式數據庫系統,包含分佈式數據庫管理系統(DDBMS)和分佈式數據庫(DDB)。
集中式數據庫系統
分佈式數據庫系統:完整的、全局的(意味着支持所有業務),邏輯上集中、物理上分佈(意味着單獨的數據庫可以不必包含所有數據)的大型數據庫.
同構型:構是指數據模型,同構是指各個節點都採用同一類型的數據模型(譬如都是關係型)
同質型:質是指數據庫管理系統DBMS,比如有Oracle,DB2等,DBMS相同則稱爲同質的,不同則稱爲異質的.
同構同質型:分佈式數據庫系統中,數據模型和數據庫管理系統(DBMS)相同。
同構異質型:分佈式數據庫系統中,數據模型相同,但是數據庫管理系統(DBMS)相同。
異構型DDBS:分佈式數據庫系統中,數據模型和數據庫管理系統(DBMS)都不相同。

集中式計算:計算幾乎完全依賴於一臺大型的中心計算機的處理能力。
分佈式計算:在兩個或多個軟件互相共享信息,這些軟件既可以在同一臺計算機上運行,也可以在通過網絡連接起來的多臺計算機上運行。(中國科學院的定義)。
協作式計算:看作爲一種協作式的分佈計算。在這種模式中,計算機之間不僅僅像在分佈式計算中那樣互相傳遞數據,實現信息共享,而且要進行更深層次的共享,也就是說用兩臺或更多的計算機來共同完成一個處理任務。
數據分片:水平分片,垂直分片,導出分片,混合分片
水平分片:按一定的條件把全局關係的所有元組劃分成若干不相交的子集,每個子集爲關係的一個片段(把同一張表中的數據拆分到不同的數據庫或表中進行存儲,主要有分表,分庫兩種模式)。
垂直分片:把一個全局關係的屬性集分成若干子集,並在這些子集上作投影運算,每個投影稱爲垂直分片(就是根據不同的業務進行拆分的,拆分成不同的數據庫,比如會員數據庫、訂單數據庫、支付數據庫、消息數據庫等)
導出分片:又稱爲導出水平分片,即水平分片的條件不是本關係屬性的條件,而是其他關係屬性的條件(具有一定業務關係的數據放一起,比如組織信息和績效信息)。
混合分片:以上三種方法的混合。可以先水平分片再垂直分片,或先垂直分片再水平分片,或其他形式,但他們的結果是不相同的。
數據分配方式
集中式:所有數據片段都安排在同一個節點上。
分割式:所有數據只有一份,它被分割成若干邏輯片段,每個邏輯片段被指派在一個特定的場地上。
全複製式:數據在每個場地重複存儲。也就是每個場地上都有一個完整的數據副本。
混合式:這是一種介乎於分割式和全複製式之間的分配方式。
元組(tuple)是關係數據庫中的基本概念,關係是一張表,表中的每行(即數據庫中的每條記錄)就是一個元組,每列就是一個屬性。 在二維表裏,元組也稱爲行。
HBase:典型的分佈式數據庫,底層使用HDFS分佈式文件系統作爲支撐(HBase本身並不存儲數據,數據還是以文件的形式存儲在HDFS上)。HBase是Hadoop生態中的重要產品,Google BigTable的開源實現。
BigTable:Google內部使用的分佈式數據庫,構建在GFS的基礎上,彌補了分佈式文件系統對於小對象的插入、更新、隨機讀請求的缺陷。


五、總結:


       本意是總結分佈式數據庫,卻意外的進入到NewSql時代,不得不多喜憂參半啊。在起初查詢了很多資料,都沒找到2013年之後分佈式數據庫的發展,這個是我的一個疑惑,想必也是諸位的疑惑。其實原因很簡單,數據存儲截止目前經歷文件存儲,關係數據庫,Nosql,NewSql四個階段。其中NoSql數據庫對於分佈式數據庫,自2015年之後數據存儲開啓NewSql模式,Nosql(分佈式數據庫)已經逐漸退出歷史舞臺。而對於NewSql想必大家都早有接觸,只是或許和我之前一樣,或許是因爲和關係型數據庫過度的太柔和,所以沒能清楚的感受到NewSQL時代的到來,NewSql是對各種新的可擴展/高性能數據庫的簡稱,這類數據庫不僅具有NoSQL對海量數據的存儲管理能力,還保持了傳統數據庫支持ACID和SQL等特性。常見的newsql數據庫供應商包括(順序隨機)Clustrix、GenieDB、ScalArc、Schooner、VoltDB、RethinkDB、ScaleDB、Akiban、CodeFutures、ScaleBase、Translattice和NimbusDB,以及 Drizzle、帶有 NDB的 MySQL 集羣和帶有HandlerSocket的MySQL。後者包括Tokutek和JustOne DB。相關的“NewSQL作爲一種服務”類別包括亞馬遜關係數據庫服務,微軟SQLAzure,Xeround和FathomDB。

參考資料:

https://www.oschina.net/news/84386/about-distributed-database?utm_source=tuicool
https://www.sohu.com/a/320178859_505827
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章