日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

五大存储模型关系模型、键值存储、文档存储、列式存储、图形数据

發布時間:2025/7/25 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 五大存储模型关系模型、键值存储、文档存储、列式存储、图形数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

五大存儲模型關系模型、鍵值存儲、文檔存儲、列式存儲、圖形數據

時間:2014-06-12 16:15來源:知行網www.zhixing123.cn?編輯:麥田守望者

昨天跟一同事討論Sybase是不是關系型數據庫,同事說Sybase是列式存儲,應該屬于NoSQL,我一直的記憶Sybase是關系型數據庫,后來專門去查了資料,才發現同事所說的Sybase IO是列式存儲;而我說的是Sybase SQL Server,是關系型數據庫。網上看到這篇文章,算是對幾種數據庫模型補補課。

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

1. 關系型數據庫(行式數據庫) MySQL Sybase Oracle

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

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

例如以下的一個表:

EmpIdLastnameFirstnameSalary
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,Hbase

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

存儲格式 :

列式數據庫把一列中的數據值串在一起存儲起來,然后再存儲下一列的數據,以此類推。

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.

具體請參考如下地址:http://en.wikipedia.org/wiki/Column-oriented_DBMS.

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就解決了這些問題。

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

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

注:其實Hbase也屬于列式存儲

4. 文檔存儲

文檔存儲支持對結構化數據的訪問,不同于關系模型的是,文檔存儲沒有強制的架構

事實上,文檔存儲以封包鍵值對的方式進行存儲。在這種情況下,應用對要檢索的封包采取一些約定,或者利用存儲引擎的能力將不同的文檔劃分成不同的集合,以管理數據。

與關系模型不同的是,文檔存儲模型支持嵌套結構。例如,文檔存儲模型支持XML和JSON文檔,字段的“值”又可以嵌套存儲其它文檔。文檔存儲模型也支持數組和列值鍵。

與鍵值存儲不同的是,文檔存儲關心文檔的內部結構。這使得存儲引擎可以直接支持二級索引,從而允許對任意字段進行高效查詢。支持文檔嵌套存儲的能力,使得查詢語言具有搜索嵌套對象的能力,XQuery就是一個例子。MongoDB通過支持在查詢中指定JSON字段路徑實現類似的功能。

MongoDB 對SQL 和ACID 支持的比較全面的數據庫了。不過, 比較多的還是介紹日志的采集和存儲,小文件的分布式存儲,類似互聯網微博應用的數據存儲等方面的內容。

?

5.圖形數據庫

圖形數據庫存儲頂點和邊的信息,有的支持添加注釋。

圖形數據庫可用于對事物建模,如社交圖譜、真實世界的各種對象。IMDB(Internet MovieDatabase)站點的內容就組成了一幅復雜的圖像,演員與電影彼此交織在一起。

圖形數據庫的查詢語言一般用于查找圖形中斷點的路徑,或端點之間路徑的屬性。Neo4j是一個典型的圖形數據庫。

總結

以上是生活随笔為你收集整理的五大存储模型关系模型、键值存储、文档存储、列式存储、图形数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。