NoSQL資料庫面面觀

2021-06-19 05:40:27 字數 1926 閱讀 4779

alexey vasiliev是一位知名的web開發者與linux系統管理員,曾參與開發過多個專案,如

falcon、

mongodb_logger、

sht_rails及

piro等專案。近日,vasiliev就當前各種nosql資料庫的優勢與劣勢

撰文進行了詳盡的分析。這些分析與比較將會對廣大開發者專案的nosql資料庫選型提供一定的幫助與指導作用。

nosql資料庫現在已經變得非常流行了,在nosql這個大概念下實際上包含了大量的方式與專案,旨在實現各種資料庫模型,他們與傳統的關係型資料庫管理系統存在著非常大的差別,而傳統的關係型資料庫系統是通過sql的方式來訪問資料的。在nosql領域中,傳統觀念中的模式可以通過不同的資料結構來實現,如雜湊表、陣列、樹、圖等等。

術語「nosql」最早出現在上個世紀90年代末期,然而真正為大家所熟知則是在2023年中期。起初,它只是由carlo strozzi建立的乙個小型開源資料庫,將所有資料以ascii檔案的形式儲存,並使用shell指令碼而非sql來訪問這些資料。這個資料庫與當前的「nosql」概念並沒有任何相似之處。

johan oskarsson在2023年6月於舊金山組織了一場會議,討論it市場的新技術、資料儲存與處理等主題。之所以會舉辦這場會議的主要原因在於bigtable和dynamo等新產品的出現。「nosql」這個術語則是由來自rackspace的eric vans提出的。這個術語原本就是用在這場會議當中的,也沒有什麼更深層次的含義。不過最後的結果卻是它迅速在網際網路上蔓延開來,成為it領域的乙個新趨勢。隨後,pramod j.sadalage與martin fowler編寫了「nosql distilled」一書,旨在對日益龐大的nosql世界進行組織。

現在大約有150多種nosql資料庫(nosql-database.org),下面就來**一下nosql的主要發展方向。

面向列的dbms是這樣一種資料庫管理系統,它將資料表儲存為資料列而非行的形式。從物理上來說,表是列的集合,每一列從本質上來說都是只有乙個欄位的表。這些資料庫通常用於分析系統、商業智慧型與分析型資料儲存。

優點:缺點:

典型代表:

你可以通過這種資料庫將鍵值對儲存到持久化儲存中,隨後使用鍵來讀取值。那麼對於這種初看起來用途非常有限的解決方案來說有哪些好處呢?在根據鍵來儲存/讀取值時,系統是非常高效的,因為它沒有sql處理器、索引系統以及分析系統等諸多限制。這種解決方案提供了最高效的效能,代價最低的實現以及可伸縮性。

優點:缺點:

典型代表:

文件儲存指的是用於儲存、搜尋與管理面向文件的資訊(半結構化資料)的程式,其中心概念就是文件。具體的面向文件資料庫的實現是不同的,不過總的來說,他們都會以各種標準化格式對資料(文件)進行封裝與加密,主要格式有xml、yaml、json、bson、pdf等等。

優點:缺點:

在很多時候原子性是得不到保障的。

典型代表:

圖型資料庫指的是使用圖結構的資料庫,通過結點、邊與屬性來表示和儲存資料。根據定義,圖型資料庫是一種提供了無需索引而彼此鄰接的儲存系統。這意味著每個元素都包含了直接指向鄰接元素的指標,因此沒必要再通過索引進行查詢了。

優點:缺點:

典型代表:

這些資料庫包含了多種資料庫的特性。

有兩種不同的產品分組可以認為是多模的:

典型代表:

資料庫中的資料都建模為物件、屬性、方法以及類。物件導向的資料庫通常適合於需要高效能資料處理的應用,這種應用一般都有非常複雜的結構。

優點:缺點

典型代表:

典型代表:

多維資料庫的變種。主要的特性是支援使用屬性來儲存值的列表。

典型代表:

nosql的發展速度異常迅猛,不過這並不意味著關係型資料庫就沒落了。他們還會在很多場景下發揮著巨大的作用,並且與nosql資料庫共存。我們現在處在多種持久化儲存共存的時代,並不存在處於壟斷地位的關係型資料庫與nosql資料庫。架構師們對資料庫的選擇將會基於資料儲存本身的特性,以及所預估的資料量。

Windows 系統面面觀

微軟出於種種目的,只是把一些不常用的工具藏在windows 的各個角落,這些僅作為附屬工具,無法弄清其具體鏈結檔案,不利於直接呼叫。下面我們就對它一一進行介紹。一 目錄篇 aspicd.sys scsi光碟機的的aspi驅動程式。必須先執行aspi dos驅動程式,這個檔案只對於那些使用scsi的使...

架構視角面面觀

是否在不斷的學習新技術 新名詞 生怕落伍?wcf wf wpf mvc ef webapi spring castle unity autofac ninject aop等 ui層 平均是多少行?webform頁面 winform等頁面 業務層 量平均是多少?資料訪問層 量平均是多少?儲存過程 sq...

IT界人才面面觀

人才是企業的生命線,乙個企業最重要的資源可以說就是人才了,特別在it行業,人才更是重中之重。it是informationgtechonlogy的簡寫,就是資訊科技,是一切製造 傳輸 加工 儲存和使用資訊的技術。it企業在近幾年有了長足的發展,但it人才卻和it企業的發展不相適應。it人才市場 200...