目錄
- 關系型數據庫:
- Oracle
- SQLServer
- Sybase
- Informix
- Access
- DB2
- mysql
- vfp
- Ingers
- FoxPro
- 非關系型數據庫:
- MongoDB
- Cassandra
- CouchDB
- Hypertable
- Redis
- Riak
- Neo4j
- Hadoop HBase
- Couchbase
- MemcacheDB
- REVENDB
- Voldemort
- 關系型數據庫與非關系型數據庫的對比
關系型數據庫:
關系型數據庫的優勢:
- 保持數據的一致性(事務處理)
- 由于以標準化為前提,數據更新的開銷很小(相同的字段基本上都只有一處)
- 可以進行Join等復雜查詢
缺點:
- 高并發讀寫需求:網站的用戶并發非常高,往往達到每秒上萬次讀寫請求,對于傳統關系型數據庫來說,硬盤I/O是一個很大的瓶頸
- 海量數據的高效率讀寫:對于數據量巨大的網站來說,關系型數據庫的查詢效率非常低
概念:是建立在關系模型基礎上的數據庫,借助于集合代數等數學概念和方法來處理數據庫中的數據。
常見的關系型數據庫
Oracle
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系數據庫管理系統。
SQLServer
美國Microsoft公司推出的一種關系型數據庫系統。SQL Server是一個可擴展的、高性能的、為分布式客戶機/服務器計算所設計的數據庫管理系統,實現了與WindowsNT的有機結合,提供了基于事務的企業級信息管理系統方案。
Sybase
基于客戶/服務器體系結構的數據庫。一般的關系數據庫都是基于主/從式的模型的。在主/從式的結構中,所有的應用都運行在一臺機器上。用戶只是通過終端發命令或簡單地查看應用運行的結果。而在客戶/服務器結構中,應用被分在了多臺機器上運行。一臺機器是另一個系統的客戶,或是另外一些機器的服務器。這些機器通過局域網或廣域網聯接起來。
Informix
Informix是IBM公司出品的關系數據庫管理系統(RDBMS)家族。
Access
Microsoft Office Access是由微軟發布的關系數據庫管理系統。它結合了 MicrosoftJet Database Engine 和 圖形用戶界面兩項特點,是 Microsoft Office 的系統程序之一。
DB2
DB2是IBM一種分布式數據庫解決方案。 DB2就是IBM開發的一種大型關系型數據庫平臺。它支持多用戶或應用程序在同一條SQL語句中查詢不同database甚至不同DBMS中的數據
mysql
MySQL是一種開放源代碼的關系型數據庫管理系統(RDBMS),使用最常用的數據庫管理語言–結構化查詢語言(SQL)進行數據庫管理。
vfp
Visual FoxPro ,是Microsoft公司從Fox公司的FoxBase數據庫軟件經過數次改良,并且移植到Windows之后,得來的應用程序開發軟件,主要用于開發數據管理與運算等方面的軟件。VFP是Microsoft公司推出的最新可視化數據庫管理系統平臺,是功能特別強大的32位數據庫管理系統。它提供了功能完備的工具、極其友好的用戶界面、簡單的數據存取方式、獨一無二的跨平臺技術,具有良好的兼容性、真正的可編譯性和較強的安全性,是目前最快捷、最實用的數據庫管理系統軟件之一。
Ingers
Ingres 是比較早的數據庫系統,開始于加利福尼亞大學柏克萊分校的一個研究項目,該項目開始于 70 年代早期,在 80 年代早期結束。像柏克萊大學的其他研究項目一樣,它的代碼使用BSD許可證。從 80 年代中期,在Ingres 基礎上產生了很多商業數據庫軟件,包括 Sybase、Microsoft SQL Server、NonStop SQL、Informix 和許多其他的系統。在 80 年代中期啟動的后繼項目 Postgres,產生了PostgreSQL、Illustra,無論從任何意義上來說,Ingres都是歷史上最有影響的計算機研究項目之一。
FoxPro
FoxPro是一種功能強大的數據庫,是當今最受歡迎的數據庫管理軟件之一. FoxPro比FoxBASE在功能和性能上又有了很大的改進,主要是引入了窗口、按紐、列表框和文本框等控件,進一步提高了系統的開發能力。
非關系型數據庫:
分類: 
優點:
- 成本:NoSql數據庫簡單易部署,基本都是開源軟件,不需要使用像oracle那樣花費大量成本購買使用,相比關系型數據庫價格便宜。
- 查詢速度:NoSql數據庫將數據存儲于緩存之中,關系型數據庫將數據存儲在硬盤中,自然查詢速度遠不及NoSql數據庫。
- 存儲格式:NoSql數據庫的存儲格式是Key,Value形式,文檔形式,圖片形式等,所以可以存儲基礎類型以及對象或者是集合等各種格式,而數據庫則只支持基礎類型。
- 擴展性:關系型數據庫有類似join這樣的多表查詢機制的限制,導致擴展很艱難。
缺點:
- 維護的工具和資料有限,因為NoSql屬于新技術,不能和關系型數據庫10幾年的技術同日而語。
- 不提供對Sql的支持,如果不支持Sql這樣的工業標準,將產生一定用戶的學習和使用成本。
- 不提供關系型數據庫對事物的處理。
常見的非關系型數據庫
MongoDB
面向文檔的數據庫
MongoDB是個面向文檔的數據庫,使用JSON風格的數據格式。它非常適合于網站的數據存儲、內容管理與緩存應用,并且通過配置可以實現復制與高可用性功能。
MongoDB具有很強的可伸縮性,性能表現優異。它使用C++編寫,基于文檔存儲。此外,MongoDB還支持全文檢索、跨WAN與LAN的高可用性、易于實現的復制、水平擴展、基于文檔的豐富查詢、在數據處理與聚合等方面具有很強的靈活性。
Cassandra
面向列的數據庫
這是個Apache軟件基金會的項目,Cassandra是個分布式數據庫,支持分散的數據存儲,可以實現容錯以及無單點故障等。換句話說,“Cassandra非常適合于那些無法忍受數據丟失的應用”。
CouchDB
面向文檔的數據庫
這也是Apache軟件基金會的一個項目,CouchDB是另一個面向文檔的數據庫,以JSON格式存儲數據。它兼容于ACID,像MongoDB一樣,CouchDB也可以用于存儲網站的數據與內容,以及提供緩存等。你可以通過JavaScript在CouchDB上運行MapReduce查詢。此外,CouchDB還提供了一個非常方便的基于Web的管理控制臺。它非常適合于Web應用。
Hypertable
Hypertable模仿的是Google的BigTable數據庫系統。Hypertable的創建者將“成為高可用、PB規模的數據庫開源標準”作為Hypertable的目標。換言之,Hypertable的設計目標是跨越多個廉價的服務器可靠地存儲大量數據。
Redis
鍵值存儲
這是個開源、高級的鍵值存儲。由于在鍵中使用了hash、set、string、sorted set及list,因此Redis也稱作數據結構服務器。這個系統可以幫助你執行原子操作,比如說增加hash中的值、集合的交集運算、字符串拼接、差集與并集等。Redis通過內存中的數據集實現了高性能。此外,該數據庫還兼容于大多數編程語言。
Riak
Riak是最為強大的分布式數據庫之一,它提供了輕松且可預測的伸縮能力,向用戶提供了快速測試、原型與應用部署能力,從而簡化應用的開發過程。
Neo4j
Neo4j是一款NoSQL圖型數據庫,具有非常高的性能。它擁有一個健壯且成熟的系統的所有特性,向程序員提供了靈活且面向對象的網絡結構,可以讓開發者充分享受到擁有完整事務特性的數據庫的所有好處。相較于RDBMS,Neo4j還對某些應用提供了不少性能改進。
Hadoop HBase
HBase是一款可伸縮、分布式的大數據存儲。它可以用在數據的實時與隨機訪問的場景下。HBase擁有模塊化與線性的可伸縮性,并且能夠保證讀寫的嚴格一致性。HBase提供了一個Java API,可以實現輕松的客戶端訪問;提供了可配置且自動化的表分區功能;還有Bloom過濾器以及block緩存等特性。
Couchbase
雖然Couchbase是CouchDB的派生,不過它已經成為了一款功能完善的數據庫產品。它向文檔數據庫轉移的趨勢會讓MongoDB感到壓力。每個節點上它都是多線程的,這是個非常主要的可伸縮性優勢,特別是當托管在自定義或是Bare-Metal硬件上時更是如此。借助于一些非常棒的集成特性,諸如與Hadoop的集成,Couchbase對于數據存儲來說是個非常不錯的選擇。
MemcacheDB
臨時性鍵值存儲
這是個分布式的鍵值存儲系統,我們不應該將其與緩存解決方案搞混;相反,它是個持久化存儲引擎,用于數據存儲并以非常快速且可靠的方式檢索數據。它遵循memcache協議。其存儲后端用于Berkeley DB中,支持諸如復制與事務等特性。
REVENDB
RAVENDB是第二代開源數據庫,它面向文檔存儲并且無模式,這樣就可以輕松將對象存儲到其中了。它提供了非常靈活且快速的查詢,通過對復制、多租與分片提供開箱即用的支持使得我們可以非常輕松地實現伸縮功能。它對ACID事務提供了完整的支持,同時又能保證數據的安全性。除了高性能之外,它還通過bundle提供了輕松的可擴展性。
Voldemort
這是個自動復制的分布式存儲系統。它提供了自動化的數據分區功能,透明的服務器失敗處理、可插拔的序列化功能、獨立的節點、數據版本化以及跨越各種數據中心的數據分發功能。
關系型數據庫與非關系型數據庫的對比

數據庫多如牛毛,而且有一些數據庫提供了相似的特性,本文所列出的只是其中比較有代表性的12款數據庫介紹。你是否使用過他們呢?他們有哪些特性打動了你,讓你決定使用他們呢?非常歡迎將你的經歷與看法與我們一起分享,希望大家以后多多支持腳本之家!
您可能感興趣的文章:- NoSQL開篇之為什么要使用NoSQL
- MySQL系列之開篇 MySQL關系型數據庫基礎概念
- MySQL數據庫char與varchar的區別分析及使用建議
- asp經典入門教程 在ASP中使用SQL 語句
- 使用 Osql 工具管理 SQL Server 桌面引擎 (MSDE 2000)應用介紹
- Memcached構建緩存服務器的方法