各种主流数据库的比较
隨著計(jì)算機(jī)技術(shù)不斷發(fā)展,各種數(shù)據(jù)庫(kù)編程工具也隨著發(fā)展,使當(dāng)今的大多數(shù)程序開(kāi)發(fā)人員可以擺脫枯燥無(wú)味的用計(jì)算機(jī)指令或匯編語(yǔ)言開(kāi)發(fā)軟件,而是利用一系列高效的、具有良好可視化的編程工具去開(kāi)發(fā)各種數(shù)據(jù)庫(kù)軟件,從而達(dá)到事半功倍的效果,但是現(xiàn)在市面上的數(shù)據(jù)庫(kù)編程工具門(mén)類(lèi)眾多,優(yōu)良不齊,比如VB,VC,DEPHI,PB等。
現(xiàn)在的數(shù)據(jù)庫(kù)以關(guān)系數(shù)據(jù)庫(kù)為主流,但為了趕時(shí)髦,各大數(shù)據(jù)庫(kù)也在開(kāi)發(fā)面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫(kù),把高級(jí)程序設(shè)計(jì)語(yǔ)言和數(shù)據(jù)庫(kù)實(shí)現(xiàn)無(wú)縫連接,以發(fā)揮各自的優(yōu)缺點(diǎn)。高級(jí)程序設(shè)計(jì)語(yǔ)言善于描述復(fù)雜的過(guò)程,而,數(shù)據(jù)庫(kù)有著強(qiáng)大的管理功能和可操作性,我們現(xiàn)在的數(shù)據(jù)庫(kù)是以表為基本的存儲(chǔ)單元(描述一個(gè)對(duì)象),但現(xiàn)在的發(fā)展越來(lái)越快,對(duì)數(shù)據(jù)的復(fù)雜性也越來(lái)越大。所以我們的二維數(shù)據(jù)庫(kù)要轉(zhuǎn)向三維數(shù)據(jù)庫(kù)發(fā)展,下面介紹下各種數(shù)據(jù)庫(kù)的特點(diǎn),以便我們可以選擇設(shè)和自己的數(shù)據(jù)庫(kù)。
一、各種主流數(shù)據(jù)庫(kù)介紹
Access是一種桌面數(shù)據(jù)庫(kù),只適合數(shù)據(jù)量少的應(yīng)用,在處理少量數(shù)據(jù)和單機(jī)訪問(wèn)的數(shù)據(jù)庫(kù)時(shí)是很好的,效率也很高。但是它的同時(shí)訪問(wèn)客戶端不能多于4個(gè)。MicrosoftAccess數(shù)據(jù)庫(kù)有一定的極限,如果數(shù)據(jù)達(dá)到100M左右,很容易造成服務(wù)器iis假死,或者消耗掉服務(wù)器的內(nèi)存導(dǎo)致服務(wù)器崩潰,表現(xiàn)為英文“ServiceUnavailable”。
MS SQL Server是基于服務(wù)器端的中型的數(shù)據(jù)庫(kù),可以適合大容量數(shù)據(jù)的應(yīng)用,在功能上管理上也要比MicrosoftAccess要強(qiáng)得多。在處理海量數(shù)據(jù)的效率,后臺(tái)開(kāi)發(fā)的靈活性,可擴(kuò)展性等方面強(qiáng)大。因?yàn)楝F(xiàn)在數(shù)據(jù)庫(kù)都使用標(biāo)準(zhǔn)的SQL語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理,所以如果是標(biāo)準(zhǔn)SQL語(yǔ)言,兩者基本上都可以通用的。MicrosoftSQL Server還有更多的擴(kuò)展,可以用存儲(chǔ)過(guò)程,數(shù)據(jù)庫(kù)大小無(wú)極限限制。
MySql短小精悍,像access一樣的文件型數(shù)據(jù)庫(kù),但比access強(qiáng)百倍,是真正多用戶多任務(wù)的數(shù)據(jù)庫(kù)系統(tǒng),從Linux上移植過(guò)來(lái)的,安全性非常好,不過(guò)大部分操作是在dos下進(jìn)行,雖然也有第三方開(kāi)發(fā)的圖形界面但并不好用。MySQL是跨多平臺(tái)的數(shù)據(jù)庫(kù)管理軟件,可運(yùn)行于LINUX、NT、UNIX等系統(tǒng),可支持命令和圖形化管理,對(duì)于一般的數(shù)據(jù)庫(kù)足以應(yīng)付了,占用系統(tǒng)資源較少,速度較快,而且是開(kāi)源的。
Oracle各方面都比較成熟,但對(duì)硬件要求高,用于數(shù)據(jù)完整性、安全性要求較高的場(chǎng)合,能在所有主流平臺(tái)上運(yùn)行,完全支持所有的工業(yè)標(biāo)準(zhǔn),采用完全開(kāi)放策略。可以使客戶選擇最適合的解決方案,對(duì)開(kāi)發(fā)商全力支持。平行服務(wù)器通過(guò)使一組結(jié)點(diǎn)共享同一簇中的工作來(lái)擴(kuò)展服務(wù)器的能力,提供高可用性和高伸縮性的簇的解決方案,獲得最高認(rèn)證級(jí)別的iso標(biāo)準(zhǔn)認(rèn)證,多層次網(wǎng)絡(luò)計(jì)算,支持多種工業(yè)標(biāo)準(zhǔn),可以用odbc,jdbc,oci等網(wǎng)絡(luò)客戶連接,較復(fù)雜,同時(shí)提供gui和命令行,在windows和unix下操作相同,如果windows不能滿足需要,用戶可以把數(shù)據(jù)庫(kù)移到unix中。其操作和設(shè)置比較復(fù)雜,適用于有一定操作經(jīng)驗(yàn)的用戶。
| SQLServer數(shù)據(jù)庫(kù)的特征及其與Access數(shù)據(jù)庫(kù)的區(qū)別 | ||
| 內(nèi) 容 | Access特征 | MSSQL特征 |
| 版本 | 桌面版 | 網(wǎng)絡(luò)版,可支持跨界的集團(tuán)公司異地使用數(shù)據(jù)庫(kù)的要求 |
| 節(jié)點(diǎn) | 一人工作,要鎖定,其他人無(wú)法使用 | 節(jié)點(diǎn)多,支持多重路由器 |
| 管理權(quán)限 | 否 | 管理權(quán)限劃分細(xì)致,對(duì)內(nèi)安全性高 |
| 防黑客能力 | 否 | 數(shù)據(jù)庫(kù)劃分細(xì)致,對(duì)外防黑客能力高 |
| 并發(fā)處理能力 | 100人或稍多 | 同時(shí)支持萬(wàn)人在線提交,在其它硬件例如網(wǎng)速等條件匹配的情況下可完全實(shí)現(xiàn) |
| 導(dǎo)出XML格式 | 可以,需要單作程序 | 可導(dǎo)出成為XML格式,與Oracle數(shù)據(jù)庫(kù)和DB2數(shù)據(jù)庫(kù)通用,減少開(kāi)發(fā)成本 |
| 數(shù)據(jù)處理能力 | 一般 | 快 |
| 是否被優(yōu)化過(guò) | 否 | 是 |
二、幾種支持?jǐn)?shù)據(jù)庫(kù)的語(yǔ)言介紹
VB(VisualBasic)是以Basic語(yǔ)言作為其基本語(yǔ)言的一種可視化編程工具。在中國(guó)乃至全世界都能看到它的身影,它曾是在中國(guó)最為流行的編程工具,到現(xiàn)在還占據(jù)著非常重要的地位,對(duì)于它的好壞大家都有一定的了解,VB作為一種較早出現(xiàn)的開(kāi)發(fā)程序以其容易學(xué)習(xí),開(kāi)發(fā)效率較高,具有完善的幫助系統(tǒng)等優(yōu)點(diǎn)曾影響了好幾代編程人員,但是由于VB不具備跨平臺(tái)這個(gè)特性,從而也決定了VB在未來(lái)的軟件開(kāi)發(fā)中將會(huì)逐漸地退出其歷史舞臺(tái);它對(duì)組件技術(shù)的支持是基于COM和ActiveX,對(duì)于組件技術(shù)不斷完善發(fā)展的今天,它也顯出了它的落后性;同時(shí)VB在進(jìn)行系統(tǒng)底層開(kāi)發(fā)的時(shí)候也是相對(duì)復(fù)雜的,調(diào)用API函數(shù)需聲明,調(diào)用不方便,不能進(jìn)行DDK編程,不可能深入Ring0編程,不能嵌套匯編;而且面向?qū)ο蟮奶匦圆?#xff1b;網(wǎng)絡(luò)功能和數(shù)據(jù)庫(kù)功能也沒(méi)有非常突出的表現(xiàn),綜上所述,VB作為一種可視化的開(kāi)發(fā)工具由于其本身的局限性,導(dǎo)致了它在未來(lái)軟件開(kāi)發(fā)中逐步被其他工具所代替。
PB全稱(chēng)PowerBuilder,是開(kāi)發(fā)MIS系統(tǒng)和各類(lèi)數(shù)據(jù)庫(kù)跨平臺(tái)的首選,使用簡(jiǎn)單,容易學(xué)習(xí),容易掌握,在代碼執(zhí)行效率上也有相當(dāng)出色的表現(xiàn)。PB是一種真正的4GL語(yǔ)言(第四代語(yǔ)言),可隨意直接嵌套SQL語(yǔ)句返回值被賦值到語(yǔ)句的變量中,支持語(yǔ)句級(jí)游標(biāo),存儲(chǔ)過(guò)程和數(shù)據(jù)庫(kù)函數(shù),是一種類(lèi)似SQLJ的規(guī)范,數(shù)據(jù)訪問(wèn)中具有無(wú)可比擬的靈活性。但是它在系統(tǒng)底層開(kāi)發(fā)中犯了跟VB一樣的錯(cuò)誤,調(diào)用API函數(shù)需聲明,調(diào)用不方便,不能進(jìn)行DDK編程,不可能深入Ring0編程,不能嵌套匯編;在網(wǎng)絡(luò)開(kāi)發(fā)中提供了較多動(dòng)態(tài)生成Web頁(yè)面的用戶對(duì)象和服務(wù)以及系統(tǒng)對(duì)象,非常適合編寫(xiě)服務(wù)端動(dòng)態(tài)Web應(yīng)用,有利于商業(yè)邏輯的封裝;但是用于網(wǎng)絡(luò)通訊的支持不足;靜態(tài)頁(yè)面定制支持有限,使得PB在網(wǎng)絡(luò)方面的應(yīng)用也不能非常廣泛。面向?qū)ο筇叵蛞膊皇翘谩?/p>
C++Builder/Delphi它們都是基于VCL庫(kù)的可視化開(kāi)發(fā)工具,它們?cè)诮M件技術(shù)的支持、數(shù)據(jù)庫(kù)支持、系統(tǒng)底層開(kāi)發(fā)支持、網(wǎng)絡(luò)開(kāi)發(fā)支持、面向?qū)ο筇匦缘雀鞣矫娑加邢喈?dāng)不錯(cuò)的表現(xiàn),并且學(xué)習(xí)使用較為容易,充分提現(xiàn)了所見(jiàn)即所得的可視化開(kāi)發(fā)方法,開(kāi)發(fā)效率高。由于兩者都是Borland公司的產(chǎn)品,自然繼承了該公司一貫以來(lái)的優(yōu)良傳統(tǒng):代碼執(zhí)行效率高。但是,它們并不是毫無(wú)缺點(diǎn),它們所作的最大不足之處就是他們的幫助系統(tǒng)在眾多的編程工具中是屬于比較差的。C++Builder的VCL庫(kù)是基于Objectpascal(面向?qū)ο髉ascal),使得C++Builder在程序的調(diào)試執(zhí)行上都面向落后于其他編程工具。而Delphi則是它的語(yǔ)言不夠廣泛,開(kāi)發(fā)系統(tǒng)軟件功能不足兩個(gè)比較大的缺點(diǎn)。
VisualC++是基于MFC庫(kù)的可視化的開(kāi)發(fā)工具,從總體上說(shuō)它是一個(gè)功能強(qiáng)大但是不便使用的一種工具。它在網(wǎng)絡(luò)開(kāi)發(fā)和多媒體開(kāi)發(fā)都具有不俗的表現(xiàn),幫助系統(tǒng)也做得非常不錯(cuò)(Microsoft在細(xì)節(jié)方面的處理往往都讓人覺(jué)得親切),但是雖然是使用C++作為基本語(yǔ)言,但是它在面向?qū)ο筇匦陨蠀s不夠好,主要是為了兼容C的程序,結(jié)果顧此失彼;在組件支持上也不太好,雖然說(shuō)除了支持COM,ActiveX外還支持CORBA,但是沒(méi)有任何IDE支持,是所有C編譯器的功能,需要CORBA中間件支持;最大的問(wèn)題是開(kāi)發(fā)效率也不高。
Java目前比較出名的是Borland出的JBuilder和IBM出的Visual Age forJava,兩種工具都有一定數(shù)量的是用人群。JBuilder繼承了C++Builder/Delphi的特點(diǎn),在可視化上做得非常不錯(cuò),使用簡(jiǎn)便。由于Java本身語(yǔ)言的特點(diǎn)使得他們?cè)诰W(wǎng)絡(luò)開(kāi)發(fā)中具有高人一等的表現(xiàn),而且面向?qū)ο筇匦愿?#xff0c;支持的組件技術(shù)也非常多,跨平臺(tái)的特性也使得它在現(xiàn)在和未來(lái)的開(kāi)發(fā)中占據(jù)越來(lái)越重要的地位。但是在系統(tǒng)底層開(kāi)發(fā)和多媒體開(kāi)發(fā)中卻表現(xiàn)得并不讓人那么滿意,這個(gè)可能跟設(shè)計(jì)Java的意圖有關(guān)吧。
三、編程語(yǔ)言的數(shù)據(jù)庫(kù)性能綜合評(píng)價(jià)
VB:是新人開(kāi)發(fā)與系統(tǒng)無(wú)關(guān)的綜合應(yīng)用程序的首選;容易使用和廠商財(cái)力很強(qiáng)是其僅有的兩點(diǎn)優(yōu)勢(shì)。VB開(kāi)發(fā)效率高,代碼執(zhí)行效率一般,但是入門(mén)和學(xué)習(xí)速度快,有較好的學(xué)習(xí)氛圍和幫助書(shū)籍和幫助文檔。但是隨著微軟的.net技術(shù)的推廣,VB將會(huì)逐漸推出歷史舞臺(tái)。
PB:是開(kāi)發(fā)大型MIS及各類(lèi)數(shù)據(jù)庫(kù)跨平臺(tái)應(yīng)用的首選;從數(shù)據(jù)庫(kù)前端工具來(lái)講甚至遠(yuǎn)遠(yuǎn)超過(guò)了Oracle的Develop系列等專(zhuān)門(mén)的工具;從通用語(yǔ)言角度來(lái)講功能也與VB等不相上下;多媒體和網(wǎng)絡(luò)功能與其他工具相比較弱。PB最大的優(yōu)勢(shì)就是Datawindow技術(shù)的成熟和方便,他成為PB與其他數(shù)據(jù)庫(kù)開(kāi)發(fā)工具抗衡的資本。同時(shí)PB在對(duì)Java和WEB,以及面向?qū)ο蠓矫娴陌l(fā)展也可以預(yù)見(jiàn)PB將成繼續(xù)成為數(shù)據(jù)庫(kù)系統(tǒng)(特別是MIS系統(tǒng))開(kāi)發(fā)工具的首選。同時(shí)PB的強(qiáng)大幫助文檔也為初學(xué)者提供了入門(mén)基礎(chǔ),PB連接數(shù)據(jù)庫(kù)的自由和方面也為PB的提供了方便,同時(shí)PB對(duì)API的調(diào)用以及對(duì)報(bào)表的處理強(qiáng)大。但是PB的高級(jí)編程書(shū)籍的缺乏和基礎(chǔ)語(yǔ)言PowerScript的普及程度對(duì)PB的明天有一定的限制。
C++Builder/Dephi:是唯一一套能夠同時(shí)適用于開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用、網(wǎng)絡(luò)及Web應(yīng)用、分布式應(yīng)用、可重用組件、系統(tǒng)軟件、驅(qū)動(dòng)程序、多媒體及游戲等所有軟件的高效率開(kāi)發(fā)環(huán)境;VCL源碼基于ObjectPascal是C++ Builder 唯一的缺憾,基礎(chǔ)語(yǔ)言不夠通用和開(kāi)發(fā)系統(tǒng)軟件功能不足是Dephi僅有的兩點(diǎn)不足。
VC:從功能上講除了跨平臺(tái)應(yīng)用外什么都可開(kāi)發(fā);從開(kāi)發(fā)效率角度講只局限于開(kāi)發(fā)windows系統(tǒng)應(yīng)用、可重用組件及驅(qū)動(dòng)程序。又因?yàn)橛形④浀闹С?#xff0c;其自身的基礎(chǔ)語(yǔ)言的普及程度高,以及其代碼的執(zhí)行效率高等特性、VC自帶強(qiáng)大幫助文檔和大量?jī)?yōu)質(zhì)教材,VC在數(shù)據(jù)庫(kù)開(kāi)發(fā)工具中始終可以穩(wěn)住陣角。
Java:適用于開(kāi)發(fā)除了系統(tǒng)軟件、驅(qū)動(dòng)程序、高性能實(shí)時(shí)系統(tǒng)、大規(guī)模圖像處理以外所有的應(yīng)用。在一般的管理信息系統(tǒng)中和一般的數(shù)據(jù)庫(kù)開(kāi)發(fā)中,很少有人會(huì)選擇Java,一是由于其開(kāi)發(fā)環(huán)境的配置較難,已經(jīng)和數(shù)據(jù)庫(kù)連接時(shí)較為負(fù)責(zé),對(duì)開(kāi)發(fā)人員的開(kāi)發(fā)經(jīng)驗(yàn)和學(xué)習(xí)時(shí)間都要很高要求,所以對(duì)于經(jīng)驗(yàn)不是很豐富的開(kāi)發(fā)人員一般是不選擇Java,但是Java的強(qiáng)大網(wǎng)絡(luò)功能和真正的面向?qū)ο筇匦詻Q定了Java的未來(lái),Java將在一個(gè)較為長(zhǎng)期的時(shí)段里可以與微軟家族抗衡。
總結(jié)
以上是生活随笔為你收集整理的各种主流数据库的比较的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JAVA: List用法
- 下一篇: SQL Server 2008 阻止保存