NoSQL(Not Only Structured Query) Language

為什會有NoSQL?

Google的搜尋、Facebook的社交與Instagram的圖片等服務需要處理PB等級的巨量資料,傳統關聯式資料庫架構已經不敷使用,因此有人提出,如NoSQL資料庫,它可以水平擴充,在面對巨量資料能有較佳的效能。

NoSQL類型

  1. 鍵值資料庫 此資料模型的設計理念來自雜湊表,在Key與value之間建立對應關係,透過key可以直接存取value ,進而進行基本操作。此模型著名的實作,Redis、Memcached、Riak。

關聯式資料庫

學號 姓名 性別 興趣
A001 黃健倫 騎單車、打球
A002 卓哲宇 打球

鍵值資料庫

{key:"A001_姓名", value:"黃健倫"}
{key:"A001_性別", value:"男"}
{key:"A001_興趣", value:"騎單車、打球"}
{key:"A002_姓名", value:"卓哲宇"}
{key:"A002_性別", value:"男"}
{key:"A002_興趣", value:"打球"}

2.文件導向資料庫 文件導向資料庫(Document Oriented Database)是將XML或JSON文件導入NoSQL概念中。著名的實作包括:MongoDB、 CouchDB、RavenDB等。文件導向資料庫主要以集合(Collection)的方式儲存資料,而資料被稱為文件(Document)。

關聯式資料庫 文件導向資料庫
資料表 資料表(Table) 集合(Collection)
資料 列(Row) 文件(Document)
{"學號":"A001", "姓名":"黃健倫", "性別":"男", "興趣":"騎單車、打球"}
{"學號":"A002", "姓名":"卓哲宇", "性別":"男", "興趣":"打球"}

3.列式資料庫 列式資料庫是Column儲存,將同一Column資料存在一起,著名的實作包括:Cassandra、Google BigTable、Hadoop HBase。

學號 姓名
A001 黃健倫
A002 卓哲宇

[姓名] 欄位資料表

學號 性別
A001
A002

[性別] 欄位資料表

學號 興趣
A001 騎單車、打球
A002 打球

[興趣] 欄位資料表

4.圖形資料庫 圖型資料庫(Graph Oriented Database)是採用圖結構的概念來儲存資料,並利用圖結構相關演算法提高性能。著名的實
作包括:Neo4j、HyperGraphDB與FlockDB(Twitter)等。

results matching ""

    No results matching ""