常用數(shù)據(jù)庫(kù)有:
讓客戶(hù)滿意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、網(wǎng)絡(luò)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、雨城網(wǎng)站維護(hù)、網(wǎng)站推廣。
1、關(guān)系型數(shù)據(jù)庫(kù)
關(guān)系型數(shù)據(jù)庫(kù)是由IBM的E.F. Codd于1970年發(fā)明的,它是一個(gè)表格數(shù)據(jù)庫(kù),其中定義了數(shù)據(jù),因此可以以多種不同的方式對(duì)其進(jìn)行重組和訪問(wèn)。關(guān)系數(shù)據(jù)庫(kù)由一組表組成,其中的數(shù)據(jù)屬于預(yù)定義的類(lèi)別。每個(gè)表在一個(gè)列中至少有一個(gè)數(shù)據(jù)類(lèi)別,并且每一行對(duì)于列中定義的類(lèi)別都有一個(gè)特定的數(shù)據(jù)實(shí)例。
2、分布式數(shù)據(jù)庫(kù)
分布式數(shù)據(jù)庫(kù)是一種數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)存儲(chǔ)在多個(gè)物理位置,處理在網(wǎng)絡(luò)中的不同點(diǎn)之間分散或復(fù)制。分布式數(shù)據(jù)庫(kù)可以是同構(gòu)的,也可以是異構(gòu)的。同構(gòu)分布式數(shù)據(jù)庫(kù)系統(tǒng)中的所有物理位置都具有相同的底層硬件,并運(yùn)行相同的操作系統(tǒng)和數(shù)據(jù)庫(kù)應(yīng)用程序。異構(gòu)分布式數(shù)據(jù)庫(kù)中的硬件、操作系統(tǒng)或數(shù)據(jù)庫(kù)應(yīng)用程序在每個(gè)位置上可能是不同的。
3、云數(shù)據(jù)庫(kù)
云數(shù)據(jù)庫(kù)是針對(duì)虛擬化環(huán)境優(yōu)化或構(gòu)建的數(shù)據(jù)庫(kù)。云數(shù)據(jù)庫(kù)提供了一些好處,比如可以按每次使用支付存儲(chǔ)容量和帶寬的費(fèi)用,還可以根據(jù)需要提供可伸縮性和高可用性。云數(shù)據(jù)庫(kù)還為企業(yè)提供了在軟件即服務(wù)部署中支持業(yè)務(wù)應(yīng)用程序的機(jī)會(huì)。
4、NoSQL數(shù)據(jù)庫(kù)
NoSQL數(shù)據(jù)庫(kù)對(duì)于大型分布式數(shù)據(jù)集非常有用。NoSQL數(shù)據(jù)庫(kù)對(duì)于關(guān)系數(shù)據(jù)庫(kù)無(wú)法解決的大數(shù)據(jù)性能問(wèn)題非常有效。當(dāng)組織必須分析大量非結(jié)構(gòu)化數(shù)據(jù)或存儲(chǔ)在云中多個(gè)虛擬服務(wù)器上的數(shù)據(jù)時(shí),它們是最有效的。
5、面向?qū)ο蟮臄?shù)據(jù)庫(kù)
使用面向?qū)ο缶幊陶Z(yǔ)言創(chuàng)建的項(xiàng)通常存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中,但是面向?qū)ο髷?shù)據(jù)庫(kù)非常適合于這些項(xiàng)。面向?qū)ο蟮臄?shù)據(jù)庫(kù)是圍繞對(duì)象(而不是操作)和數(shù)據(jù)(而不是邏輯)組織的。例如,關(guān)系數(shù)據(jù)庫(kù)中的多媒體記錄可以是可定義的數(shù)據(jù)對(duì)象,而不是字母數(shù)字值。
6、圖形數(shù)據(jù)庫(kù)
面向圖形的數(shù)據(jù)庫(kù)是一種NoSQL數(shù)據(jù)庫(kù),它使用圖形理論存儲(chǔ)、映射和查詢(xún)關(guān)系。圖數(shù)據(jù)庫(kù)基本上是節(jié)點(diǎn)和邊的集合,其中每個(gè)節(jié)點(diǎn)表示一個(gè)實(shí)體,每個(gè)邊表示節(jié)點(diǎn)之間的連接。
數(shù)據(jù)庫(kù)可以按照內(nèi)容類(lèi)型分類(lèi):書(shū)目、全文、數(shù)字和圖像。在計(jì)算中,數(shù)據(jù)庫(kù)有時(shí)根據(jù)其組織方法進(jìn)行分類(lèi)。有許多不同類(lèi)型的數(shù)據(jù)庫(kù),從最流行的方法關(guān)系數(shù)據(jù)庫(kù)到分布式數(shù)據(jù)庫(kù)、云數(shù)據(jù)庫(kù)或NoSQL數(shù)據(jù)庫(kù)。
常用數(shù)據(jù)庫(kù):
1、關(guān)系型數(shù)據(jù)庫(kù)
關(guān)系型數(shù)據(jù)庫(kù)是由IBM的E.F. Codd于1970年發(fā)明的,它是一個(gè)表格數(shù)據(jù)庫(kù),其中定義了數(shù)據(jù),因此可以以多種不同的方式對(duì)其進(jìn)行重組和訪問(wèn)。
關(guān)系數(shù)據(jù)庫(kù)由一組表組成,其中的數(shù)據(jù)屬于預(yù)定義的類(lèi)別。每個(gè)表在一個(gè)列中至少有一個(gè)數(shù)據(jù)類(lèi)別,并且每一行對(duì)于列中定義的類(lèi)別都有一個(gè)特定的數(shù)據(jù)實(shí)例。
結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)用戶(hù)和應(yīng)用程序接口。關(guān)系數(shù)據(jù)庫(kù)易于擴(kuò)展,并且可以在原始數(shù)據(jù)庫(kù)創(chuàng)建之后添加新的數(shù)據(jù)類(lèi)別,而不需要修改所有現(xiàn)有應(yīng)用程序。
2、分布式數(shù)據(jù)庫(kù)
分布式數(shù)據(jù)庫(kù)是一種數(shù)據(jù)庫(kù),其中部分?jǐn)?shù)據(jù)庫(kù)存儲(chǔ)在多個(gè)物理位置,處理在網(wǎng)絡(luò)中的不同點(diǎn)之間分散或復(fù)制。
分布式數(shù)據(jù)庫(kù)可以是同構(gòu)的,也可以是異構(gòu)的。同構(gòu)分布式數(shù)據(jù)庫(kù)系統(tǒng)中的所有物理位置都具有相同的底層硬件,并運(yùn)行相同的操作系統(tǒng)和數(shù)據(jù)庫(kù)應(yīng)用程序。異構(gòu)分布式數(shù)據(jù)庫(kù)中的硬件、操作系統(tǒng)或數(shù)據(jù)庫(kù)應(yīng)用程序在每個(gè)位置上可能是不同的。
3、云數(shù)據(jù)庫(kù)
云數(shù)據(jù)庫(kù)是針對(duì)虛擬化環(huán)境(混合云、公共云或私有云)優(yōu)化或構(gòu)建的數(shù)據(jù)庫(kù)。云數(shù)據(jù)庫(kù)提供了一些好處,比如可以按每次使用支付存儲(chǔ)容量和帶寬的費(fèi)用,還可以根據(jù)需要提供可伸縮性和高可用性。
云數(shù)據(jù)庫(kù)還為企業(yè)提供了在軟件即服務(wù)部署中支持業(yè)務(wù)應(yīng)用程序的機(jī)會(huì)。
4、NoSQL數(shù)據(jù)庫(kù)
NoSQL數(shù)據(jù)庫(kù)對(duì)于大型分布式數(shù)據(jù)集非常有用。
NoSQL數(shù)據(jù)庫(kù)對(duì)于關(guān)系數(shù)據(jù)庫(kù)無(wú)法解決的大數(shù)據(jù)性能問(wèn)題非常有效。當(dāng)組織必須分析大量非結(jié)構(gòu)化數(shù)據(jù)或存儲(chǔ)在云中多個(gè)虛擬服務(wù)器上的數(shù)據(jù)時(shí),它們是最有效的。
5、面向?qū)ο蟮臄?shù)據(jù)庫(kù)
使用面向?qū)ο缶幊陶Z(yǔ)言創(chuàng)建的項(xiàng)通常存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中,但是面向?qū)ο髷?shù)據(jù)庫(kù)非常適合于這些項(xiàng)。
面向?qū)ο蟮臄?shù)據(jù)庫(kù)是圍繞對(duì)象(而不是操作)和數(shù)據(jù)(而不是邏輯)組織的。例如,關(guān)系數(shù)據(jù)庫(kù)中的多媒體記錄可以是可定義的數(shù)據(jù)對(duì)象,而不是字母數(shù)字值。
6、圖形數(shù)據(jù)庫(kù)
面向圖形的數(shù)據(jù)庫(kù)是一種NoSQL數(shù)據(jù)庫(kù),它使用圖形理論存儲(chǔ)、映射和查詢(xún)關(guān)系。圖數(shù)據(jù)庫(kù)基本上是節(jié)點(diǎn)和邊的集合,其中每個(gè)節(jié)點(diǎn)表示一個(gè)實(shí)體,每個(gè)邊表示節(jié)點(diǎn)之間的連接。
圖形數(shù)據(jù)庫(kù)在分析互連方面越來(lái)越受歡迎。例如,公司可以使用圖形數(shù)據(jù)庫(kù)從社交媒體中挖掘關(guān)于客戶(hù)的數(shù)據(jù)。
一般將NoSQL數(shù)據(jù)庫(kù)分為四大類(lèi):鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)、列存儲(chǔ)數(shù)據(jù)庫(kù)、文檔型數(shù)據(jù)庫(kù)和圖形(Graph)數(shù)據(jù)庫(kù)。它們的數(shù)據(jù)模型、優(yōu)缺點(diǎn)、典型應(yīng)用場(chǎng)景。
鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)Key指向Value的鍵值對(duì),通常用hash表來(lái)實(shí)現(xiàn)查找速度快數(shù)據(jù)無(wú)結(jié)構(gòu)化(通常只被當(dāng)作字符串或者二進(jìn)制數(shù)據(jù))內(nèi)容緩存,主要用于處理大量數(shù)據(jù)的高訪問(wèn)負(fù)載,也用于一些日志系統(tǒng)等。
列存儲(chǔ)數(shù)據(jù)庫(kù),以列簇式存儲(chǔ),將同一列數(shù)據(jù)存在一起查找速度快,可擴(kuò)展性強(qiáng),更容易進(jìn)行分布式擴(kuò)展功能相對(duì)局限分布式的文件系統(tǒng)。
文檔型數(shù)據(jù)庫(kù),Key-Value對(duì)應(yīng)的鍵值對(duì),Value為結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)要求不嚴(yán)格,表結(jié)構(gòu)可變(不需要像關(guān)系型數(shù)據(jù)庫(kù)一樣需預(yù)先定義表結(jié)構(gòu)),查詢(xún)性能不高,而且缺乏統(tǒng)一的查詢(xún)語(yǔ)法,Web應(yīng)用。
圖形(Graph)數(shù)據(jù)庫(kù),圖結(jié)構(gòu),利用圖結(jié)構(gòu)相關(guān)算法(如最短路徑尋址,N度關(guān)系查找等),很多時(shí)候需要對(duì)整個(gè)圖做計(jì)算才能得出需要的信息,而且這種結(jié)構(gòu)不太好做分布式的集群方案,社交網(wǎng)絡(luò),推薦系統(tǒng)等。
1. 鍵值數(shù)據(jù)庫(kù)
相關(guān)產(chǎn)品:Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached
應(yīng)用:內(nèi)容緩存
優(yōu)點(diǎn):擴(kuò)展性好、靈活性好、大量寫(xiě)操作時(shí)性能高
缺點(diǎn):無(wú)法存儲(chǔ)結(jié)構(gòu)化信息、條件查詢(xún)效率較低
使用者:百度云(Redis)、GitHub(Riak)、BestBuy(Riak)、Twitter(Ridis和Memcached)
2. 列族數(shù)據(jù)庫(kù)
相關(guān)產(chǎn)品:BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS
應(yīng)用:分布式數(shù)據(jù)存儲(chǔ)與管理
優(yōu)點(diǎn):查找速度快、可擴(kuò)展性強(qiáng)、容易進(jìn)行分布式擴(kuò)展、復(fù)雜性低
使用者:Ebay(Cassandra)、Instagram(Cassandra)、NASA(Cassandra)、Facebook(HBase)
3. 文檔數(shù)據(jù)庫(kù)
相關(guān)產(chǎn)品:MongoDB、CouchDB、ThruDB、CloudKit、Perservere、Jackrabbit
應(yīng)用:存儲(chǔ)、索引并管理面向文檔的數(shù)據(jù)或者類(lèi)似的半結(jié)構(gòu)化數(shù)據(jù)
優(yōu)點(diǎn):性能好、靈活性高、復(fù)雜性低、數(shù)據(jù)結(jié)構(gòu)靈活
缺點(diǎn):缺乏統(tǒng)一的查詢(xún)語(yǔ)言
使用者:百度云數(shù)據(jù)庫(kù)(MongoDB)、SAP(MongoDB)
4. 圖形數(shù)據(jù)庫(kù)
圖形數(shù)據(jù)庫(kù)-使用圖作為數(shù)據(jù)模型來(lái)存儲(chǔ)數(shù)據(jù)。
相關(guān)產(chǎn)品:Neo4J、OrientDB、InfoGrid、GraphDB
應(yīng)用:大量復(fù)雜、互連接、低結(jié)構(gòu)化的圖結(jié)構(gòu)場(chǎng)合,如社交網(wǎng)絡(luò)、推薦系統(tǒng)等
優(yōu)點(diǎn):靈活性高、支持復(fù)雜的圖形算法、可用于構(gòu)建復(fù)雜的關(guān)系圖譜
缺點(diǎn):復(fù)雜性高、只能支持一定的數(shù)據(jù)規(guī)模
使用者:Adobe(Neo4J)、Cisco(Neo4J)、T-Mobile(Neo4J)
NoSQL太火,冒出太多產(chǎn)品了,保守估計(jì)也成百上千了。
互聯(lián)網(wǎng)公司常用的基本集中在以下幾種,每種只舉一個(gè)比較常見(jiàn)或者應(yīng)用比較成功的例子吧。
1. In-Memory KV Store : Redis
in memory key-value store,同時(shí)提供了更加豐富的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算的能力,成功用法是替代memcached,通過(guò)checkpoint和commit log提供了快速的宕機(jī)恢復(fù),同時(shí)支持replication提供讀可擴(kuò)展和高可用。
2. Disk-Based KV Store: Leveldb
真正基于磁盤(pán)的key-value storage, 模型單一簡(jiǎn)單,數(shù)據(jù)量不受限于內(nèi)存大小,數(shù)據(jù)落盤(pán)高可靠,Google的幾位大神出品的精品,LSM模型天然寫(xiě)優(yōu)化,順序?qū)懕P(pán)的方式對(duì)于新硬件ssd再適合不過(guò)了,不足是僅提供了一個(gè)庫(kù),需要自己封裝server端。
3. Document Store: Mongodb
分布式nosql,具備了區(qū)別mysql的最大亮點(diǎn):可擴(kuò)展性。mongodb 最新引人的莫過(guò)于提供了sql接口,是目前nosql里最像mysql的,只是沒(méi)有ACID的特性,發(fā)展很快,支持了索引等特性,上手容易,對(duì)于數(shù)據(jù)量遠(yuǎn)超內(nèi)存限制的場(chǎng)景來(lái)說(shuō),還需要慎重。
4. Column Table Store: HBase
這個(gè)富二代似乎不用贅述了,最大的優(yōu)勢(shì)是開(kāi)源,對(duì)于普通的scan和基于行的get等基本查詢(xún),性能完全不是問(wèn)題,只是只提供裸的api,易用性上是短板,可擴(kuò)展性方面是最強(qiáng)的,其次坐上了Hadoop的快車(chē),社區(qū)發(fā)展很快,各種基于其上的開(kāi)源產(chǎn)品不少,來(lái)解決諸如join、聚集運(yùn)算等復(fù)雜查詢(xún)。