在嵌入式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系统。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
Azure数据湖分析从U-SQL中获得提升
大数据的发展已经让许多精通SQL的数据专业人员不知所措。微软的U-SQL编程语言试图让这些人回归数据查询游戏。
-
TT百科:SQL(结构化查询语言)
一般来说,SQL-on-Hadoop仍是一项新兴技术,但随着各个公司寻求获得拥有大数据应用程序编程SQL技能的开发和分析人员,它们正逐渐成为Hadoop部署的固定组件。
-
SQL和NoSQL数据库设计之争
企业收集了很多大规模增长的松散结构化数据,Hadoop,Spark以及其他新技术处理这些数据非常有助于改善商业智能分析效率。
-
如何通过格式良好的SQL提高效率和准确性
格式良好的SQL并不会比乱七八糟的SQL运行效果更好。数据库其实不怎么关心SQL语句中你把逗号放到了字段名的前面还是后面。