1. 程式人生 > >五大儲存模型關係模型、鍵值儲存、文件儲存、列式儲存、圖形資料庫

五大儲存模型關係模型、鍵值儲存、文件儲存、列式儲存、圖形資料庫

也可以認為是五大資料庫儲存模型。

資料庫市場需要細分,行式資料庫不再滿足所有的需求,而有很多需求需要通過本記憶體資料庫和列式資料庫解決,列式資料庫在資料分析、海量儲存、BI這三個領域有自己獨到。

1. 關係型資料庫(行式資料庫) mysql sybase etc

定義:關係模型使用記錄(行或者元祖)進行儲存,記錄儲存在表中,表由架構界定。表中的每個列都有名稱和型別,表中的所有記錄都要符合表的定義。SQL是專門的查詢語言,提供相應的語法查詢符合條件的記錄,如表聯接(Join)。表聯接可以基於表之間的關係在多表之間查詢記錄。

儲存格式:行式資料庫把一行中的資料值串在一起儲存起來,然後再儲存下一行的資料,以此類推。

例如以下的一個表:

EmpId Lastname Firstname Salary
1 Smith Joe 40000
2 Jones Mary 50000
3 Johnson Cathy 44000
1,Smith,Joe,40000;2,Jones,Mary,50000;3,Johnson,Cathy,44000;

特點:據以行相關的儲存體系架構進行空間分配,主要適合與小批量的資料處理,常用於聯機事務型資料處理。不能滿足後面三個需求:對資料庫高併發讀寫要求,對海量資料的高效率儲存和訪問需求,對資料庫高可擴充套件性和高可用性。 一句話不適合分散式、高併發和海量。

2. 列式儲存 Sybase IQ, C-Store, Vertica,

定義:什麼是列式資料庫?列式資料庫是以列相關儲存架構進行資料儲存的資料庫。列式儲存以流的方式在列中儲存所有的資料,主要適合與批量資料處理和即席查詢

儲存格式 :

列式資料庫把一列中的資料值串在一起儲存起來,然後再儲存下一列的資料,以此類推。

1,2,3;Smith,Jones,Johnson;Joe,Mary,Cathy;40000,50000,44000;

特點:包括查詢快,由於查詢需要讀取的blocks少資料壓縮比高,正因為同一型別的列儲存在一起。Load快。 簡化資料建模的複雜性。但是插入更新慢,不太適合資料老是變化,它是按列儲存的。這時候你就知道它適做DSS(決策支援系統),BI的優秀選擇,資料集市,資料倉庫,它

不適合OLTP

Examples are Sybase IQ, C-Store, Vertica, VectorWise,MonetDB, ParAccel, and Infobright.

//具體請參考如下地址


3. 鍵值儲存 cassandra, hbase, bigtable

即Key-Value儲存,簡稱KV儲存。它是NoSQL儲存的一種方式。它的資料按照鍵值對的形式進行組織,索引和儲存。KV儲存非常適合不涉及過多資料關係業務關係的業務資料,同時能有效減少讀寫磁碟的次數,比SQL資料庫儲存擁有更好的讀寫效能。

典型例子 Sorted String Table即SSTable。其實STL 庫中map和hash_map, JAVA中hash_table, hash_map就是鍵值儲存。 但是他們值只支援記憶體操作,而且map的查詢效率太低,關鍵是他們只是簡單的資料結構,不能實現較大規模儲存和分散式,而且資料的修改效率比較低。 而SSTalbe就解決了這些問題。

鍵值儲存實際是分散式表格系統的一種。

其中的實現機制也可以參考

LevelDB/Sstable: http://blog.chinaunix.net/uid-26111972-id-3342215.html.

LevelDB: http://www.samecity.com/blog/Index.asp?SortID=12

分散式key-value 系統有cassandra, hbase, bigtable etc

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

4. 文件儲存

文件儲存支援對結構化資料的訪問,不同於關係模型的是,文件儲存沒有強制的架構。 事實上,文件儲存以封包鍵值對的方式進行儲存。在這種情況下,應用對要檢索的封包採取一些約定,或者利用儲存引擎的能力將不同的文件劃分成不同的集合,以管理資料。 與關係模型不同的是,文件儲存模型支援巢狀結構。例如,文件儲存模型支援XML和JSON文件,欄位的“值”又可以巢狀儲存其它文件。文件儲存模型也支援陣列和列值鍵。 與鍵值儲存不同的是,文件儲存關心文件的內部結構。這使得儲存引擎可以直接支援二級索引,從而允許對任意欄位進行高效查詢。支援文件巢狀儲存的能力,使得查詢語言具有搜尋巢狀物件的能力,XQuery就是一個例子。MongoDB通過支援在查詢中指定JSON欄位路徑實現類似的功能。

MongoDB 對SQL 和ACID 支援的比較全面的資料庫了。不過, 比較多的還是介紹日誌的採集和儲存,小檔案的分散式儲存,類似網際網路微博應用的資料儲存等方面的內容。

MongoDB 和 Cassandra的比較:
http://www.csdn.net/article/2013-08-23/2816679-time-series-data-mongdb-vs-cassandra

5.圖形資料庫

圖形資料庫儲存頂點和邊的資訊,有的支援添加註釋。 圖形資料庫可用於對事物建模,如社交圖譜、真實世界的各種物件。IMDB(Internet MovieDatabase)站點的內容就組成了一幅複雜的影象,演員與電影彼此交織在一起。 圖形資料庫的查詢語言一般用於查詢圖形中斷點的路徑,或端點之間路徑的屬性。Neo4j是一個典型的圖形資料庫。

相關推薦

五大儲存模型關係模型儲存儲存儲存圖形資料庫

也可以認為是五大資料庫儲存模型。 資料庫市場需要細分,行式資料庫不再滿足所有的需求,而有很多需求需要通過本記憶體資料庫和列式資料庫解決,列式資料庫在資料分析、海量儲存、BI這三個領域有自己獨到。 1. 關係型資料庫(行式資料庫) mysql sybase etc 定義:

(三)JavaScript的陣列對和原型

一、Array物件 Array既被當作陣列,又被當作鍵值對和list集合,最外層為“[ ]”(中括號)即為數字,為“{ }”(大括號)即為鍵值對,又稱作json格式。 <script

create table new_table as select ...from old_table ... 建立表後,依附於表的約束索引都不存在

emp 表 列名 型別 可為空 預設值 EMPNO NUMBER(4) ENAME VARCHAR2(10) Y 'YJG' JOB VARCHAR2(9) Y MGR NUMBER(4) Y HIREDAT

資料庫參考,(Key-value)資料庫儲存資料庫,圖型資料庫

【TechTarget中國原創】DB-Engines網站專門提供資料庫管理系統流行度的排名資訊,這個排名主要根據5個因素來進行:Google以及Bing搜尋引擎的關鍵字搜尋數量、Google Trends的搜尋數量、Indeed網站中的職位搜尋量、LinkedIn中提到關鍵字的個人資料數以及Stacko

MFC多中opencv處理影象開啟儲存

需要在C**Doc和C**View中進行相應修改 影象開啟: Doc.cpp中: BOOL CCVMFCDoc::Load(IplImage** pp, LPCTSTR csFilename) { IplImage* pImg=NULL; pImg = cvLoa

SQL Server 檢測到基於一致性的邏輯 I/O 錯誤 pageid不正確數據庫日誌 丟失

日誌文件 科技 文件丟失 i/o 處理 企業管理 eid dbcc 無法連接 客戶名稱:深圳某科技信息有限公司 數據庫類型:sql2000 數據庫大小:20g 故障經過 電腦突然斷電,軟件就顯示某數據庫錯誤,無法連接,打開企業管理器,顯示數 據庫質疑,DBCC查詢顯示“ S

關於HAproxy的查,新插入刪除的操作

關於haproxy文件的查 新插入、刪除的操作 os ()backend [] server [] select [] count (,) obj1line obj1line.strip().startswith()backend.append(line.strip())

shift+delete剛刪除的怎麽恢復

  Shift+delete其實就是咱們電腦中的一個快捷鍵,那麽這個快捷鍵是用來執行什麽操作的呢?其實很簡單,也很實用。當咱們需要刪除一個文件的時候,一般情況下,最為常見的操作便是選中這個文件,然後右鍵點擊,在彈出來的菜單欄中選擇刪除這一項,之後,咱們需要刪除掉的文件就沒有了,當然,這個時候文件並非是真正徹底

【大數據系列】HDFS權限和安全模式安裝

重新啟動 inux 客戶 元數據 masters cnblogs 格式 新的 檢測 HDFS文件權限 1、與linux文件權限類型 r:read w:write x:execute權限x對於文件忽略,對於文件夾表示是否允許訪問其內容 2、如果linux系統用戶sanglp

學習寫一個能夠將復制解壓到指定夾中的批處理

bat場景1:afoldersource中有若幹文件夾和若幹壓縮文件,現在將afoldersource中的文件全部復制到afolderdist中。afoldersource:腳本:@ECHO OFF##關閉命令回顯echo copy file##顯示一句話SET sourcepath=E:\afolderso

運維學習之系統延時任務定時任務以及臨時的管理

linux系統的延時及定時任務1.延時任務at 命令 發起的任務都是一次性的at +time下圖表示在21:22分進行刪除命令命令ctrl+d 表示發起動作at -l | atq #查看當前任務at -d | atrm #取消指定任務at -c #查看任務內容由圖二知主要執行touch這條命令at n

linux運維架構之路-linux屬性

增加 軟連接 ext4 源文件 linux文件屬性 屬性 sys dump 剩余空間 1、查看文件屬性 ls -lhi 文件屬性詳細說明 1. 第一列: inode索引節點編號 2. 第二列:文件類型及權限 3. 第三列:硬鏈接數 4. 第四列:

java移動 慎用java file.renameTo(f)方法 java從一個目錄復制到另一個目錄下 java代碼完成刪除

不存在 art 我的電腦 lan nbsp 文件 刪除文件 csdn 結果 java移動文件夾(包含子文件和子文件夾): http://blog.csdn.net/yongh701/article/details/45070353 慎用java file.rename

PDF如何刪除其中一頁怎麽刪除PDF中的其中一個頁面!

點擊 打開 找到 images 鼠標 選擇刪除 com 縮略圖 .com   我們在編輯PDF文件的時候經常會碰到同一個問題,編輯PDF文件往往會遇到文件中多出一個空白的頁面,那麽這個頁面該怎麽處理呢?最好的方法就是將其刪除,下面就一起來學習一下吧!   1、打開電腦,在

Linux壓縮和打包(gzipbip2xz工具)

linux常見壓縮格式Windows:.rar、.zip、.7zLinux :.zip、.gz、.bz2、.xz、.tar、.gz、.tar.bz2、.tar.xzgzip壓縮工具用來壓縮文件(常用)gzip 1.txt 壓縮 1.txt g

管道符和作業控制shell變量環境變量配置

管道符和作業控制、shell變量、環境變量配置文件管道符它用於將前一個指令的輸出作為後一個指令的輸入。作業控制當運行進程時,我們可以使用 ctrl +z 暫停它,然後使用fg(foreground)命令恢復,或是利用命令bg(background)命令使它到後臺運行。還可以使用 ctrl+c 終止它。jobs

Linux學習(二十二)Shell基礎(二)變量環境變量配置

start 環境變量 pre alt fun name mage art col 一、變量 變量是一個容器,裏面能放不同的值。 要點知識: PATH,HOME,PWD,LOGNAME這些都是變量。 例子: [root@ruanwenwu02 ~]# echo a+b a

Java封裝JDBC數據庫增查操作成JAR,以供Web工程調用,適用於多種數據庫

通過 ive trac end 使用方法 數據 div bstr 工程 廢話不多說,直接上源代碼,最後有使用方法,當然,也可以作為普通公用類使用,只是封裝成JAR更方便使用。 [java] view plain copy package db.util;

管道符變量環境變量配置

-o cdd 配置 ext ado ima 技術 mage acc 管道符 變量 環境變量配置文件 管道符、變量、環境變量配置文件

上傳: FileItem類ServletFileUpload 類DiskFileItemFactory類

plist dbase emit 我們 getname 可能 ati tails 代碼 文件上傳: ServletFileUpload負責處理上傳的文件數據,並將表單中每個輸入項封裝成一個FileItem對象中, 在使用ServletFileUpload對象解析請求時