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