最近因為要做一個小的項目,開發(fā)工具為Delphi,數(shù)據(jù)庫選型進行了一些比較,最終決定采用FireBird數(shù)據(jù)庫,各種數(shù)據(jù)庫的優(yōu)缺點分析如下:
一、Firbird
優(yōu)點
1、Firebird是開源免費的數(shù)據(jù)庫,且誕生很多年了,比較穩(wěn)定。
2、支持單機嵌入式開發(fā),單機版支持存儲過程和觸發(fā)器。
3、單機版和服務(wù)器版數(shù)據(jù)庫文件格式相同,升級至網(wǎng)絡(luò)版簡單。
4、跨平臺,支持window、linux
缺點:
1、oledb驅(qū)動是收費的,因此不能使用ado連接數(shù)據(jù)庫了。
2、Sql語法與微軟的T-sql有些差別,特別是存儲過程,有一定的學(xué)習(xí)量。
3、需要發(fā)布幾個dll文件。
第1個缺點也無所謂,可以使用dbExpress,反正現(xiàn)在delphi主推的數(shù)據(jù)庫訪問技術(shù)是dbExpress了,熟悉一下也無妨。
第3個也無所謂,打包復(fù)制一下而已。
二、Access 數(shù)據(jù)庫
優(yōu)點
1、可以使用ado訪問,不是說ado好,而是比較熟悉,用了多年了。
2、發(fā)布簡單,無需附帶任何驅(qū)動文件,誰讓是微軟的呢,oledb驅(qū)動已經(jīng)集成到操作系統(tǒng)中了。
3、有一個office access的管理器可用,建表和修改結(jié)構(gòu)比較容易。
缺點:
1、庫文件易損壞。以我的經(jīng)驗,數(shù)據(jù)打開時斷電,非常容易損壞,很麻煩。Firebird沒有經(jīng)驗,估計這個問題會好一些。
2、不支持存儲過程和觸發(fā)器。
3、不支持網(wǎng)絡(luò)版。這個是最要命的,將來升級到網(wǎng)絡(luò)版要改sqlserver,工作量不小。
三、MSDE數(shù)據(jù)庫
優(yōu)點
1、功能強大,熟悉T-sql語法,有企業(yè)管理器可用,功能超強,企業(yè)管理器還有點版權(quán)問題。
2、支持ado訪問,這個也是最佳的訪問方式了。
3、單機到網(wǎng)絡(luò)版無縫升級。
缺點
1、尺寸偏大,有四十幾兆。
2、需要安裝。這個是最麻煩的,由于病毒和盜版,客戶機器經(jīng)常重裝系統(tǒng),每次都要重裝,很麻煩。雖然微軟提供的安裝包已經(jīng)可以做到一健安裝,但與零配置還是有差距。
以上的比較和分析與個人的開發(fā)經(jīng)歷和熟悉的技術(shù)有關(guān),我覺得在windows平臺上做開發(fā),首選還是MSDE數(shù)據(jù)庫,功能強大,穩(wěn)定,文檔齊全,但由于安裝問題,決定放棄,安裝并不復(fù)雜,用戶每次重裝系統(tǒng)(這個是經(jīng)常的)后都要重新安裝就比較麻煩了,重裝后還需要恢復(fù)數(shù)據(jù)庫等操作,不利于普通用戶的使用,考慮到國內(nèi)多數(shù)用戶的電腦水平和大量盜版、充斥病毒木馬流氓軟件的操作系統(tǒng)環(huán)境,經(jīng)常重裝系統(tǒng)是在所難免的,因此我還是比較傾向于綠色化軟件,特別是產(chǎn)品化的管理軟件,零配置顯得尤其重要。
Firebird數(shù)據(jù)庫雖然不一定有SqlServer那么強大的功能,但可以滿足一般的應(yīng)用需要,利于網(wǎng)絡(luò)發(fā)行,零配置可以最大限度地減輕售后服務(wù)量。據(jù)說在國外有相當(dāng)多的軟件是使用Firebird數(shù)據(jù)庫,必定有其一定的道理。
用dbExpress連接Firebird數(shù)據(jù)庫
在Delphi中連接Firebird數(shù)據(jù)庫,有很多方案,IBX、IBO、OleDb等等,還有很多其它組件,有商業(yè)組件,也有免費組件,從長遠趨勢來看,覺得還是Delphi原生的dbExpress比較穩(wěn)妥,沒有特別的理由,感覺而已。
嵌入版(embedded)連接
把fbembed.dll改名為gds32.dll,直接使用interbase的dbExpress驅(qū)動,即可順利連接,非常簡單。或者把TSQLConnection的VendorLib屬性改為:fbembed.dll也可以。
需要注意的是,嵌入版不能在設(shè)計時連接數(shù)據(jù)庫,只能在運行時連接并且fbembed.dll等dll庫文件要在應(yīng)用程序在同一目錄中,才可以正常連接。也許可以設(shè)計時連接,但我沒搞定設(shè)計時連接,我覺得設(shè)計時連接不是必需的。
有的同志建議在開發(fā)時使用Server版,而發(fā)行時使用嵌入版,我覺得倒是個非常不錯的主意,因為嵌入版還有一個問題:只能有一個應(yīng)用程序連接數(shù)據(jù)庫文件,這樣不便于在設(shè)計時修改數(shù)據(jù)庫結(jié)構(gòu),由此看來,開發(fā)時使用Server版就顯示非常重要了,順便解決了設(shè)計時連接的問題,一舉兩得。
Firebird嵌入版不支持?jǐn)?shù)據(jù)庫密碼,有同志建議即使不支持?jǐn)?shù)據(jù)庫密碼,也要建立專用用戶,而不能使用sysdba,便于將來升級至服務(wù)器時保護sysdba用戶,這個也是非常有道理的。
Firebird數(shù)據(jù)庫及管理工具下載
1、FlameRobin 0.9 免費開源的Firebird管理工具,夠用了。
下載地址:http://www.flamerobin.org/
2、IB Expert 專業(yè)的Firebird工具,類似于sqlserver的企業(yè)管理器,商業(yè)軟件。
下載地址:http://www.ibexpert.com
3、Firebird官方網(wǎng)站:http://www.firebirdsql.org/
4、Firebird中文社區(qū):http://www.firebird.net.cn 匯集了很多Firebird的高手。