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