Access,MSDE 2000,Embedded Firebird,SQLite等都是可以免費再分發(fā)(free redistributable)的數(shù)據(jù)庫。
相比而言,MSDE 2000 顯著缺點是需要安裝,最大優(yōu)點是和服務(wù)器端的 SQL Server 編程模型一致,開發(fā)便利。
Access的顯著缺點是功能較少,不支持事務(wù)等常用功能,最大優(yōu)點是簡單、多數(shù)開發(fā)者都很熟悉,部署也很方便。
SQLite支持事務(wù),也是一款單文件數(shù)據(jù)庫,比較不足的是 .NET Data Provider 還不是很成熟。
Firebird則同時具有:單文件、部署簡單不需安裝(只需 XCOPY 兩個文件)、支持事務(wù)、存儲過程、觸發(fā)器,.NET Data Provider比較穩(wěn)定成熟等優(yōu)點。
這個星球上的數(shù)據(jù)庫實在不勝枚舉,這里只列一些我接觸過的常見的。
可以稍微夸張點說,有交互的應(yīng)用,起碼得用一下數(shù)據(jù)保存,即便是自定義結(jié)構(gòu)的數(shù)據(jù)保存,還是最常見的INI、XML等,都可以算是“數(shù)據(jù)庫”,真正點的,如DBase系列、FoxBase、FoxPro、MSAccess、InterBase、MS SQL Server、Oracle、DB2等,這些是商業(yè)化的數(shù)據(jù)庫,前面幾個只能算是數(shù)據(jù)庫,后面幾個是RMDBS(關(guān)系型數(shù)據(jù)庫管理系統(tǒng))。
對應(yīng)商業(yè)化的,有開源的:SQLite、SimpleSQL、Berkely DB、Minosse、Firebird( 前身是是Borland公司的InterBase)、PostgreSQL、MySQL等。
□SQLite:大家可以看我的SQLite系列隨筆,C編寫的,可以跨操作平臺,支持大部分ANSI SQL 92,它是嵌入式的輕量級關(guān)系形數(shù)據(jù)庫引擎,只需要一個DLL,體積為250k,數(shù)據(jù)庫也只是一個文件,零配置,便可工作。既然開源,你甚至可以把它嵌入你的程序中。核心開發(fā)人員只有一個,最近加入了另外一個,也就是2個人而已,實在佩服,目前發(fā)展到3.1.0,相當(dāng)高效穩(wěn)定,有開源驅(qū)動在sourceforge.net上有其ADO.NET Data Provider for SQLite :https://sourceforge.net/projects/adodotnetsqlite/ 。
□SimpleSQL:相對SQLite要大幾倍,但也是輕量級的,功能稍微強大一點,C++編寫,有OLE、Java等版本。
□Berkely DB:C++編寫的大型關(guān)系型數(shù)據(jù)庫系統(tǒng),還額外地支持XML(把XML當(dāng)成數(shù)據(jù)庫),號稱2百萬的安裝量,MySQL也只不過號稱5百萬安裝量而已,跨平臺。
□Minosse:純C#編寫的大型關(guān)系型數(shù)據(jù)庫系統(tǒng),理想是超越MS SQL Server!最新版本:0.2.0,真難得,純Java寫的看得多了,純C#的,不是移植別人的,還是第一個,佩服作者:包含C/S和嵌入式版本,并可跨越大部分平臺,因為它不用Windows的東西,可以在Mono下編譯。
□Firebird:這個東西太牛了,目前有1.5穩(wěn)定版本已經(jīng)擁有大量特性,完全支持ANSI SQL92、98等,一些超酷的特性讓人瘋狂(1.0特性、1.5特性,從這里開始研究),主要開發(fā)人員是一個俄羅斯人,目前開發(fā)隊伍已經(jīng)擴大到近100人,有3種模式,單機獨立,典型C/S,超級服務(wù)器。2.0版本和3.0版本將在近期推出,看完其路線圖(2.0、3.0)你就會瘋掉。有.NET驅(qū)動,目前是1.7beta版。主要特性:
◆A.C.I.D;
◆MGA(任何版本的引擎都可以處理同一數(shù)據(jù)庫記錄);
◆PSQL(存儲過程)超級強大,ms sql相對的太次,它啥都能在服務(wù)器端實現(xiàn)并推送到客戶端成為強大的報表,存儲過程;
◆觸發(fā)器都可以在客戶端獲取監(jiān)控追蹤;
◆自動只讀模式;
◆創(chuàng)新的事務(wù)保證絕對不會出錯;
◆24*7運行中仍然可以隨時備份數(shù)據(jù)庫;
◆統(tǒng)一觸發(fā)器:任何操作都可以讓某表唯一的觸發(fā)器來總控;
◆大部分語言都可以寫plug-in,并直接在存儲過程中調(diào)用函數(shù);
◆c->c++,更加少的代碼但更加快的速度;
◆3種運行模式,甚至可以嵌入式;
◆主流語言都可以調(diào)用它;
◆動態(tài)sql執(zhí)行;
◆事務(wù)保存點;
□PostgreSQL:POSTGRES數(shù)據(jù)庫的后開源版本,號稱擁有任何其他數(shù)據(jù)庫沒有的大量新特性,似乎目標(biāo)是要做超大型的OO關(guān)系型數(shù)據(jù)庫系統(tǒng),目前已經(jīng)發(fā)展到8.0,有.NET驅(qū)動,中文官方網(wǎng)站有詳細介紹。
□MySQL:這個,不用說了吧?號稱全球最受歡迎的開源數(shù)據(jù)庫,但讓我奇怪的是,PostgreSQL都有簡體中文的支持:包括內(nèi)核、管理工具、QA等等,在最新版本MySQL中,我卻沒有發(fā)現(xiàn)... ,有.NET驅(qū)動,其中MySQL Connector/Net就是原來在sf.net上的ByteFX.Data項目,作者已經(jīng)加入了MySQL團隊,參看《感慨 20 之開源的前途/錢圖?(1數(shù)據(jù)庫)》。