电信 教育 政务 机械 汽车 船舶 交通 石化 烟草 服装 电力 金融 外贸 冶金 电子

东软OpenBASE 嵌入式数据库系统解决方案

2004-6-12 发布方:东软 网友评论 0 条 点击进入论坛

系统运行环境
    从前面的系统中可以看出OpenBASE Mini系统主要包括两个部分,其中OpenBASE Mini Server主要运行在Windows NT服务器上;而OpenBASE Mini Satellite则可以在Windows CE--包括运行在手持设备(Handheld PC)和掌上设备(Palm-SizePC)上的两种系统、Palm OS等主流嵌入式操作平台上运行。OpenBASE Mini支持TCP/IP网络通信协议、串行连接等多种连接方式。

应用开发接口
    OpenBASE Mini为用户提供了三种不同的的嵌入式应用开发接口:C语言例行程序接口、模块SQL接口、嵌入式SQL接口。除此之外还提供了多种工具帮助用户建立嵌入式应用系统,简化了整个嵌入式应用的开发过程.

例行程序接口
    例行程序接口是OpenBASE Mini提供的一组C程序API,使用该接口开发的应用具有体积最小,占用资源最少、运行效率最高的特点,基于OpenBASE Mini地最小应用系统就是使用该接口开发的。

模块SQL接口
    SQL模块是OpenBASE Mini提供的嵌入式应用的主要开发接口。
    SQL模块是由若干个SQL语句编写的过程组成的模块,可以作为高级语言的外部模块被高级语言调用。SQL模块可以单独编译。其中每条SQL命令都与一个特定的过程相关联。这些过程可由高级语言调用,并且可以进行相应的参数传递。

    创建一个数据库应用程序既要对SQL模块进行编译,又要对宿主语言程序进行编译,当SQL模块编译完成后,该SQL模块被编目在相应的数据库中,在这种方式中,一个应用程序通过它所引用的SQL模块与指定的数据库相关联。在嵌入式SQL中,上述整个过程是由OpenBASE的预编译器自动完成的。

    模块一旦建立,要想删除必须使用系统提供的工具来完成。删除数据库中一个已经存在的模块的方法是使用nspldrop 实用程序,但是应当指出,一旦模块被删除,与之相关的应用程序虽然依然存在,但是已不能再运行了,这是因为这个应用程序的SQL模块在数据库中的表示已经不再存在了。

基于SQL模块接口开发一个嵌入式应用通常需要以下几个步骤:
    1、使用嵌入式数据库建库向导,以主数据库为模板,在嵌入式设备上建立嵌入式数据库。
    2、编写、编译SQL模块,并将编译好的SQL模块目标代码复制到嵌入式设备上
    3、利用SQL模块完成嵌入式应用程序。

整个开发过程如下图所示。 

 

目前SQL模块的宿主语言主要是C和JAVA。下例以JAVA为宿主语言用SQL模块方式执行INSERT命令。


    在嵌入式SQL(Embedded SQL)方式中,SQL命令被直接嵌入到应用程序的源代码中,与其它程序设计语言的语句一起使用这个方法的优势是把应用集中在一个源程序中。SQL语句可以用类似于ORA-CLE PRO*C的方式嵌入到C语言和OPUS语言中,使用这种方式程序员学习的曲线较短。
    在处理过程中,嵌入式的SQL命令首先由编译器转变成SQL模块的形式,这样,每个应用程序与一个或几个SQL模块相关。对于含有嵌入式SQL命令的源程序,预编译器将产生一个源程序的拷贝,其中的SQL命令被替换成过程调用,并根据模块定义语法将SQL命令写入一个或几个SQL模块中,每个SQL命令与其中的一个过程相对应。下面显示的是一个使用嵌入式SQL执行插入操作的过程。

    利用嵌入式SQL开发嵌入式应用的过程与使用SQL模块的开发过程基本相同,只是在嵌入式SQL需要一个预处理的过程,而模块SQL则必须由开发者自己进行每一个程序(模块和宿主语言)的编译。

功能概述

对标准SQL的支持
    OpenBASE Mini支持SQL92标准的子集,为用户提供了标准、方便的应用开发接口。
    OpenBASE Mini主要实现了以下的内容:
    支持模块式SQL、嵌入式SQL
    支持静态光标和部分动态光标
    支持单行SELECT和多行SELECT命令
    支持排序和分组操作
    支持各种插入操作
    支持查询DELETE和定位DELETE命令
    支持查询UPDATE和定位UPDATE命令
    支持事务管理命令--COMMIT和ROLLBACK
    自动维护引用完整性和实体完整性
    支持CHAR、CHARACTER、VARCHAR、CHAR VARING、CHARACTER VARING、SMALLINT、INT、INTEGER、DECIMAL、DEC、NUMERIC、FLOAT、REAL、DOUBLE PRECISION、DATETIME等数据类型
    支持字符串连接以及SUBSTRING、LENGTH和EXTEND等内置字符串函数
    支持AVG、MAX、MIN、SUM、COUNT等聚集函数,并支持相关的DISTINCT选项和ALL选项
    支持各种标准的运算符:
    算术运算符:+、-、*、/;
    比较运算符:=、<>、 >、 <、>=、<=、IN、NOT IN、ANY、SOME、ALL、[NOT] BETWEEN、EXIST、[NOT] LIKE …[ESCAPE]、[NOT] NULL
    逻辑运算符:NOT(逻辑非)、AND(逻辑与)、OR(逻辑或)
    集合运算符:UNION、UNION ALL

完整性控制
    OpenBASE Mini支持以下几种完整性约束条件:
    PRIMARY KEY:定义主关键字。主关键字可以由一个字段组成,也可以由多个字段组成。由多个字段组成的主关键字称为复合主关键字。每个表最多有一个主关键字。组成主关键字的所有字段不能为空值。OpenBASE为每个关键字建立一个索引文件。
    UNIQUE:定义唯一性关键字,可以由多个字段组成。
    NOT NULL:字段非空约束。
    IDENTITY:标识字段,由系统自动生成、维护,能够唯一标识一个记录的字段。
    FOREIGN KEY:引用约束,以及引用完整性的各种级联操作。

事务管理
    事务为数据库管理系统工作的一个逻辑单位,由一个或多个SQL语句组成。一个事务是一个原子单位,构成事务的全部SQL语句的结果可被全部提交或全部回滚。在执行一条SQL语句出现错误时,该语句所有影响被回滚,好象该语句没有被执行过一样,但它不会引起当前事务先前的工作的丢失。如果一个程序执行一个SQL操作并且该程序还没有处于一个事务的过程中,那么一个事务将自动被启动。程序中接下来的SQL的操作都将作为该事务的一部分直到事务结束。

    一个事务可由COMMIT命令和ROLLBACK命令终止,当使用ROLLBACK命令时,事务对数据库所做的所有修改都将被取消;COMMIT命令则确认这些修改。

    OpenBASE Satellite具有对单个事务的处理能力,支持事务的提交和回滚。
    由于OpenBASE Satellite是一个单用户系统,因此不提供对事务的并发操作的控制。

备份和恢复
    为了防止操作失败导致数据库的完整性被破坏,OpenBASE Satellite提供了完备的备份恢复机制,对于事务故障、系统故障和介质故障均能够进行有效的恢复,从而为用户提供可靠一致的数据库。

    由于一般的嵌入式设备没有永久存储介质,仅靠电池维持设备上的数据,这是非常不可靠的,所以对嵌入式数据库定期做备份是非常必要的。OpenBASE Satellite提供了对嵌入式数据库的备份与恢复工具。可以根据用户需要选择数据库的一个表或几个表进行备份/恢复,备份的数据存放在桌面设备上。由于备份文件的格式与其他的OpenBASE系统的备份文件相同,因此数据可以直接导入到桌面系统的OpenBASE数据库中,方便用户查询。

    和其他的OpenBASE 系统一样,OpenBASE Satellite具有基于事务的恢复功能。OpenBASE Satellite为每一次同嵌入式数据库的连接创建一个事务恢复文件,使得该连接过程中的某个事务异常终止时,可以废弃该事务,将数据库恢复到最近的一致性状态。为适应嵌入式设备的特点,OpenBASE Satellite支持系统的自动恢复,即系统在下一次连接时对上一次连接时失败的事务进行自动回滚,这有别其他的OpenBASE系统。


数据的同步复制
    数据同步是嵌入式数据库系统最重要的功能。通过数据复制,可以将嵌入式数据库或主数据源的变化情况应用到对方,保证了数据的一致性。OpenBASE Mini的数据同步是在充分分析了其他同类产品的基础上,结合自身的特点设计完成的。

    由于不同的嵌入式应用或一个嵌入式应用在不同的时刻可能需要不同的数据复制方式,为了满足应用的这个需求,OpenBASE Mini提供了几种不同的数据同步方式:

    上载同步:指数据从嵌入式数据库复制到主数据源中。主要用来完成把嵌入式设备上变化的数据合并到主数据源中。

    下载同步:指数据从主数据源复制到嵌入式数据库中。主要用来完成把主数据源中变化的数据合并到嵌入式数据库中。

    完全同步:是一种双向的复制,OpenBASE Mini首先把嵌入式数据库中变化的数据合并到主数据库中,再把主数据库中变化的数据复制到嵌入式设备上。使双方的数据一致。

    OpenBASE Mini支持快速同步,即系统在同步时,只传递变化的数据,这样可以节省大量的同步时间。OpenBASE Mini对主数据源和嵌入式数据库上的数据变化情况进行记录,保证在同步时只传递上次同步后变化的数据。减少了同步时的数据传送量,节省了同步时间,提高了同步的可靠性。
在以主数据源为模板建立复制表时,OpenBASE Mini支持对主表作水平分割和垂直分割复制,最大限度地降低了嵌入式数据库的大小。所谓的水平分割是指有条件的选择主表中的数据,而垂直分割则可以选择主表中的某些列进行复制。采用这种方式建立的复制表可以很好的反映应用的需求,最大限度地减小复制表的大小。

    不仅OpenBASE数据库可以作为OpenBASE Mini系统中的主数据源,其他支持ODBC的异构数据源也可以作为主数据源实现与嵌入式数据库的同步。

    由于允许对移动设备上的嵌入式数据库的某些表进行修改,因此就有可能在嵌入式数据库与主数据库进行同步时发生同步冲突。所谓的同步冲突是指嵌入式应用对复制表中一条记录的操作和对主表中对应记录的操作不一致,或对复制表记录的操作违反了主表的一致性,就产生了冲突。

    一个好的嵌入式应用应该尽量避免冲突的发生。尽管在一个嵌入式应用中,冲突是不应该出现的,但是由于应用的复杂性,有时候还是无法避免冲突的发生。为此,OpenBASE Mini设计了详尽的方案来检测和解决冲突。

冲突的检测是在桌面系统上完成的。OpenBASE Mini可以检测到以下4种冲突:
    1. 嵌入式数据库的违反主关键字约束的INSERT 操作
    2. 嵌入式数据库使用一个不存在的主关键字的UPDATE操作
    3. 嵌入式数据库DELETE操作的旧值与主数据库中的当前值不匹配
    4. 嵌入式数据库UPDATE操作的旧值与主数据库中的当前值不匹配

    检测到冲突后,OpenBASE Mini将根据事先确定的冲突解决规则解决冲突。

    事先确定的冲突解决规则是指在建立复制表时,用户选择的冲突解决规则。OpenBASE Mini提供了三种冲突解决规则来解决冲突:

    1. 以主数据库为主:当冲突发生时,根据主表的数据更新复制表
    2. 以嵌入式数据库为主:当冲突发生时,根据复制表的数据更新主表
    3. 无动作:当冲突发生时,不采取任何动作,只是简单的记录下冲突,用户可以直接查看冲突日志获得上一次同步的冲突情况。

    用户可以根据不同的需要选择任何一种冲突解决方案解决冲突。

    OpenBASE Mini具有主动同步的功能。允许用户对系统提供的同步事件自定义过程实现,提供了最大灵活的同步。OpenBASE Mini提供了系统事件、连接事件、同步事件、文件传送事件、数据库事件、错误处理事件等几类事件,每类事件中包含若干个事件,每个事件表示同步过程的一个时刻。OpenBASE Mini允许用户使用VBSCRIPT定义实现每个事件的过程。

OpenBASE Mini同步支持多种通信连接协议。可以通过串行通信、TCP/IP等多种连接方式实现数据同步。

高效的系统开发和管理工具
    为了方便用户开发嵌入式应用,管理嵌入式数据库,OpenBASE Mini提供了一系列高效的系统开发和管理工具。主要有:

    嵌入式数据库建立向导:
    该工具以直观的方式指导用户建立嵌入式数据库。
    数据库备份/恢复工具OpenBASE Mini Transfer
    使用OpenBASE Mini Transfer程序可以实现嵌入式数据库(或桌面数据库)的备份和恢复。同时该工具还具有其他一些功能,比如文件的传递,目录的复制等。

Mobile Application Manager

   Mobile Application Manager是OpenBASE Mini提供的嵌入式应用集成管理工具。在该工具中集成了建立嵌入式数据库、配置同步信息(选择同步类型、同步条件、冲突解决规则等)、主动同步事件的过程定义和管理、嵌入式数据库的管理和维护等功能,是一个功能前大,操作简单的管理工具。
  
体系结构
OpenBASE Mini主要由运行在嵌入式设备上的数据库系统OpenBASE Satellite和运行在服务器上的OpenBASE Mini Server两部分组成,此外一个完整的OpenBASE Mini应用系统还应该包括桌面上的主数据源和运行在嵌入式设备上的基于OpenBASE Mini开发的嵌入式应用系统。

    OpenBASE Mini的系统体系如下图示。


1.OpenBASE Satellite
    可以独立于系统的其他部分运行,是一个独立的功能完善的单用户数据库系统
     包括运行在嵌入式或移动设备上的数据库管理系统和数据库
     是嵌入式应用的数据存储主体
     对嵌入式应用的数据操作进行管理
     具有微内核(small foot-print)结构
     可以实现与主数据源进行双向数据交换
     多平台,目前支持Windowns CE 、Palm OS等主流嵌入式操作系统。
     建立其上的嵌入式应用开发简单,易构造

2. OpenBASE Mini Server
     提供嵌入式数据库的开发环境(交叉编译)
     提供基于主数据源的建立嵌入式应用的工具
     实现与嵌入式数据库进行双向数据交换
     实现对数据同步的管理
     提供对嵌入式数据库的管理工具
     运行环境:Windows NT

3. 中央数据库(OpenBASE,Oracle,etc)
    移动设备或嵌入设备的最终数据源
     数据复制服务器
     数据量大
     可用性高
     距离远
    OpenBASE Mini系统的内部组成结构如下图示

    在上面的结构中,嵌入式设备与桌面系统之间连接既可以通过通常意义的网络实现连接(使用TCP/IP协议实现的连接),也可以通过串行口实现的与嵌入式设备的直接连接。

产品特色
微小内核结构(Small Foot-print)
    考虑到嵌入式设备的资源有限,OpenBASE Mini采用微型化技术实现,具有微小内核结构。目前的最小应用系统为50K左右。可以满足嵌入式应用的需求。今后还会进一步降低该指标。

对标准SQL的支持
    OpenBASE Mini提供了对标准SQL的支持。支持SQL92标准的子集,支持数据查询(连接查询、子查询、排序、分组等)、插入、更新、删除多种标准的SQL语句,充分满足嵌入式应用开发的需求。

事务管理功能
    具有事务处理功能,自动维护事务的完整性、原子性等特性;支持实体完整性和引用完整性。

完善的数据同步机制
    数据同步是嵌入式数据库最重要的特点。通过数据复制,可以将嵌入式数据库或主数据库的变化情况应用到对方,保证了数据的一致性。它具有以下的特点:

    1) 提供多种数据同步方式。具有上载同步、下载同步和完全同步三种同步方式。
    2) 具有完善的冲突检测机制和灵活的冲突解决方案,具有冲突日志记录功能。
    3) 支持快速同步。系统同步时,只传递变化的数据,节省了大量的同步时间。
    4) 支持表的水平分割和垂直分割复制,最大限度地降低了嵌入式数据库的大小。
    5) 支持异构数据源连接同步。可以用支持ODBC的异构数据源作为主数据库和嵌入式设备上的数据库进行数据同步。
    6) 具有主动同步的功能。允许用户对系统提供的同步事件自定义过程实现,提供了最大灵活度的同步过程。

支持多种连接协议
    OpenBASE Mini支持多种通信连接协议。可以通过串行通信、TCP/IP等多种连接方式实现桌面系统与嵌入式设备的连接。

完备的嵌入式数据库的管理功能
    OpenBASE Mini具有自动恢复功能,基本无需人工干预进行嵌入式数据库管理。OpenBASE Mini提供数据的备份和恢复,还可以通过系统提供的嵌入式数据库备份和恢复工具,对嵌入式数据库的数据进行备份和恢复,保证用户数据的安全可靠。此外,OpenBASE Mini还为用户提供了多种高效的管理工具,为用户管理和维护嵌入式系统提供了方便。

灵活的编程接口
    OpenBASE Mini为嵌入式应用的开发提供了灵活的应用编程接口。提供多种应用开发接口主要有:
    1) C语言例行程序接口,提供一套存取数据库的例行程序接口,这种接口对内存需求最低,且具有最高的执行效率。
    2) SQL模块接口,支持C和JAVA调用,对内存需求比较低,具有较高的执行效率和开发效率。
    3) 嵌入式C接口,与SQL模块基本相同,只是提供了更方便、高效的应用开发方式。

支持多种嵌入式操作系统
    OpenBASE Mini目前支持Windows CE、Palm OS等多种目前流行的嵌入式操作系统。

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 登录邮箱: 密码:
  匿名发表
相关案例
解决方案速查(共有 14231 个方案)
基础软件
安全保密
管理软件
办公软件
软件开发
系统网络
图形多媒体
辅助设计
行业专用
教育教学
电子政务
其他软件
接入
通信
网络
存储
IT服务
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail
赞助商链接