當前位置:編程學習大全網 - 編程語言 - 小數據庫有哪些

小數據庫有哪些

Access,MSDE 2000,Embedded Firebird,SQLite等都是可以免費再分發(free redistributable)的數據庫。

相比而言,MSDE 2000 顯著缺點是需要安裝,最大優點是和服務器端的 SQL Server 編程模型壹致,開發便利。

Access的顯著缺點是功能較少,不支持事務等常用功能,最大優點是簡單、多數開發者都很熟悉,部署也很方便。

SQLite支持事務,也是壹款單文件數據庫,比較不足的是 .NET Data Provider 還不是很成熟。

Firebird則同時具有:單文件、部署簡單不需安裝(只需 XCOPY 兩個文件)、支持事務、存儲過程、觸發器,.NET Data Provider比較穩定成熟等優點。

這個星球上的數據庫實在不勝枚舉,這裏只列壹些我接觸過的常見的。

可以稍微誇張點說,有交互的應用,起碼得用壹下數據保存,即便是自定義結構的數據保存,還是最常見的INI、XML等,都可以算是“數據庫”,真正點的,如DBase系列、FoxBase、FoxPro、MSAccess、InterBase、MS SQL Server、Oracle、DB2等,這些是商業化的數據庫,前面幾個只能算是數據庫,後面幾個是RMDBS(關系型數據庫管理系統)。

對應商業化的,有開源的:SQLite、SimpleSQL、Berkely DB、Minosse、Firebird( 前身是是Borland公司的InterBase)、PostgreSQL、MySQL等。

□SQLite:大家可以看我的SQLite系列隨筆,C編寫的,可以跨操作平臺,支持大部分ANSI SQL 92,它是嵌入式的輕量級關系形數據庫引擎,只需要壹個DLL,體積為250k,數據庫也只是壹個文件,零配置,便可工作。既然開源,妳甚至可以把它嵌入妳的程序中。核心開發人員只有壹個,最近加入了另外壹個,也就是2個人而已,實在佩服,目前發展到3.1.0,相當高效穩定,有開源驅動在sourceforge.net上有其ADO.NET Data Provider for SQLite :/projects/adodotnetsqlite/ 。

□SimpleSQL:相對SQLite要大幾倍,但也是輕量級的,功能稍微強大壹點,C++編寫,有OLE、Java等版本。

□Berkely DB:C++編寫的大型關系型數據庫系統,還額外地支持XML(把XML當成數據庫),號稱2百萬的安裝量,MySQL也只不過號稱5百萬安裝量而已,跨平臺。

□Minosse:純C#編寫的大型關系型數據庫系統,理想是超越MS SQL Server!最新版本:0.2.0,真難得,純Java寫的看得多了,純C#的,不是移植別人的,還是第壹個,佩服作者:包含C/S和嵌入式版本,並可跨越大部分平臺,因為它不用Windows的東西,可以在Mono下編譯。

□Firebird:這個東西太牛了,目前有1.5穩定版本已經擁有大量特性,完全支持ANSI SQL92、98等,壹些超酷的特性讓人瘋狂(1.0特性、1.5特性,從這裏開始研究),主要開發人員是壹個俄羅斯人,目前開發隊伍已經擴大到近100人,有3種模式,單機獨立,典型C/S,超級服務器。2.0版本和3.0版本將在近期推出,看完其路線圖(2.0、3.0)妳就會瘋掉。有.NET驅動,目前是1.7beta版。主要特性:

◆A.C.I.D;

◆MGA(任何版本的引擎都可以處理同壹數據庫記錄);

◆PSQL(存儲過程)超級強大,ms sql相對的太次,它啥都能在服務器端實現並推送到客戶端成為強大的報表,存儲過程;

◆觸發器都可以在客戶端獲取監控追蹤;

◆自動只讀模式;

◆創新的事務保證絕對不會出錯;

◆24*7運行中仍然可以隨時備份數據庫;

◆統壹觸發器:任何操作都可以讓某表唯壹的觸發器來總控;

◆大部分語言都可以寫plug-in,並直接在存儲過程中調用函數;

◆c->c++,更加少的代碼但更加快的速度;

◆3種運行模式,甚至可以嵌入式;

◆主流語言都可以調用它;

◆動態sql執行;

◆事務保存點;

□PostgreSQL:POSTGRES數據庫的後開源版本,號稱擁有任何其他數據庫沒有的大量新特性,似乎目標是要做超大型的OO關系型數據庫系統,目前已經發展到8.0,有.NET驅動,中文官方網站有詳細介紹。

□MySQL:這個,不用說了吧?號稱全球最受歡迎的開源數據庫,但讓我奇怪的是,PostgreSQL都有簡體中文的支持:包括內核、管理工具、QA等等,在最新版本MySQL中,我卻沒有發現... ,有.NET驅動,其中MySQL Connector/Net就是原來在sf.net上的ByteFX.Data項目,作者已經加入了MySQL團隊,參看《感慨 20 之開源的前途/錢圖?(1數據庫)》。

======================================================

最近在學習 Firebird Embeded Database。作為壹款單文件型小型數據庫,Firebird 具有很多吸引人的特征,比如支持事務、支持存儲過程、觸發器等,而且 Embeded 版本的 Firebird 在 .NET 開發中只需要拷貝兩個文件:壹個 fbembed.dll (非托管但不需要註冊的動態鏈接庫)和壹個 ADO.NET Data Provider 的 FirebirdSql.Data.Firebird.dll。這些特征都非常適合那些需要在客戶端存儲壹些數據,但又不想安裝數據庫(比如MSDE)軟件的情形。

據稱,在國外,需要使用客戶端數據庫的情況中,有30%左右的開發者選擇Access,有30%的開發者選擇MSDE 2000,有30%的開發者選擇Embedded Firebird,剩余10%選擇其他小型數據庫,如SQLite,MySQL 等。

上面所說的Access,MSDE 2000,Embedded Firebird,SQLite等都是可以免費再分發(free redistributable)的數據庫。相比而言,MSDE 2000 顯著缺點是需要安裝,最大優點是和服務器端的 SQL Server 編程模型壹致,開發便利。Access的顯著缺點是功能較少,不支持事務等常用功能,最大優點是簡單、多數開發者都很熟悉,部署也很方便。SQLite支持事務,也是壹款單文件數據庫,比較不足的是 .NET Data Provider 還不是很成熟。Firebird則同時具有:單文件、部署簡單不需安裝(只需 XCOPY 兩個文件)、支持事務、存儲過程、觸發器,.NET Data Provider比較穩定成熟等優點。

Firebird 本身有SuperServer和Embedded版本之分,後者只能本機訪問,不接受TCP連接。對於開發者而言,從Embedded數據庫切換到SuperServer,只需更改數據庫連接串中的ServerType值就行。

但是,在妳正式決定使用?Firebird 之前,請妳註意下面這個 known issue(已知問題): Firebird 數據庫文件不能放置在含有中文等字符的路徑中。Firebird 的文件名不可以用中文字符,所在路徑的任何部分如果含有中文字符,都將無法訪問到數據庫。舉個例子,中文Windows桌面所在的目錄壹般是“C:\Documents and Settings\用戶名\桌面”,如果數據庫文件放置在桌面上,就無法訪問到。當然,Firebird 內部是可以存儲中文字符的,因為它支持 GB2312 和 UNICODE 等字符集。

需要註意壹點,連接串中的 Database 地址如果使用相對路徑,請壹定註意這個相對路徑是相對於 fbembed.dll 所在目錄的。

  • 上一篇:關於態度的詩句
  • 下一篇:用什麽軟件編寫c語言
  • copyright 2024編程學習大全網