FastDB 是一个嵌入式的主内存数据库。 它旨在用于您的 C/C++ 应用程序,以提供对持久数据的快速访问。

    由于 FastDB 是嵌入式数据库,因此无需启动处理客户端请求的服务器。 FastDB 只是一个库,它被链接到客户端应用程序中,并提供对持久化对象的访问。

    要构建 FastDB 库,您需要使用适当的 makefile。 在 Linux 和大多数其他流行的使用 GCC 的 Unix 系统上,只需运行 “make” 即可。您也可以使用大多数 Unix 系统的标准方式:./configure ; make ; sudo make install。 另外,您可以查找分发包中包含的专用版本的 makefile(如 makefile.sun),编写基于标准 FastDB makefile 的自己的 makefile,或者自定义一些现有的 makefile。

    在 Windows 上使用 Microsoft Visual C++,您只需执行 “make.bat” 命令。 如果打印出错误消息说 “nmake” 或 “cl” 命令未被识别,则表示未正确设置 MS Visual Studio 的环境变量。 解决该问题有两种方法:

    1. 在“开始”面板中的“Microsoft Visual Studio”菜单中,选择“Microsoft Visual Studio 工具”,然后选择其中的“Microsoft Visual Studio 命令提示”。在此窗口中将目录更改为 FastDB 主目录,然后执行 “make.bat”。
    2. 在 “C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin” 目录中有一个 vcvars32.bat 文件(这是 VS 2003 的路径,但是 Visual C++ 6.0 有类似的文件)。运行它以在当前窗口中设置环境。

    您还可以使用 Microsoft Visual Studio 项目文件(fastdb.sln 或 fastdb.dsw)并使用 Visual Studio 打开它。

    在 config.h 文件中,您将找到各种选择 FastDB 的配置选项。 更改配置的首选方法是编辑此文件(而不是在编译器命令行中指定相应的宏,因为在后一种情况下,您可能会忘记在某处指定此选项,从而导致您的应用程序和/或 FastDB 库的不一致性)。

    您可以使用 SubSQL 工具检查数据库内容,以及用于数据库管理。 SubSQL 可以与您的应用程序并发启动。但请注意,FastDB 使用单写多读的数据库级锁定,因此如果您在 SubSQL 中执行了一些修改并在此之后执行了提交,则应用程序可能会被阻塞,直到您释放(提交或中止)SubSQL 中的事务。

    FastDB 分发包还包含许多示例和测试,位于 examples 目录中。 这些测试用于三种不同的目的:

    1. 说明 FastDB 编程方法。
    2. 回归测试
    3. 性能测量

    有关 FastDB 的更多信息可以在 FastDB.htm 文件中找到,该文件位于此目录中。

    FastDb 是高效的内存数据库系统,具备实时能力及便利的 C++ 接口。FastDB 不支持 client-server 架构因而所有使用 FastDB 的应 用程序必须运行在同一主机上。FastDB 针对应用程序通过控制读访问模式作了优化。通过降低数据传输的开销和非常有效的锁机制提供了高速的查询。对每一 个使用数据库的应用数据库文件被影射到虚拟内存空间中。因此查询在应用的上下文中执行而不需要切换上下文以及数据传输。fastdb 中并发访问数据库的同 步机制通过原子指令实现,几乎不增加查询的开销。fastdb 假定整个数据库存在于 RAM 中,并且依据这个假定优化了查询算法和接口。此外,fastdb 没有数据库缓冲管理开销,不需要在数据库文件和缓冲池之间传输数据。这就是 fastdb 运行速度明显快于把数据放在缓冲池中的传统数据库的原因。

    Fastdb 支持事务、在线备份以及系统崩溃后的自动恢复。事务提交协议依据一个影子根页面算法来自动更新数据库。恢复可以执行得非常快,为临界应用提 供了高可用性。此外,取消事务日志改进了整个系统的性能,并且使得可以更有效的利用系统资源。

    fastdb 是一个面向应用的数据库,数据库 表通过应用程序的类信息来构造。fastdb 支持自动的模式评估,使你可以只需要在一个地方更改 - 你的应用程序的类。fastdb 提供一个灵活方便的接口 来从数据库中获取数据。使用一个类 SQL 的查询语言进行指定的查询。通过一些后关系特性如非原子字段,嵌套数组,用户定义类型和方法,对象间直接引用简化 了数据库应用程序的设计并使之更有效率。

    尽管 fastdb 的优化是立足于假定整个数据库配置在计算机的物理内存中,但是也有可能出现使用的 数据库的大小超过了系统物理内存的大小的情况,在这种情况下标准的操作系统交换机制就会工作。但是整个 fastdb 的搜索算法和结构是建立在假定所有的数 据都存在于内存中的,因此数据换出的效率不会很高。