Raima Database Manager++, Velocis Database Server

作者:Nick Xidis
Raima Database Manager++, Velocis Database Server
  • 制造商:Raima Corporation

  • 电子邮件:sales@raima.com

  • 网址:http://www.raima.com/

  • RDM++ 价格:995 美元(免版税)

  • Velocis 价格:495 美元(2 用户)

  • 评测人:Nick Xidis

Raima 公司提供三款产品:Raima Database Manager++ (RDM++,前身为 db_Vista),一个用于 C 语言的数据库管理库;Raima Object Manager (ROM),一个用于 C++ 的持久类库;以及 Velocis 数据库服务器,它同时支持 RDM++ API 和 ANSI SQL。这三款产品都支持事务日志记录和恢复、复合键和时间戳。Raima 产品线最独特的功能是指针和关系数据导航的结合。我使用 Caldera 的 OpenLinux Standard 1.1 在配备 40MB RAM 的 DEC P-90 上测试了所有三款产品。我将在本次评测中介绍 RDM++ 和 Velocis 服务器。

RDM++ 安装

安装非常简单。只需使用 tar 解压两个软盘,然后运行 makeall shell 脚本。RDM++ 编译时没有明显的错误。我有一个小小的抱怨,makeall shell 脚本应该询问额外的编译标志;我希望添加一个 -O3 标志。

RDM++ API

要创建数据库,请从定义数据库模式的 .ddl 文件开始。表的定义格式与 C 语言中的 STRUCT 非常相似。在 .dll 文件中还定义了集合 (Sets)。集合定义了指向数据库中其他记录的指针。因此,表中的一条记录可以直接指向另一条记录,而无需连接 (joining)。表的组合(关系数据模型)和集合(网络-指针数据模型)是 RDM++ 真正闪光的地方。与在运行时迭代表以创建连接的过程相比,使用集合指向其他记录就像在表之间拥有永久预定义的 join,可以加快应用程序的速度。在实践中,我发现将连接构建到数据库中产生的代码比使用 ISAM 库的类似应用程序更简洁明了。一旦构建了 .ddl 文件,ddlp 实用程序就会编译数据库字典和头文件,这些头文件提供了应用程序从数据库中需要的常量。

RDM++ 的 C API 非常容易学习,因为所有函数调用都以 d_ 开头,并且非常直观。要打开数据库,只需调用 d_open;要读取记录,调用 d_recread。不要认为 API 直观就意味着它不丰富——有 200 多个函数。学习曲线非常短;我能够在几个小时内生成简单的 C 应用程序。学习 API 的最大帮助之一是 dal 实用程序,它允许在命令行输入 d_ 调用,就像在源代码中编写的那样。几乎任何 d_ 函数调用都可以交互式运行,并且可以立即看到结果。

另一个节省时间的好工具是 db_QUERY 实用程序。它允许使用 SQL 从 RDM++ 数据库生成报告。表和集合都可以从 db_QUERY 访问——集合显示为 SQL 视图。您可以交互式使用它,也可以使用预先编写的查询文件。最棒的功能是您可以将 db_QUERY 嵌入到 C 应用程序中。我在命令行中使用它来制定我的查询。然后通过几个函数调用,相同的报告就在我的 C 应用程序内部生成。为了简单起见,这些函数都以 q_ 开头,并且只有十二个。

我发现创建数据库的整个系统易于理解且使用起来非常愉快。唯一缺少的是 GUI 报表编写器。Raima 为 MS Windows 制作了一个相当不错的报表编写器,但不适用于 X。

RDM++ 运行时

单用户应用程序可以直接执行;但是,要使用 RDM++ 多用户模式,需要一个锁管理器。锁管理器在单独的进程中运行,并管理应用程序所有用户的文​​件锁。多用户模式运行良好。记录级锁定不是由锁管理器强制执行的,因此您需要将用户数限制为 20 个或更少。

这是 RDM++ 的一个缺点。如果要使用 RDM++ 构建严重的多用户应用程序,则需要记录锁。我知道此选项会带来一些开销,但这似乎是值得的。

Velocis 服务器

Velocis 是一个后台处理的强大工具。它支持您期望在最好的商业数据库服务器中看到的所有标准功能:事务处理、ACID 事务、记录和表锁、存储过程、触发器和热备份。它还支持广泛的 API:RDM++ C API、ROM C++ API(用于存储 C++ 对象)、ANSI 89 和大多数 92 SQL API 以及 SQL Access Group 的调用级别接口 (SAG-CLI,与 Microsoft 的 ODBC level 1 API 相同)。此外,服务器可以很容易地使用 C 或 C++ 进行扩展。

安装

安装 Velocis 相当容易。使用 tar 解压磁盘后,运行 install 脚本,该脚本会创建两个文件:rdshome.sh 和 rdshome.csh。这些 shell 脚本导出 Velocis 运行所需的所有环境变量。我将 rdshome.sh 的内容复制到 /etc/profile,以便在系统范围内可用。每个 Velocis 服务器(您可以运行多个服务器)都必须在 /etc/services 文件中定义具有相同名称的主机别名和端口。只需启动服务器,您就可以开始使用了。

管理

Velocis 是通过 rdsadm 命令行实用程序进行管理的。Velocis 相当容易使用和理解,但 rdsadm 实用程序很笨拙,并且没有体现服务器的质量。Raima 应该为 Velocis 提供一个 X windows GUI 管理工具。

独特功能

Velocis 对于 C 程序员来说是一个梦想,因为服务器扩展模块 (EM) 和用户自定义函数 (UDF) 都是用 C 实现的。

UDF 是 C 共享库,其中包含可以从 SQL 调用的标量或聚合函数。UDF 使用标准的 SAG-CLI,并通过使用 SQL create function 调用来注册。注册后,UDF 可以像任何其他 SQL 函数一样使用。

UDF 可以与 SQL check 子句结合使用来创建触发器。触发器在服务器上运行,每当表发生更改时都会触发。因此,通过在创建表时使用 check 子句,可以在服务器上自动执行 UDF 和内置函数。这是确保在数据库上强制执行自定义业务逻辑的好方法。

Velocis 服务器也可以在 SQL 系统之外使用扩展模块进行自定义。EM 本质上与用户自定义函数相同,但由客户端使用 RPC 调用直接调用。它们独立于 SQL 系统。事实上,整个 SQL 接口都是一个扩展模块。这种模块化设计使 Velocis 成为需要大量定制的垂直市场应用的绝佳选择。

Velocis 还支持使用 create procedure 调用存储 SQL 过程,允许使用单个函数调用执行一组 SQL 语句。

Raima Database Manager++, Velocis Database Server

结论

Raima 的产品都是赢家。我特别喜欢 RDM++ API。.dll 设置和 d_ 函数非常容易学习,并且功能足够丰富,值得认真对待。即使使用 Velocis,我也很想使用低级 d_ 函数来代替 SQL。SQL 对于报告和系统管理仍然很好。毕竟,它几乎是通用的数据库语言。Raima 仅在几个方面有所欠缺。首先,Velocis 缺少 GUI 工具,对于严肃的后台使用,至少需要一个 X Windows 管理工具和报表编写器。其次,Raima 需要加强其互联网工具。目前,Velocis 只有一个 Perl 接口。Raima 应该考虑做一个 JDBC type 4 驱动程序和一个 HTML 脚本工具,如 PHP/FI 或 Scriptease for ADABAS D。总而言之,Raima 是赢家,值得您在下一个项目中关注。

Nick Xidis 是位于华盛顿州奥本市联邦航空管理局的电信专家。当他不为 FAA 工作时,Nick 会为 Linux/Unix 系统提供私人咨询。他还喜欢与他的妻子和五个(即将成为六个)孩子玩耍。您可以通过电子邮件 nickx@xsc.wa.com 与他联系。

加载 Disqus 评论