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 :https://sourceforge.net/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數據庫)》。