MySQL SQLSERVER Oracle DB2 PostgreSQL 這些都是最常見(jiàn)的,哦,還有一些NoSQL的數(shù)據(jù)庫(kù),就是非關(guān)系型數(shù)據(jù)庫(kù)
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供烏蘇網(wǎng)站建設(shè)、烏蘇做網(wǎng)站、烏蘇網(wǎng)站設(shè)計(jì)、烏蘇網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、烏蘇企業(yè)網(wǎng)站模板建站服務(wù),10年烏蘇做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
對(duì)此,前Google工程師,Milo(本地商店搜索引擎)創(chuàng)始人Ted Dziuba最近發(fā)表標(biāo)題驚人的博客“I Can't Wait for NoSQL to Die”,對(duì)NoSQL的適用范圍進(jìn)行了分析。他認(rèn)為,
NoSQL也會(huì)帶來(lái)一連串的新問(wèn)題,并不會(huì)成為主流,無(wú)法取代關(guān)系型數(shù)據(jù)庫(kù)。
他的理由是:Cassandra等NoSQL數(shù)據(jù)庫(kù)在使用上并不方便,比如,修改column family定義時(shí)就需要重啟。而且NoSQL更適合Google那樣的規(guī)模,而一般的互聯(lián)網(wǎng)公司都不是Google,早早地去考慮Google那樣的規(guī)模的可擴(kuò)展性,純粹是浪費(fèi)時(shí)間,存在巨大的商業(yè)風(fēng)險(xiǎn)。
他還透露,即使在Google,AdWords這樣的關(guān)鍵產(chǎn)品也是基于MySQL實(shí)現(xiàn)的。
他在文中最后表示,NoSQL當(dāng)然死不了,但是
它最終會(huì)被邊緣化,就像Rails被NoSQL邊緣化一樣
Dziuba的文章因?yàn)檠赞o激烈,在社區(qū)里引起了強(qiáng)烈反應(yīng)。
SQL數(shù)據(jù)庫(kù)陣營(yíng)贊同者大有人在。craigslist工程師、著名的MySQL專家Jeremy Zawodny表示,在讀此文的時(shí)候,不時(shí)會(huì)心一笑。他說(shuō),
NoSQL運(yùn)動(dòng)只是軟件不斷進(jìn)化進(jìn)程中的正?,F(xiàn)象
。關(guān)系型數(shù)據(jù)庫(kù)也會(huì)繼續(xù)發(fā)展,MySQL社區(qū)不斷推出的XtraDB或InnoDB插件, PBXT, Drizzle都是證據(jù)。各種技術(shù)競(jìng)爭(zhēng)的結(jié)果是,我們獲得了更多解決問(wèn)題的選擇。
drizzle項(xiàng)目開(kāi)發(fā)者Eric Day也表示,NoSQL有很多值得學(xué)習(xí)的,但是目前大部分實(shí)際項(xiàng)目的最佳選擇還是關(guān)系型數(shù)據(jù)庫(kù)。
NoSQL陣營(yíng)當(dāng)然不會(huì)坐視不理,Cassandra項(xiàng)目組的Eric Evans表示,Dziuba提到Cassandra修改column family定義的問(wèn)題其實(shí)很容易解決。而且,NoSQL并不是要取代MySQL,事實(shí)上Twitter仍然在用MySQL。如果關(guān)系型數(shù)據(jù)庫(kù)能夠承擔(dān)負(fù)荷,那就用好了;如果不行,請(qǐng)考慮NoSQL。
而德國(guó)知名博客Code Monkeyism則嘲笑Dziuba看起來(lái)并沒(méi)有用MySQL做過(guò)真實(shí)項(xiàng)目,因?yàn)镸ySQL如果沒(méi)有memcache,基本上無(wú)法應(yīng)付網(wǎng)站項(xiàng)目。他認(rèn)為,NoSQL將使SQL數(shù)據(jù)庫(kù)邊緣化,而且一個(gè)重要理由恰恰是可以節(jié)省DBA的開(kāi)銷。
digg的前任首席架構(gòu)師現(xiàn)在也在創(chuàng)業(yè)的Joe Stump說(shuō),自己現(xiàn)在的創(chuàng)業(yè)項(xiàng)目就是用NoSQL,而且列舉了一系列問(wèn)題挑戰(zhàn)SQL陣營(yíng)。
常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品有Oracle、SQL Server、Sybase、DB2、Access等。 1.Oracle
Oracle是1983年推出的世界上第一個(gè)開(kāi)放式商品化關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。它采用標(biāo)準(zhǔn)的SQL結(jié)構(gòu)化查詢語(yǔ)言,支持多種數(shù)據(jù)類型,提供面向?qū)ο蟠鎯?chǔ)的數(shù)據(jù)支持,具有第四代語(yǔ)言開(kāi)發(fā)工具,支持Unix、Windows NT、OS/2、Novell等多種平臺(tái)。除此之外,它還具有很好的并行處理功能。Oracle產(chǎn)品主要由Oracle服務(wù)器產(chǎn)品、Oracle開(kāi)發(fā)工具、Oracle應(yīng)用軟件組成,也有基于微機(jī)的數(shù)據(jù)庫(kù)產(chǎn)品。主要滿足對(duì)銀行、金融、保險(xiǎn)等企業(yè)、事業(yè)開(kāi)發(fā)大型數(shù)據(jù)庫(kù)的需求。
2.SQL Server
SQL即結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language,簡(jiǎn)稱為SQL)。SQL Server最早出現(xiàn)在1988年,當(dāng)時(shí)只能在OS/2操作系統(tǒng)上運(yùn)行。2000年12月微軟發(fā)布了SQL Server 2000,該軟件可以運(yùn)行于Windows NT/2000/XP等多種操作系統(tǒng)之上,是支持客戶機(jī)/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫(kù)管理系統(tǒng),它可以幫助各種規(guī)模的企業(yè)管理數(shù)據(jù)。
隨著用戶群的不斷增大,SQL Server在易用性、可靠性、可收縮性、支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)、系統(tǒng)集成等方面日趨完美。特別是SQL Server的數(shù)據(jù)庫(kù)搜索引擎,可以在絕大多數(shù)的操作系統(tǒng)之上運(yùn)行,并針對(duì)海量數(shù)據(jù)的查詢進(jìn)行了優(yōu)化。目前SQL Server已經(jīng)成為應(yīng)用最廣泛的數(shù)據(jù)庫(kù)產(chǎn)品之一。
由于使用SQL Server不但要掌握SQL Server的操作,而且還要能熟練掌握Windows NT/2000 Server的運(yùn)行機(jī)制,以及SQL語(yǔ)言,所以對(duì)非專業(yè)人員的學(xué)習(xí)和使用有一定的難度。
3.Sybase
1987年推出的大型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)Sybase,能運(yùn)行于OS/2、Unix、Windows NT等多種平臺(tái),它支持標(biāo)準(zhǔn)的關(guān)系型數(shù)據(jù)庫(kù)語(yǔ)言SQL,使用客戶機(jī)/服務(wù)器模式,采用開(kāi)放體系結(jié)構(gòu),能實(shí)現(xiàn)網(wǎng)絡(luò)環(huán)境下各節(jié)點(diǎn)上服務(wù)器的數(shù)據(jù)庫(kù)互訪操作。技術(shù)先進(jìn)、性能優(yōu)良,是開(kāi)發(fā)大中型數(shù)據(jù)庫(kù)的工具。Sybase產(chǎn)品主要由服務(wù)器產(chǎn)品Sybase SQL Server、客戶產(chǎn)品Sybase SQL Toolset和接口軟件Sybase Client/Server Interface組成,還有著名的數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)工具PowerBuilder。
4.DB2
DB2是基于SQL的關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品。20世紀(jì)80年代初期DB2的重點(diǎn)放在大型的主機(jī)平臺(tái)上。到90年代初,DB2發(fā)展到中型機(jī)、小型機(jī)以及微機(jī)平臺(tái)。DB2適用于各種硬件與軟件平臺(tái)。各種平臺(tái)上的DB2有共同的應(yīng)用程序接口,運(yùn)行在一種平臺(tái)上的程序可以很容易地移植到其他平臺(tái)。DB2的用戶主要分布在金融、商業(yè)、鐵路、航空、醫(yī)院、旅游等各個(gè)領(lǐng)域,以金融系統(tǒng)的應(yīng)用最為突出。
5.Access
Access是在Windows操作系統(tǒng)下工作的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。它采用了Windows程序設(shè)計(jì)理念,以Windows特有的技術(shù)設(shè)計(jì)查詢、用戶界面、報(bào)表等數(shù)據(jù)對(duì)象,內(nèi)嵌了VBA(全稱為Visual Basic Application)程序設(shè)計(jì)語(yǔ)言,具有集成的開(kāi)發(fā)環(huán)境。Access提供圖形化的查詢工具和屏幕、報(bào)表生成器,用戶建立復(fù)雜的報(bào)表、界面無(wú)需編程和了解SQL語(yǔ)言,它會(huì)自動(dòng)生成SQL代碼。
Access被集成到Office中,具有Office系列軟件的一般特點(diǎn),如菜單、工具欄等。與其他數(shù)據(jù)庫(kù)管理系統(tǒng)軟件相比,更加簡(jiǎn)單易學(xué),一個(gè)普通的計(jì)算機(jī)用戶,沒(méi)有程序語(yǔ)言基礎(chǔ),仍然可以快速地掌握和使用它。最重要的一點(diǎn)是,Access的功能比較強(qiáng)大,足以應(yīng)付一般的數(shù)據(jù)管理及處理需要,適用于中小型企業(yè)數(shù)據(jù)管理的需求。當(dāng)然,在數(shù)據(jù)定義、數(shù)據(jù)安全可靠、數(shù)據(jù)有效控制等方面,它比前面幾種數(shù)據(jù)庫(kù)產(chǎn)品要遜色不少。
NoSQL不像傳統(tǒng)關(guān)系型庫(kù)那樣有統(tǒng)一的標(biāo)準(zhǔn),也不具有普適性。所以要根據(jù)應(yīng)用和數(shù)據(jù)的存取特征來(lái)選擇適合的NoSQL。
如果以前沒(méi)有接觸過(guò)NoSQL,MongoDB是一個(gè)比較好的選擇,他支持的所以和查詢能力是所有NoSQL中最強(qiáng)大的,缺點(diǎn)是索引的成本和文檔大小限制。
如果是使用Hadoop大數(shù)據(jù)分析,數(shù)據(jù)基本上不存在修改,只是插入和查詢,并且需要配合Hadoop的MR任務(wù),HBase會(huì)是很好的選擇。
如果要求有很強(qiáng)的擴(kuò)展能力,高并發(fā)讀寫和維護(hù)方便,Casaandra則是不錯(cuò)的選擇。
當(dāng)然除了上面三個(gè)流行的NoSQL,還有很多優(yōu)秀的NoSQL數(shù)據(jù)庫(kù),而且他們都有各自擅長(zhǎng)領(lǐng)域,所以需要了解你們產(chǎn)品自身的特點(diǎn)然后分析選擇哪種才是最適合的,往往在大型系統(tǒng)中不是單一的數(shù)據(jù)庫(kù),而是使用多種數(shù)據(jù)庫(kù)組合。
1、數(shù)據(jù)收集:(1)Scrapy:協(xié)助使用者自動(dòng)提取網(wǎng)頁(yè)所需信息,并將其整理為表格或JSON格式的數(shù)據(jù)結(jié)構(gòu);(2)Selenium:使用者在感興趣的網(wǎng)站上已經(jīng)進(jìn)行了交互行為之后,Seleniumn一般能派上用場(chǎng);(3)BeautifulSoup:用來(lái)收集網(wǎng)站內(nèi)容的Python庫(kù),更適合應(yīng)用于規(guī)模相對(duì)較小的問(wèn)題或一次性任務(wù)。
2、數(shù)據(jù)清理和轉(zhuǎn)化:(4)Pandas:必須學(xué)習(xí)的,使用者可以運(yùn)用Pandas操控處于Pandas數(shù)據(jù)框架內(nèi)的數(shù)據(jù),而且其內(nèi)置巨量的函數(shù),幫助使用者進(jìn)行數(shù)據(jù)轉(zhuǎn)換;(5)Numpy:必須學(xué)習(xí)的,Numpy將Python的對(duì)象列表拓展成了全面的多維度序列,而且其內(nèi)置海量的數(shù)學(xué)函數(shù);(6)Spacy:幫助使用者將自由文本轉(zhuǎn)化為結(jié)構(gòu)型數(shù)據(jù),支持多種語(yǔ)言版本。
3、數(shù)據(jù)可視化:(7)Matplotlib:最全面的Python數(shù)據(jù)可視化庫(kù);(8)Plotly:只需要寫最少的代碼就能得出最多彩繽紛的圖像。
4、數(shù)據(jù)模塊化:(9)Scikit Learn:高級(jí)分析師,開(kāi)啟機(jī)器學(xué)習(xí)之旅,有六大主要模塊:數(shù)據(jù)預(yù)處理,維度縮減,數(shù)據(jù)回歸,數(shù)據(jù)分類,數(shù)據(jù)聚類分析,模型選擇;(10)Tensorflow:由谷歌推出的來(lái)源機(jī)器學(xué)習(xí)庫(kù),是一個(gè)基于網(wǎng)頁(yè)自動(dòng)生成的儀表盤,它將數(shù)據(jù)學(xué)習(xí)流和結(jié)果進(jìn)行了可視化處理,這一功能對(duì)于排錯(cuò)和展示都十分有用;(11)PyTorch:由Facebook發(fā)布的一個(gè)開(kāi)源庫(kù),用作Python的公共機(jī)器學(xué)習(xí)框架。
5、音頻和圖像識(shí)別:(12)OpenCV:是最常用的圖像和視頻識(shí)別庫(kù),能讓Python在圖像和視頻識(shí)別領(lǐng)域完全替代Matlab,不僅支持Python,還支持JAVA和Matlab;(13)Librosa:是一個(gè)非常強(qiáng)大的音頻和聲音處理Python庫(kù),可以從音頻段中提取各個(gè)部分,例如節(jié)奏以及節(jié)拍。
6、網(wǎng)頁(yè):(14)Django:開(kāi)發(fā)網(wǎng)頁(yè)服務(wù)后端,設(shè)計(jì)理念是能用幾行代碼就建立一個(gè)網(wǎng)站的高級(jí)框架;(15)Flask:是一個(gè)用于Python的輕量級(jí)網(wǎng)頁(yè)開(kāi)發(fā)框架。