什么是關系型數據庫,常用的有哪些?


什么是數據庫?

  數據庫(Database)是按照數據結構來組織、存儲和管理數據的建立在計算機存儲設備上的倉庫。

數據庫如何分類?

  數據庫通常分為層次式數據庫、網絡式數據庫和關系式數據庫三種。而不同的數據庫是按不同的數據結構來聯系和組織的。在當今的互聯網中,最常見的數據庫模型主要是兩種,即關系型數據庫和非關系型數據庫。

關系型數據庫比較

關系型數據庫

非關系型數據庫比較

關系型數據庫

下面看看一些常用的關系型數據庫

1、Neo4j 

  是一個高性能的 NoSQL 圖形數據庫,把數據保存為圖中的節點以及節點之間的關系。Neo4j 中兩個最基本的概念是節點和邊

節點表示實體,邊則表示實體之間的關系。節點和邊都可以有自己的屬性,不同實體通過各種不同的關系關聯起來,形成復雜的對象圖。

Neo4j 提供了在對象圖上進行查找和遍歷的功能:深度搜索、廣度搜索。

特點:

完整的ACID支持;高可用性;輕易擴展到上億級別的節點和關系;通過遍歷工具高速檢索數據;屬性是由Key-Value鍵值對組成。

應用:社交網絡,歌曲信息,狀態圖

關系型數據庫

2、Hbase

列式存儲以流的方式在列中存儲所有的數據。對於任何記錄,索引都可以快速地獲取列上的數據;列式存儲支持行檢索,但這需要從每個列獲取匹配的列值,並重新組成行。

HBase(Hadoop Database)是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。

HBase是Google BigTable的開源實現,模仿並提供了基於Google文件系統的BigTable數據庫的所有功能。HBase可以直接使用本地文件系統或者Hadoop作為數據存儲方式,不過為了提高數據可靠性和系統的健壯性,發揮HBase處理大數據量等功能,需要使用Hadoop作為文件系統。HBase僅能通過主鍵(row key)和主鍵的range來檢索數據,僅支持單行事務,主要用來存儲非結構化和半結構化的松散數據。

Hbase中表的特點:大,稀疏,面向列

關系型數據庫

3、MongodDB

  一個基於分布式文件存儲的開源數據庫系統,為WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key value)對組成。

特點:

  面向集合存儲,易存儲對象類型的數據;模式自由;支持動態查詢;支持完全索引,包含內部對象;支持查詢;支持復制和故障恢復;使用高效的二進制數據存儲,包括大型對象(如視頻);自動處理碎片,以支持雲計算層次的擴展性;支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言;文件存儲格式為BSON(一種JSON的擴展);可通過網絡訪問。

  適用場景:網站數據;緩存;大尺寸,低價值的數據;高伸縮性的場景;用於對象及JSON 數據的存儲。

  不適用場景:高度事務性的系統;傳統的商業智能應用;需要SQL 的問題。

關系型數據庫

4、Redis

  Redis是一個key-value存儲系統,key為字符串類型,只能通過key對value進行操作,支持的數據類型包括string、list、set、zset(有序集合)和hash。Redis支持主從同步,數據可以從主服務器向任意數量的從服務器上同步。

  Redis事務允許一組命令在單一步驟中執行。事務有兩個屬性:在一個事務中的所有命令作為單個獨立的操作順序執行;Redis事務是原子的,原子意味着要么所有的命令都執行,要么都不執行。

  Redis 事務由指令 MULTI 發起的,之后傳遞需要在事務中和整個事務中,最后由 EXEC 命令執行所有命令的列表。

舉個例子:假設我們用關系型數據設計出以下學生選課的數據庫

關系型數據庫

關系型數據庫

對比一下優點缺點

關系型數據庫

5、NewSQL

  是對各種新的可擴展/高性能數據庫的簡稱。具有NoSQL對海量數據的存儲管理能力,保持了傳統數據庫支持ACID和SQL等特性。

NewSQL共同特點:支持關系數據模型;使用SQL作為其主要的接口。

關系型數據庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM