Firebird數據庫值得信賴嗎?爲什麼我要在開發中選擇它?
1、Firebird是一個真正的關係數據庫,支持存儲過程、視圖、觸發器、事務等大型關係數據庫的所有特性;
2、Firebird支持SQL92的絕大部分命令,並且支持大部分SQL99命令,新版Firebird 2.0對SQL99的支持更完整;
3、Firebird源碼基於成熟的商業數據庫Interbase,有良好的穩定性,與Interbase有良好的兼容性;
4、不用考慮授權費用(免費),不用當心將來有一天你或你的客戶因爲使用盜版而被數據庫開發商告上法庭;
5、發佈簡易,安裝文件只有幾M,且高度可定製,客戶端的分發也很簡單,只需一個DLL文件;
6、Firebird的一嵌入式服務器版本,不用安裝,直接運行,基於單機開發首選;
7、Firebird的運行效率非常高;
8、具備高度可移植性,可在Linux,Unix,MacOS,Windows,Solaris系統下運行,而且數據庫格式完全一樣,不用修改;
9、開發環境支持良好,Delphi,C++Builder不用通過ODBC連接,直接用原生開發接口開發基於Firebird的程序。
還有其他特性:
1.支持事件,這個特性很好,很多商業數據庫都沒有,如sql server,DB2都沒有.
2. 支持數組字段,這個sql server還不支持.
3 支持計算字段,這個sql server還不支持.不過作用不是很大.
4 觸發器功能比很多商業數據庫都強大
好處講了,我現在講企業級應用還缺少的地方(^..^大家不要對我扔香蕉呀):
1. 不支持分佈式服務, 如在觸發器中或存儲過程中也訪問其他的FB數據庫現在沒有解決方法.只能通過前臺程序進行解決.
2 Supserver模式不的線程不支持多處理器.這個可能要等到FB3.0才能解決.
3 不支持數據分發與訂閱,現在MIS系統一般都要求數據即集中又獨立,這個就要數據的分發與訂閱服務.當然即使支持服務,寫這樣的管理系統時數據庫設計要需要很多的技巧的.不過通過第三方工具可以支持.見網站:www.meta.com.au 有一個FBReplicator工具
4 不支持全文檢索,不過可以通過第三方工具支持,見以下網站:http://www.codeproject.com/cs/database/FulltextFirebird.asp
現講些雞毛算皮的
1 不支增量備份,只有完全部分.對於特大的數據庫時,完全備分就會有些不便了.
2 沒有事務日誌(因是MGA),也就是不存在日誌備份,不過這個有不有作用不是很大.
3 基本的內置函數缺少.寫存儲過程與觸發器時得找些第三方函數庫,或自己寫自定義函數,這個即有壞處也有好處,壞處是影響了開發效率,好處是程序員可以寫出功能強大的適合本系統的函數.相當於sql server的自定義存儲過程.
4 安全性不好,破解FB的數據庫密碼相當容易,只要把原生secury.fdb數據庫覆蓋你服務器同名的數據庫,sysdba管理員的密碼就恢復到masterkey ,這個只能怪開源太透明什麼都告訴你,假設你知sql server 安全數據資料存放在什麼地方,我相信每個人破解sa 密碼也是很容易的.
5 過程與觸發器代碼不能加密碼,這樣自己系統的業務邏輯很容易被泄露.像sql server可以加蜜,不過其加密是假,在網上隨便下個工具就可以破解,不過sql server可以寫成dll形式的外部存儲過程(哈哈,就是fb的自定義函數)
6 數據精度不可,不過對一般的中小型應用來說是夠了.
7 不支持臨時表,這個比sql server退步點,不過他有外部文件表,哈哈比sql server有進步.
7 不支持臨時表,這個比sql server退步點,不過他有外部文件表,哈哈比sql server有進步
什麼是外部文件表?
這個指的是在firebird中數據庫的表,他的表數據是以文件形式存在磁的,例如:
CREATE TABLE HELL
EXTERNAL FILE ‘extal.fs‘ (
ADDREE CHAR(10) NOT NULL,
NAME CHAR(10))
以上將建一個extal.fs的文件來保存表HELL的數據,extal.fs文件的路徑由FB的配置文件中的ExternalFileAccess選項決定,如ExternalFileAccess=c:/windows 那麼extal.fs的全路徑是:
c:/windows/extal.fs
這種表用來與其他的數據源交源數據是相當方便的.
http://www.360doc.com/content/07/0913/21/24964_741983.shtml