吵吵   2013-06-08  阅读:4,243

Firebird(火鸟)诞生于1981年,是一个跨平台的关系数据库系统,支持ANSI SQL语法的大多数特性,目前能够运行在Windows、linux和各种Unix操作系统上,它既能作为多用户环境下的数据库服务器运行,也提供嵌入式数据库的实现。

Firebird脱胎于Borland公司的开源版数据库Interbase6.0,是一个完全非商业化的产品,用C和C++开发。由于与interbase的血缘关系,大部分interbase的开发工具可以直接应用到Firebird开发中。Firebird使用Mozilla Public License v.1.1许可证发行。

前言

科里面抓考勤抓的厉害,以前是弄的指纹考勤,但是被满怀深仇大恨的人们拼命的按坏了,后来搞了一个无接触的,直接红外的人脸识别系统,叫汉王人脸考勤系统,很是牛逼啊。

但是很容易就忘了要扫脸,于是乎研究了一下它的数据库,看看能不能给出一个接口,用于实时查询考勤记录。结果一看,发现竟然是Firebird的数据库。

经典数据库还是超级数据库?

火鸟数据库有两种架构,分别是经典架构和超级架构,你应该装哪一个?这取决于你的实际情况,两种架构的对比如下:

经典架构 超级架构
进程 为每一个终端开启一个进程,每一个进程有独立的缓存,当连接比较少的时候,占用的资源少。 所有的连接都只建立一个进程,通过线程来回应查询,共用缓存。当连接增加的时候效率更快。
本地链接 比较快速,在linux下是直接的I/O读取文件,每一个进程都必须要有文件操作权限。 在linux下所有的本地连接都是通过网络层的,只有一个线程需要文件操作权限。
多处理器 多对称处理器支持,尤其是连接比较少又相互不影响的时候表现更佳。 非多对称处理器支持,在windows下,由于操作系统会自行切换进程的处理器,会出现性能直线下降的情况。可以在firebird.conf中修改CpuAffinityMask的值来避免这种情况。
进程守护 当在windows下运行时,只有以服务运行才可以使用进程守护。 不管是服务还是程序都可以。

如果你依然不知道如何选择,可以参考一下下面的规律:

  • 在windows下选择超级架构。
  • 在linux下,你只能选择其中的一个,在很多环境下,这两个的表现并没有太大不同。

不管任何时候你想切换到另外一种架构,你的程序和数据库都将正常运行。

firebird

windows下的嵌入式服务器

在windows平台下,Firebird提供了第三种方式,即嵌入式。在这种方式下,一个客户端和一个服务器包含于一个DLL文件中,可以方便的用于数据库的开发。当然,它也少了很多原本提供的一些安全特性,更多的相关内容可以参考:

http://www.firebirdsql.org/manual/ufb-cs-embedded.html (HTML)
http://www.firebirdsql.org/pdfmanual/Using-Firebird_(wip).pdf (PDF)

嵌入式的服务器是在一个独立的发行包中。

默认的安装目录:

Linux

下表是一些组件的默认安装目录,有些目录在一些unix-like的系统中可能会有所差异:

组件 文件名 默认位置
安装目录

/opt/firebird

发布文档盒其它相关文档目录

<InstallDir>\doc

 

Firebird 服务器

fbserver (SS) or fb_inet_

server (CS)

 

<InstallDir>\bin

 

命令行工具

 

isql, gbak, nbackup, gsec,

gfix, gstat, etc.

 

<InstallDir>\bin

 

数据库例子

employee.fdb

<InstallDir>\examples\

empbuild

用户自定义函数

ib_udf.so, fbudf.so

<InstallDir>\UDF

附加服务端动态库

libicu*.so, libib_util.so

<InstallDir>\bin

客户端动态库

libfbclient.so.2.m.n (net-

work client)

libfbembed.so.2.m.n (lo-

cal client with embedded engine,

Classic only)

/usr/lib

windows

组件 文件名 默认位置
安装目录

<ProgramDir>\Firebird\

Firebird_2_0

发布文档盒其它相关文档目录

<InstallDir>\doc

 

Firebird 服务器

fbserver.exe (SS) or fb_in-

et_server.exe (CS)

 

<InstallDir>\bin

 

命令行工具

 

isql.exe, gbak.exe, nback-

up.exe, gsec.exe, gfix.exe,

gstat.exe, etc.

 

<InstallDir>\bin

 

数据库例子

employee.fdb

<InstallDir>\examples\

empbuild

用户自定义函数

ib_udf.dll, fbudf.dll

<InstallDir>\UDF

附加服务端动态库

icu*.dll, ib_util.dll

<InstallDir>\bin

客户端动态库

fbclient.dll

<InstallDir>\bin

未完待续… …

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

一条回应:“Firebird-一个开源的嵌入式数据库”

  1. 悬案说道:

    博主辛苦,博客不错!希望能看到博主更优秀的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注