一些轻量级的数据库:SQLite Perst Firebird

下面的文章段落都是摘录,以备用。

来源参考:http://www.ad0.cn/netfetch/read.php/449.htm

 

Embedded Firebird DB 简介
最近在学习 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 所在目录的。
FireBird 源自於BORLAND 的 InterBase 6 Open Source版本 簡述性能如下:

有免費版本/簡單易用/運作穩定/維護成本低/可以簡單快速的安裝
跨平臺、多種網路協定。
OS: Winows 2000 / Windows NT / Windows Me / Windows 9X / Unix / Solaris / Novell / Aix / Linux / BSD??
Protocol: TCP/IP、具名管道、NetBEUI
具備關聯資料庫都有的功能,包括 Database 、 Table 、 Row 、 Index 、 View 、 Sps 、 Trigger 、 Default 、 Roles 、 Constraint 約束…等等物件.
SQL語法與SQL92標準一致、優秀的第三方DBA管理工具IBExpert 、 EMS QuickDesk 、 IBAdmin等,類似SQL Server資料庫管理員

Firebird 的技術指標
資料庫的大小:當使用多檔資料庫時,最大32TB
單個資料庫檔的大小:多數平臺下為4GB,某些平臺下2GB
資料庫中表的數量:64
單個表的大小:32TB
表中允許的記錄(row)數量:4GB
單個記錄(row)的大小:64KB
表上所允許的索引數量:64KB
資料庫所允許的索引數量:4GB
    
    官方站 http://www.firebirdsql.org

    MSDE             好是好,但要安装
    Access           加密强度不够("完全是在裸奔"——经典啊)

Access和SQL Server数据库有什么具体区别?
  1、Access是桌面型数据库,
优点是:操作灵活、转移方便、运行环境简单,对于小型网站的数据库处理能力效果还不错。
缺点是:不支持并发处理、数据库易被下载存在安全隐患、数据存储量相对较小、数据量过大时严重影响网站访问速度和程序处理速度。
  2、SQL Server是基于服务器端的企业级数据库,适合大容量数据和大流量网站的应用,
优点是:在性能、安全、功能管理、可扩展性上要比ACCESS强很多,两者并非同级别的数据库,有些功能ACCESS甚至无法做到。详细请访问微软官方网站的介绍 http://www.microsoft.com/china/sql/
缺点是:一般用户无法直接对SQL SERVER进行远程管理、空间租用的成本比ACCESS稍高。

  SQLite           不支持数据库加密,至少免费版是别想了
     http://www.sqlite.org/
     SQLite的Wiki
支持事件
不需要配置,不需要安装,也不需要管理员
支持大部分SQL92
一个完整的数据库保存在磁盘上面一个文件
同一个数据库文件可以在不同机器上面使用
最大支持数据库到2T
字符和BLOB的支持仅限制于可用内存
整个系统少于3万行代码,少于250KB的内存占用(gcc)
大部分应用比目前常见的 客户端/服务端 的数据库快
没有其它依赖
源代码开放, 代码95%有较好的注释
简单易用的API. 官方带有TCL的编译版本。其它的单独提供

   Firebird      单文件发布,不需安装,有密码保护,.NET Data Provider比较稳定成熟  
                     支持事务、存储过程、触发器 这才是重点啦,不然我就用Access啦

小型数据库 比较
小型数据库 免费
============
参考来源:
这里有三个选择。

  1. db4o
     面向对象的轻量级数据库,支持 Java 和 .Net,稍微看了下类库,发现 .Net 版本的 "Java向" 很严重,以致与库中还包含了一堆Java基本API封装(命名空间 Sharpen);此外还有个缺点是封装不够彻底,Internal 名称空间下的东西全部暴露出来了。估计其主要实现为 Java,.Net 版本仅仅是修改 Java 版本并加上 Java 的兼容代码。
  2. SQLite
     纯 C 编写的关系型数据库,有 .Net 和 Java 的驱动,.Net 驱动完全兼容 ADO.Net。
  3. Perst
     Perst 是面向对象的轻量级数据库,支持 Java 和 .Net。我觉得其 .Net API 封装的不错,几乎是一看就懂,支持 .Net 1.1 和 2.0,默认为 1.1,支持 2.0 需要在编译时加入编译条件 USE_GENERICS

    以上数据库系统都是开源的,具体使用的协议请看其内部。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值