zoukankan      html  css  js  c++  java
  • 时态数据库的应用介绍(2)时态数据库之TimeDB

    前面介绍了TimeDB(http://www.timeconsult.com/Software/Software.html)是一种结合关系型数据库来实现时间数据库应用的技术,它支持时态数据库脚本:ATSQL2 [SBJS96a,SBJS96b,SBJS98]。它可以认为是关系数据库的一个前端,把时态数据库语句转换为关系型数据库的脚本进行执行,它的运用场景如下所示。
    TimeDBArchiture.jpg

    TimeDB是传统的数据库管理系统的前端软件,应用程序中使用的时态ATSQL语句,通过TimeDB转换后形成标准的SQL语言和操作,这些标准SQL语句和操作传入到后台数据库中操作实际的数据。TimeDB支持ATSQL2语言和时态模型,实现了时态查询、时态更新、时态视图和部分的时态完整性约束等基本的时态功能。
    TimeDB 2.0版本使用Java语言开发,具有平台无关的有点;基于JDBC访问数据库,目前仅支持Oracle、Sybase和IBM的Cloudscape’s JBMS三种数据库,下一版本可能支持Microsoft's Access、SQL Server 7.0、Informix等数据库;具有较友好的用户界面;优化了辅助表的创建过程;具有可以供Java应用程序调用的接口TDBCI,可供Java应用程序调用以执行ATSQL2语句。TimeDB2.0的程序运行界面如下:
    timeDB.jpg


    TDBCI提供的接口函数如下所示

    //设置访问参数
    public boolean setPrefs(String Path, int DBMS, String JDBCDriver, String URL); 
    //初始化/清除 执行ATSQL语句所需的表
    public boolean createDB();
    public boolean clearDB();

    //打开或者关闭数据库
    public boolean openDB(String Login, String Password);
    public void closeDB();

    //执行 ATSQL语句
    public ResultSet execute(String stmt);

    其中setPrefs是用来设置TimeDB的相关访问参数的,如下所示
     if (t.setPrefs("C:\\TimeDB 2.2\\",     // Path to TimeDB2.0 directory 
     1,                                 // Using Oracle DBMS
    "oracle.jdbc.driver.OracleDriver"// Oracle's JDBC driver
                          "jdbc:oracle:thin:1521:ORCL"))     // URL


    createDB是用来创建一些基础表,以便支持执行ATSQL的,而clearDB则是清除这些表,对数据库而言,只需要开始的时候调用createDB一次即可。
    openDB 和closeDB有点类似于我们操作数据库的时候,打开Connection连接的操作,每次查询事务,都需要先执行openDB的操作,事务提交后,调用closeDB来关闭数据库。
    执行 ATSQL语句只有一个函数execute,它返回的是TimeDB定义的ResultSet对象,而ResultSet对象可以获取每一个ResultRow对象,ResultRow对象通过row.getColumnValue(i)和row.getColumnType(i)函数调用只能拿到列的值和对应值的类型,结果类型是字符类型。
    返回的类型名称有:
    • number • smallint •float• numeric •integer •double
    • longint •real• interval • date•period •char•varchar

    如何应用TimeDB的时间数据库技术
    由于我们的产品技术主要是基于.NET基础上开发的,而TimeDB是基于Java的应用技术,因此可以考虑通过包装TimeDB成为WebService的应用,然后通过.NET客户端进行访问,实现时间数据库技术的应用。
    TimeDBUsage.jpg

    初始化数据库基础信息
    TimeDB是基于关系型数据库之上的一个模块,在做时间数据库相关的脚本(ATSQL)解析前,它需要一些基础表和记录来存储相关的信息,因此需要初始化所建立的数据库。
    初始化数据库可以通过执行安装目录下的SQL脚本而进行(位置为X:\TimeDB 2.2\scripts\initDB),如Oracle调用initOracle脚本,Sybase数据库调用initSybase脚本。
    另外,也可以通过调用TDBCI的接口createDB创建这些基础表。

     使用Java创建基于TimeDB查询操作的WebService
    TDBCI公开了一些供Java应用程序调用的API函数,为了使得.NET的应用程序也能在TimeDB中执行ATSQL脚本,我们把对TDBCI的调用封装成了WebService。
    开发环境:MyEclipse6.01、Tomcat5.5、Java SDK1.6、Oracle 10g、TimeDB2.0。
    实现步骤:
    1、 使用MyEclipse创建WebService项目,配置好Tomcat服务器
    2、 引用Oralce的JDBC类和TimeDB开发所需的类
    3、 创建具体的WebService服务类,提供返回结果查询和无结果的查询接口,并实现接口函数
    4、 部署WebService到Tomcat中

    使用.NET客户端对WebService进行访问,执行ATSQL
    实现步骤:
    1、 引用包装好的WebService
    2、 调用相应的接口,使用ATSQL语句创建业务表
    3、 调用相应的接口实现ATSQL数据操作(查询、插入、删除等)
    创建业务表:
    和在关系数据库(如Oracle)中创建表不同,创建时间数据库表需要调用TimeDB的接口,执行ATSQL而实现。ATSQL2是一个SQL标准,具体使用请参考相关文档。

    主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发
    专注于Winform开发框架/混合式开发框架Web开发框架Bootstrap开发框架微信门户开发框架的研究及应用
      转载请注明出处:
    撰写人:伍华聪  http://www.iqidi.com 
        
  • 相关阅读:
    MySQL主从.md
    mysqldump.md
    MySQL管理.md
    SQL语句.md
    如何在同一台服务器上部署两个tomcat
    loadrunner函数解密之web_reg_save_param
    loadrunner函数解密之web_reg_find
    Jmeter如何保持cookie,让所有请求都能用同一个cookie,免去提取JSESSIONID
    Jmeter如何提取响应头部的JSESSIONID
    Loadrunner如何进行有效的IP欺骗
  • 原文地址:https://www.cnblogs.com/wuhuacong/p/1246042.html
Copyright © 2011-2022 走看看