`
xuelianbobo
  • 浏览: 174732 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

常用小数据库

 
阅读更多

【转载】

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(关系型数据库管理系统)。

对应商业化的,有开源的:SQLiteSimpleSQLBerkely DBMinosseFirebird( 前身是是Borland公司的InterBase)、PostgreSQLMySQL等。

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数据库)》。

 

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

 

 

最近在学习 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 等字符集。

我已向 Firebird 开发者报告了这个 BUG,希望能早日解决这个 BUG。

需要注意一点,连接串中的 Database 地址如果使用相对路径,请一定注意这个相对路径是相对于 fbembed.dll 所在目录的。

分享到:
评论

相关推荐

    常用mysql数据库配置文件

    常用mysql数据库配置文件常用mysql数据库配置文件常用mysql数据库配置文件常用mysql数据库配置文件常用mysql数据库配置文件常用mysql数据库配置文件常用mysql数据库配置文件常用mysql数据库配置文件常用mysql数据库...

    常用号码数据库文件

    这个文件是常用号码数据库文件,有关常用手机号码的实现请参考博文:http://blog.csdn.net/l1028386804/article/details/47374415

    机械工业常用材料数据库

    《机械工业常用材料性能数据库 CLXN》(以下简称为CLXN)是由机械工业基础标准情报网秘书处开发研制的计算机应用软件,为企业提供了一个比较详细的常用材料性能数据库。 CLXN的使用对象是企业标准化工作、设计人员...

    kettle常用的数据库驱动脚本

    本资源包"Kettle常用的数据库驱动脚本"包含了Kettle连接到不同数据库所需的驱动,包括Oracle、MySQL、SQL Server和Access。理解这些驱动及其使用方法对于有效利用Kettle进行数据操作至关重要。 首先,让我们逐一...

    常用数据库的比较 常用数据库的比较

    1977 年,世界上第一个商用关系型数据库...今天常用的D BM S 主要有V isualFoxPro、A ccess、Sybase SQ L Server 、M icrosoftSQ L Server、Teradata、D B2 与O racle。那么,它们各有什么特 点、各自的优势是什么呢?

    常用中文数据库检索常用中文数据库检索.ppt

    常用中文数据库检索常用中文数据库检索

    常用全文数据库检索常用全文数据库检索.ppt

    常用全文数据库检索常用全文数据库检索

    oracle常用的数据库脚本

    本文将围绕“Oracle常用的数据库脚本”这一主题,详细讲解Oracle数据库管理中的一些关键脚本和命令,帮助你更好地理解和操作Oracle数据库。 首先,Oracle数据库脚本通常是指SQL(Structured Query Language)脚本,...

    《机械工业常用材料性能数据库》CLXN_V6.0

    机械工业常用材料性能数据库 V6.0 最新版的

    使用C和C++连接MySQL数据库并进行常用的数据库操作

    使用C和C++连接MySQL数据库并进行常用的数据库操作。实现了简单的学生(或职工)信息管理系统,源于大学时的数据库课程设计使用C和C++连接MySQL数据库并进行常用的数据库操作。实现了简单的学生(或职工)信息管理...

    mysql常用数据库命令

    ### MySQL 常用数据库命令 #### 一、启动与停止 MySQL 服务 - **安装 MySQL 服务**: - `mysqld install` - **启动 MySQL 服务**: - `net start mysql` - **停止 MySQL 服务**: - `net stop mysql` #### 二、...

    常用内存数据库介绍常用内存数据库介绍.doc

    内存数据库简介 内存数据库是一种将整个数据库存储在计算机的主存中,以提高数据库的性能和响应速度的技术。传统的数据库管理系统将所有数据存储在磁盘上,称为磁盘数据库(DRDB:Disk-Resident Database)。磁盘...

    常用地理数据库对比测试

    常用地理数据库的对比测试,主要对比测试了MySQL 5.7.4的Spatial Extension、PostgreSQL9.2.2的PostGIS、Oracle Spatial10.2.0.1.0、ArcSDE10.0(ST_Geometry)及MongoDB2.6.5五种数据库在建立空间索引的情况下的...

    linux常用数据库手册

    linux常用数据库,包括各种常用的函数接口说明和样例等。

    美赛常用常用数据库网址

    [全]美赛常用常用数据库网址,中文外文资源分类整理,大集合

    一些常用的数据库操作

    能够帮助更好的开发数据库,从而使我们更容易的开发我们所需要的软件程序。

    常用化工数据库常用化工数据库.doc

    【常用化工数据库】涵盖多个领域的专业数据库,这些数据库在化工行业和相关科学研究中扮演着重要角色,为用户提供化学品信息、物理化学数据、生物转化过程、核酸结构、有机化学文献、药物设计、化学安全性评估以及...

    常用数据库合集

    本资源包集合了多种常用的Access数据库,适合程序员、数据分析师和学习者使用。以下将详细介绍这些数据库及其可能的应用场景。 1. **汉字转拼音五笔access对照库(新华字典).mdb**: 这个数据库包含了汉字与其...

    常用的数据库的编写 以及各种处理

    这是常用的数据库的编写和最基本的乱码处理文件 都可以使用

Global site tag (gtag.js) - Google Analytics