|
1.1數(shù)據(jù)庫(kù)介紹 1.1.1什么是數(shù)據(jù)庫(kù) 簡(jiǎn)單的說(shuō),數(shù)據(jù)庫(kù)(database)就是一個(gè)存放數(shù)據(jù)的倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)是按照一定的數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)的組織形式或數(shù)據(jù)之間的聯(lián)系)來(lái)組織、存儲(chǔ)的,我們可以通過(guò)數(shù)據(jù)提供的多種方法來(lái)管理數(shù)據(jù)庫(kù)里的數(shù)據(jù)。 當(dāng)人們收集了大量的數(shù)據(jù)后,應(yīng)該把它們保存起來(lái)進(jìn)入近一步的處理,進(jìn)一步的抽取有用的信息。當(dāng)年人們把數(shù)據(jù)存放在文件柜中,可現(xiàn)在隨著社會(huì)的發(fā)展,數(shù)據(jù)量急劇增長(zhǎng),現(xiàn)在人們就借助計(jì)算機(jī)和數(shù)據(jù)庫(kù)技術(shù)科學(xué)的保存大量的數(shù)據(jù),以便能更好的利用這些數(shù)據(jù)資源。 1.2數(shù)據(jù)庫(kù)的種類(lèi) 數(shù)據(jù)庫(kù)通常分為層次式數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)式數(shù)據(jù)庫(kù)和關(guān)系式數(shù)據(jù)庫(kù)三種。而不同的數(shù)據(jù)庫(kù)是按不同的數(shù)據(jù)結(jié)構(gòu)來(lái)聯(lián)系和組織的。而在當(dāng)今的互聯(lián)網(wǎng)中,最常見(jiàn)的數(shù)據(jù)庫(kù)模型主要是兩種,即關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)。 1.2.1關(guān)系型數(shù)據(jù)庫(kù)介紹 (1)、關(guān)系型數(shù)據(jù)庫(kù)的由來(lái) 雖然網(wǎng)狀數(shù)據(jù)庫(kù)和層次數(shù)據(jù)庫(kù)已經(jīng)很好的解決了數(shù)據(jù)的集中和共享問(wèn)題,但是在數(shù)據(jù)庫(kù)獨(dú)立性和抽象級(jí)別上扔有很大欠缺。用戶(hù)在對(duì)這兩種數(shù)據(jù)庫(kù)進(jìn)行存取時(shí),仍然需要明確數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),指出存取路徑。而關(guān)系型數(shù)據(jù)庫(kù)就可以較好的解決這些問(wèn)題。 (2)、關(guān)系型數(shù)據(jù)庫(kù)介紹 關(guān)系型數(shù)據(jù)庫(kù)模型是把復(fù)雜的數(shù)據(jù)結(jié)構(gòu)歸結(jié)為簡(jiǎn)單的二元關(guān)系(即二維表格形式)。在關(guān)系型數(shù)據(jù)庫(kù)中,對(duì)數(shù)據(jù)的操作幾乎全部建立在一個(gè)或多個(gè)關(guān)系表格上,通過(guò)對(duì)這些關(guān)聯(lián)的表格分類(lèi)、合并、連接或選取等運(yùn)算來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的管理。關(guān)系型數(shù)據(jù)庫(kù)誕生40多年了,從理論產(chǎn)生發(fā)展到現(xiàn)實(shí)產(chǎn)品,例如:Oracle和MySQL,Oracle在數(shù)據(jù)庫(kù)領(lǐng)域上升到霸主地位,形成每年高達(dá)數(shù)百億美元的龐大產(chǎn)業(yè)市場(chǎng)。 (3)、關(guān)系型數(shù)據(jù)庫(kù)表格之間的關(guān)系舉例 1.2.2非關(guān)系型數(shù)據(jù)庫(kù)介紹 1.2.2.1 非關(guān)系型數(shù)據(jù)庫(kù)誕生背景 NoSQL,泛指非關(guān)系型的數(shù)據(jù)庫(kù)。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類(lèi)型的web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問(wèn)題,而非關(guān)系型的數(shù)據(jù)庫(kù)則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。NoSql數(shù)據(jù)庫(kù)在特定的場(chǎng)景下可以發(fā)揮出難以想象的高效率和高性能,它是作為對(duì)傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的一個(gè)有效的補(bǔ)充。 NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,是一項(xiàng)全新的數(shù)據(jù)庫(kù)革命性運(yùn)動(dòng),早期就有人提出,發(fā)展至2009年趨勢(shì)越發(fā)高漲。NoSQL的擁護(hù)者們提倡運(yùn)用非關(guān)系型的數(shù)據(jù)存儲(chǔ),相對(duì)于鋪天蓋地的關(guān)系型數(shù)據(jù)庫(kù)運(yùn)用,這一概念無(wú)疑是一種全新的思維的注入。 1.2.2.2 非關(guān)系型數(shù)據(jù)庫(kù)種類(lèi) (1)、鍵值存儲(chǔ)數(shù)據(jù)庫(kù)(key-value) 鍵值數(shù)據(jù)庫(kù)就類(lèi)似傳統(tǒng)語(yǔ)言中使用的哈希表。可以通過(guò)key來(lái)添加、查詢(xún)或者刪除數(shù)據(jù)庫(kù),因?yàn)槭褂胟ey主鍵訪(fǎng)問(wèn),所以會(huì)獲得很高的性能及擴(kuò)展性。 鍵值數(shù)據(jù)庫(kù)主要使用一個(gè)哈希表,這個(gè)表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)鍵值數(shù)據(jù)庫(kù)主要使用一個(gè)哈希表,這個(gè)表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)據(jù)。Key/value模型對(duì)于IT系統(tǒng)來(lái)說(shuō)的優(yōu)勢(shì)在于簡(jiǎn)單、易部署、高并發(fā)。典型產(chǎn)品:Memcached、Redis、MemcacheDB (2)、列存儲(chǔ)(Column-oriented)數(shù)據(jù)庫(kù) 列存儲(chǔ)數(shù)據(jù)庫(kù)將數(shù)據(jù)存儲(chǔ)在列族中,一個(gè)列族存儲(chǔ)經(jīng)常被一起查詢(xún)的相關(guān)數(shù)據(jù),比如人類(lèi),我們經(jīng)常會(huì)查詢(xún)某個(gè)人的姓名和年齡,而不是薪資。這種情況下姓名和年齡會(huì)被放到一個(gè)列族中,薪資會(huì)被放到另一個(gè)列族中。這種數(shù)據(jù)庫(kù)通常用來(lái)應(yīng)對(duì)分布式存儲(chǔ)海量數(shù)據(jù)。 典型產(chǎn)品:Cassandra、HBase (3)、面向文檔(Document-Oriented)數(shù)據(jù)庫(kù) 文檔型數(shù)據(jù)庫(kù)的靈感是來(lái)自于Lotus Notes辦公軟件,而且它同第一種鍵值數(shù)據(jù)庫(kù)類(lèi)似。該類(lèi)型的數(shù)據(jù)模型是版本化的文檔,半結(jié)構(gòu)化的文檔以特定的格式存儲(chǔ),比如JSON。文檔型數(shù)據(jù)庫(kù)可以看作是鍵值數(shù)據(jù)庫(kù)的升級(jí)版,允許之間嵌套鍵值。而且文檔型數(shù)據(jù)庫(kù)比鍵值數(shù)據(jù)庫(kù)的查詢(xún)效率更高。 面向文檔數(shù)據(jù)庫(kù)會(huì)將數(shù)據(jù)以文檔形式存儲(chǔ)。每個(gè)文檔都是自包含的數(shù)據(jù)單元,是一系列數(shù)據(jù)項(xiàng)的集合。每個(gè)數(shù)據(jù)項(xiàng)都有一個(gè)名詞與對(duì)應(yīng)值,值既可以是簡(jiǎn)單的數(shù)據(jù)類(lèi)型,如字符串、數(shù)字和日期等;也可以是復(fù)雜的類(lèi)型,如有序列表和關(guān)聯(lián)對(duì)象。數(shù)據(jù)存儲(chǔ)的最小單位是文檔,同一個(gè)表中存儲(chǔ)的文檔屬性可以是不同的,數(shù)據(jù)可以使用XML、JSON或JSONB等多種形式存儲(chǔ)。 典型產(chǎn)品:MongoDB、CouchDB (4)、圖形數(shù)據(jù)庫(kù) 圖形數(shù)據(jù)庫(kù)允許我們將數(shù)據(jù)以圖的方式存儲(chǔ)。實(shí)體會(huì)被作為頂點(diǎn),而實(shí)體之間的關(guān)系則會(huì)被作為邊。比如我們有三個(gè)實(shí)體,Steve Jobs、Apple和Next,則會(huì)有兩個(gè)“Founded by”的邊將Apple和Next連接到Steve Jobs。 典型產(chǎn)品:Neo4J、InforGrid 1.3 常用關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品介紹 1.3.1 Oracle數(shù)據(jù)庫(kù) ORACLE數(shù)據(jù)庫(kù)系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是目前最流行的客戶(hù)/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。比如SilverStream就是基于數(shù)據(jù)庫(kù)的一種中間件。ORACLE數(shù)據(jù)庫(kù)是目前世界上使用最為廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù)它實(shí)現(xiàn)了分布式處理功能。但它的所有知識(shí),只要在一種機(jī)型上學(xué)習(xí)了ORACLE知識(shí),便能在各種類(lèi)型的機(jī)器上使用它。Oracle數(shù)據(jù)庫(kù)最新版本為Oracle Database 12c。Oracle數(shù)據(jù)庫(kù)12c 引入了一個(gè)新的多承租方架構(gòu),使用該架構(gòu)可輕松部署和管理數(shù)據(jù)庫(kù)云。此外,一些創(chuàng)新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個(gè)數(shù)據(jù)庫(kù),而Automatic Data Optimization和和靈活性,如Oracle Multitenant可快速整合多個(gè)數(shù)據(jù)庫(kù),而Automatic Data Optimization和Heat Map能以更高的密度壓縮數(shù)據(jù)和對(duì)數(shù)據(jù)分層。這些獨(dú)一無(wú)二的技術(shù)進(jìn)步再加上在可用性、安全性和大數(shù)據(jù)支持方面的主要增強(qiáng),使得Oracle數(shù)據(jù)庫(kù)12c 成為私有云和公有云部署的理想平臺(tái)。 1.3.2 MySQL數(shù)據(jù)庫(kù) MySQL(發(fā)音為"my ess cue el",不是"my sequel")是一種開(kāi)放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫(kù)系統(tǒng)使用最常用的數(shù)據(jù)庫(kù)管理語(yǔ)言--結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)進(jìn)行數(shù)據(jù)庫(kù)管理。由于MySQL是開(kāi)放源代碼的,因此任何人都可以在General Public License的許可下下載并根據(jù)個(gè)性化的需要對(duì)其進(jìn)行修改。MySQL因?yàn)槠渌俣?、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,ySQL是管理內(nèi)容最好的選擇。 MySQL這個(gè)名字,起源不是很明確。一個(gè)比較有影響的說(shuō)法是,基本指南和大量的庫(kù)和工具帶有前綴“my”已經(jīng)有10年以上,而且不管怎樣,MySQL AB創(chuàng)始人之一的Monty Widenius的女兒也叫My。這兩個(gè)到底是哪一個(gè)給出了MySQL這個(gè)名字至今依然是個(gè)迷,包括開(kāi)發(fā)者在內(nèi)也不知 道。 1.3.3 MariaDB數(shù)據(jù)庫(kù) MariaDB數(shù)據(jù)庫(kù)管理系統(tǒng)是MySQL的一個(gè)分支,主要由開(kāi)源社區(qū)在維護(hù),采用GPL授權(quán)許可。開(kāi)發(fā)這個(gè)分支的原因之一是:甲骨文公司收購(gòu)了MySQL后,有將MySQL閉源的潛在風(fēng)險(xiǎn),因此社區(qū)采用分支的方式來(lái)避開(kāi)這個(gè)風(fēng)險(xiǎn)。 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之 能輕松成為MySQL的代替品。在存儲(chǔ)引擎方面,使用XtraDB(英語(yǔ):XtraDB)來(lái)代替MySQL的InnoDB。 MariaDB由MySQL的創(chuàng)始人Michael Widenius(英語(yǔ):Michael Widenius)主導(dǎo)開(kāi)發(fā),他早前曾以10億美元的價(jià)格,將自己創(chuàng)建的公司MySQL AB賣(mài)給了SUN,此后,隨著SUN被甲骨文收購(gòu),MySQL的所有權(quán)也落入Oracle的手中。MariaDB名稱(chēng)來(lái)自Michael Widenius的女兒Maria的名字。 1.3.4 SqlServer數(shù)據(jù)庫(kù) SQL Server是由Microsoft開(kāi)發(fā)和推廣的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開(kāi)發(fā)的,并于1988年推出了第一個(gè)OS/2版本。Microsoft SQL Server近年來(lái)不斷更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用戶(hù)見(jiàn)面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是2012年3月份推出的SQL SERVER 2012。 1.3.5 Access數(shù)據(jù)庫(kù) Microsoft Office Access是微軟把數(shù)據(jù)庫(kù)引擎的圖形用戶(hù)界面和軟件開(kāi)發(fā)工具結(jié)合在一起的一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)。它是微軟OFFICE的一個(gè)成員, 在包括專(zhuān)業(yè)版和更高版本的office版本里面被單獨(dú)數(shù)據(jù)庫(kù)管理系統(tǒng)。它是微軟OFFICE的一個(gè)成員, 在包括專(zhuān)業(yè)版和更高版本的office版本里面被單獨(dú)出售。2012年12月4日,最新的微軟Office Access 2013在微軟Office 2013里發(fā)布,微軟Office Access 2010 是前一個(gè)版本。 MS ACCESS以它自己的格式將數(shù)據(jù)存儲(chǔ)在基于Access Jet的數(shù)據(jù)庫(kù)引擎里。它還可以直接導(dǎo)入或者鏈接數(shù)據(jù)(這些數(shù)據(jù)存儲(chǔ)在其他應(yīng)用程序和數(shù)據(jù)庫(kù))。軟件開(kāi)發(fā)人員和數(shù)據(jù)架構(gòu)師可以使用Microsoft Access開(kāi)發(fā)應(yīng)用軟件,“高級(jí)用戶(hù)”可以使用它來(lái)構(gòu)建軟件應(yīng)用程序。和其他辦公應(yīng)用程序一樣,ACCESS支持Visual Basic宏語(yǔ)言,它是一個(gè)面向?qū)ο蟮木幊陶Z(yǔ)言,可以引用各種對(duì)象,包括DAO(數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象),ActiveX數(shù)據(jù)對(duì)象,以及許多其他的 ActiveX組件。可視對(duì)象用于顯示表和報(bào)表,他們的方法和屬性是在VBA編程環(huán)境下,VBA代碼模塊可以聲明和調(diào)用Windows操作系統(tǒng)函數(shù)。 1.3.6 其他不常用數(shù)據(jù)庫(kù) DB2,PostgreSQL,Informix,Syase等。 1.4 常用非關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品介紹 1.4.1 Memcached(key-value) memcached是一套分布式的快取系統(tǒng),當(dāng)初是Danga Interactive為了LiveJournal所發(fā)展的,但被許多軟件(如MediaWiki)所使用。這是一套開(kāi)放源代碼軟件,以BSD license授權(quán)協(xié)議發(fā)布。memcached缺乏認(rèn)證以及安全管制,這代表應(yīng)該將memcached服務(wù)器放置在防火墻后。emcached的API使用32位元的循環(huán)冗余校驗(yàn)(CRC-32)計(jì)算鍵值后,將資料分散在不同的機(jī)器上。當(dāng)表格滿(mǎn)了以后,接下來(lái)新增的資料會(huì)以L(fǎng)RU機(jī)制替換掉。由于memcached通常只是當(dāng)作快取系統(tǒng)使用,所以使用memcached的應(yīng)用程式在寫(xiě)回較慢的系統(tǒng)時(shí)(像是后端的數(shù)據(jù)庫(kù))需要額外的程式碼更新memcached內(nèi)的資料memcached 是以L(fǎng)iveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 為首開(kāi)發(fā)的一款軟件。已成為mixi、hatena、Facebook、Vox、LiveJournal等眾多服務(wù)中提高Web應(yīng)用擴(kuò)展性的重要因素。許多Web應(yīng)用都將數(shù)據(jù)保存到RDBMS中,應(yīng)用服務(wù)器從中讀取數(shù)據(jù)并在瀏覽器中顯示。但隨著數(shù)據(jù)量的增大、訪(fǎng)問(wèn)的集中,就會(huì)出現(xiàn)RDBMS的負(fù)擔(dān)加重、數(shù)據(jù)庫(kù)響應(yīng)惡化、網(wǎng)站顯示延遲等重大影響。 這時(shí)就該memcached大顯身手了。memcached是高性能的分布式內(nèi)存緩存服務(wù)器。一般的使用目的是,通過(guò)緩存數(shù)據(jù)庫(kù)查詢(xún)結(jié)果,減少數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)次數(shù),以提高動(dòng)態(tài)Web應(yīng)用的速度、提高可擴(kuò)展性。 Memcached 的守護(hù)進(jìn)程(daemon )是用C寫(xiě)的,但是客戶(hù)端可以用任何語(yǔ)言來(lái)編寫(xiě),并通過(guò)memcached協(xié)議與守護(hù)進(jìn)程通信。但是它并不提供冗余(例如,復(fù)制其hashmap條目);當(dāng)某個(gè)服務(wù)器S停止運(yùn)行或崩潰了,所有存放在S上的鍵/值對(duì)都將丟失。 Memcached由Danga Interactive開(kāi)發(fā),其最新版本發(fā)布于2010年,作者為Anatoly Vorobey和Memcached由Danga Interactive開(kāi)發(fā),其最新版本發(fā)布于2010年,作者為Anatoly Vorobey和Brad Fitzpatrick。用于提升LiveJournal . com訪(fǎng)問(wèn)速度的。LJ每秒動(dòng)態(tài)頁(yè)面訪(fǎng)問(wèn)量幾千次,用戶(hù) 700萬(wàn)。Memcached將數(shù)據(jù)庫(kù)負(fù)載大幅度降低,更好的分配資源,更快速訪(fǎng)問(wèn)。 1.4.2 Redis(key-value) redis是一個(gè)key-value存儲(chǔ)系統(tǒng)。和Memcached類(lèi)似,它支持存儲(chǔ)的value類(lèi)型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類(lèi)型)。這些數(shù)據(jù)類(lèi)型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會(huì)周期性的把更新的數(shù)據(jù)寫(xiě)入磁盤(pán)或者把修改操作寫(xiě)入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步。Redis 是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。 redis的出現(xiàn),很大程度補(bǔ)償了memcached這類(lèi)key/value存儲(chǔ)的不足,在部 分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶(hù)端,使用很方便。Redis支持主從同步。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。這使得Redis可執(zhí)行單層樹(shù)復(fù)制。從盤(pán)可以有意無(wú)意的對(duì)數(shù)據(jù)進(jìn)行寫(xiě)操作。由于完全實(shí)現(xiàn)了發(fā)布/訂閱機(jī)制,使得從數(shù)據(jù)庫(kù)在任何地方同步樹(shù)時(shí),可訂閱一個(gè)頻道并接收主服務(wù)器完整的消息發(fā)布記錄。同步對(duì)讀取操作的可擴(kuò)展性和數(shù)據(jù)冗余很有幫助。 1.4.3 MongoDB(Document-oriented) MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。由C++語(yǔ)言編寫(xiě)。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類(lèi)似json的bson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類(lèi)型。Mongo最大的特點(diǎn)是他支持的查詢(xún)語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類(lèi)似于面向?qū)ο蟮牟樵?xún)語(yǔ)言,幾乎可以實(shí)現(xiàn)類(lèi)似關(guān)系數(shù)據(jù)庫(kù)單表查詢(xún)的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。 1.4.4 Cassandra(Column-oriented) Cassandra是一個(gè)混合型的非關(guān)系的數(shù)據(jù)庫(kù),類(lèi)似于Google的BigTable。其主要功能比Dynamo(分布式的Key-Value存儲(chǔ)系統(tǒng))更豐富,但支持度卻不如文檔存儲(chǔ)MongoDB(介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的開(kāi)源產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類(lèi)似json的bjson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類(lèi)型)。Cassandra最初由Facebook開(kāi)發(fā),后轉(zhuǎn)變成了開(kāi)源項(xiàng)目。它是一個(gè)網(wǎng)絡(luò)社交云計(jì)算方面理想的數(shù)據(jù)庫(kù)。以最初由Facebook開(kāi)發(fā),后轉(zhuǎn)變成了開(kāi)源項(xiàng)目。它是一個(gè)網(wǎng)絡(luò)社交云計(jì)算方面理想的數(shù)據(jù)庫(kù)。以Amazon專(zhuān)有的完全分布式的Dynamo為基礎(chǔ),結(jié)合了Google BigTable基于列族(ColumnFamily)的數(shù)據(jù)模型。P2P去中心化的存儲(chǔ)。很多方面都可以稱(chēng)之為Dynamo 2.0。 1.4.5 其他不常用非關(guān)系型數(shù)據(jù)庫(kù) HBase、MemacheDB、BerkeleyDB、Tokyo Cabinet 1.5 數(shù)據(jù)庫(kù)相關(guān)知識(shí) 1.5.1數(shù)據(jù)庫(kù)軟件企業(yè)應(yīng)用排名參考 
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|