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