【轉】Firebird資料庫值得信賴嗎?為什麼我要在開發中選擇它?
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
相關文章
- 為什麼在資料驅動的路上,AB 實驗值得信賴?
- 為什麼運維管理皮膚我只選擇它?運維
- 代理IP如何選——IPIDEA值得信賴嗎?Idea
- 為什麼要選擇分散式資料庫?分散式資料庫
- 你選擇圖資料庫的原因只是因為它很火嗎?資料庫
- Linux運維管理皮膚為什麼我只選擇它?Linux運維
- TSBS 是什麼?為什麼時序資料庫 TDengine 會選擇它作為效能對比測試平臺?資料庫
- 我為什麼選擇 Angular 2?Angular
- 阿里不好嗎 為什麼有些人選擇離開?阿里
- (轉)為什麼選擇機器學習策略機器學習
- 我為什麼選擇成為獨立開發者
- 我為什麼選擇了 AdonisJsJS
- 為什麼越來越多的人選擇RDS建立MySQL資料庫?MySql資料庫
- 為何我選擇了iOS開發?iOS
- Java夜校班好嗎?為什麼選擇他Java
- 為什麼我們要在遊戲裡“牽手”?遊戲
- 低價伺服器到底值得信賴嗎?伺服器
- 我為什麼放棄MySQL?選擇了MongoDBMySqlMongoDB
- WP7開發中的資料庫系統選擇資料庫
- Firebird資料庫修復資料庫
- 【譯】為什麼命名“它”為依賴屬性(DependencyProperty)
- 嵌入式開發為什麼選擇C語言?C語言
- 為什麼要選擇Python進行Web開發?PythonWeb
- 為什麼選擇 Intellij IDEA 作為日常開發工具IntelliJIdea
- [開源] .Net ORM 訪問 Firebird 資料庫ORM資料庫
- 什麼樣的CRM系統值得選擇?
- 為什麼我會選擇走 Java 這條路?Java
- 我們為什麼選擇VUE來構建前端Vue前端
- 為什麼選擇俄羅斯代理IP?它對俄羅斯業務有什麼用處?
- 為什麼我們需要資料庫事務資料庫
- 企業為什麼選擇伺服器呢?有什麼優勢嗎?伺服器
- Elasticsearch 中為什麼選擇倒排索引而不選擇 B 樹索引Elasticsearch索引
- 為什麼選擇Guice框架GUI框架
- Aembit為什麼選擇 Rust?Rust
- 為什麼選擇使用Rust?Rust
- 為什麼要選擇SQL?SQL
- GoDaddy雲伺服器 | 到底是什麼讓我選擇了它?Go伺服器
- 微服務真的不挑資料庫嗎?如何選擇?微服務資料庫