T/ZJSZJJ
目次
前 1范围. 2规范性引用文件 3术语和定义。
4参考模型, 5基本服务, 6功能要求. 7运维管理服务 8安全要求, 9非功能要求
T/ZJSZJJ0006-2025
前言
本文件按照GB/T1.1-2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规定 起草。
本文件浙江省数字经济联合会提出并归口管理。
本文件起草单位:福建亿榕信息技术有限公司、国网信息通信产业集团有限公司。
本文件起草人:程明、蔡清远、张富林、程凯、郭伟强、许志毅、李建华、林诚健、杨玉霞、李一、
IⅢI
T/ZJSZJJ
数据库SQL转换中间件通用技术规范
1范围 本文件规定了数据库SQL转换中间件的技术架构、基础服务、SQL差异规则库、SQL语法解析器、 SQL语法转换器、运维管理服务、安全要求及非功能性技术要求。
本文件适用于数据库适配场景的开发、应用和测试,也可作为数据库SQL转换中间件产品质量评 测及用户选型的依据。
2规范性引用文件
本文件没有规范性引用文件。
3术语和定义
下列术语和定义适用于本文件。
3.1 中间件 Midleware 在系统软件和应用软件之间提供连接的依赖、驱动或独立软件。
3.2 数据库管理系统DatabaseManagementSystem 用于管理和组织数据,并提供对数据的访问、存储和操作功能的软件系统。
3.3 异构数据系统Heterogeneous Data System 由不同数据来源或不同访问方式的关系型数据库系统组成的集合。
3.4 数据库中间件Data Integration Middleware 向应用系统提供对异构数据系统统一数据访间能力的中间件依赖包、软件或工具。
3.5 Java数据库连接Java Database Connectivity(JDBC) 一种用于在Java应用程序中连接和操作数据库的API,使开发人员能够编写与特定数据库无关的 Java应用程序。
3.6
T/ZJSZJJ 结构化查询语言StructuredQueryLanguage(SQL) 一种用于管理和操作关系型数据库的标准化语言。
3.7 SQL兼容 SQLCompatible 指同样的SQL语句可通过数据库中间件对不同数据库进行查询或其他操作的能力。
3.8 抽象语法树Abstract SyntaxTree(AST) 源代码语法结构的一种抽象表示,以树状形式表现编程语言的语法结构,树上的每个节点表示源代 码中的一种结构。
4参考模型
数据库SQL中间件由SQL差异规则库、SQL语法解析器、SQL语法转换器组成。
其总体架构见图1。
应用程序 数据库语法解析器SQL SQL差异规则库 中间件 数据库晶品
图1数据库SQL转换中间件总体架构 5基本服务
5.1连接管理 支持多种数据库连接协议,如JDBC、ODBC、OCI、ADO.NET等:能自动检测连接的有效性,在连接 失效时进行重连:支持连接的优先级设置,保障关键业务的连接资源。
5.2事务管理 支持本地事务与分布式事务,分布式事务应符合XA规范:提供事务的隔离级别设置,可根据业务 需求配置读未提交、读已提交、可重复读、串行化等隔离级别:支持事务的超时设置与自动回滚机制, 当事务执行超时或发生异常时,能自动回滚以保证数据一致性。
5.3连接池管理 支持连接池的创建、配置和监控,可配置连接池的初始连接数、最大连接数、最小连接数、连接超 时时间等参数:具备连接池的动态调整能力,能根据业务负载自动增减连接数量:支持连接的复用机制, 减少连接创建和销毁的开销,提高性能。
T/ZJSZJJ 5.4日志服务 记录中间件运行日志、SQL转换日志及错误日志,日志内容应包含时间藏、操作对象、操作内容、 结果状态等信息:支持日志的分级记录,如DEBUG、INFO、WARN、ERROR、FATAL等级别:提供日志的 过滤和查询功能,方便定位问题。
5.5配置管理 支持动态配置加载、更新和持久化,配置修改后无需重启中间件即可生效:提供配置的版本管理和 历史记录查询,可回滚到之前的配置版本:支持配置变更的审批流程与审计日志:支持配置的导入导出 功能:支持配置的迁移和备份。
5.6数据缓存服务 支持对常用SQL查询结果的缓存,可配置缓存的有效期和缓存策略:能自动检测数据的更新,及 时刷新或失效缓存,保证缓存数据的一致性:支持缓存的分布式管理,在集群环境下确保缓存数据的同 步。
6功能要求
6.1SQL差异规则库 6.1.1概述 SQL差异规则库包含标准SQL语法(接近Oracle与MySQL语法)与各关系型数据库间的SQL语法差异规 则,包含函数、数据类型、特殊语法、关键字的转义等转换规则。
6.1.2技术要求 SQL差异规则库需满足以下要求: a)支持多种主流数据库的 SQL语法,包括但不限于MySQL、Oracle、SQL Server、PostgreSQL以 及GaussDB、OceanBase、TDSQL等,以便用户可以在不同数据库之间进行转换: b)应具备强大的规则引擎,能够解析和转换复杂的SQL语句,包括SELECT、INSERT、UPDATE、DELETE 等语句,以及各种SQL函数和操作符: c)应包含丰富的转换规则,能够涵盖各种SQL语法的转换需求,包括语法结构、数据类型、函数、 存储过程等方面的转换规则: d)应具备良好的可扩展性及定制性,能够方便地添加函数等类型转换规则,以应对不断变化的数 据库和SQL语法: e)应支持不同数据库SQL语法转换规则配置。
6.2SQL语法解析器 6.2.1概述 SQL语法解析器能够将SQL拆分为清晰的语法结构,如语法树等,由特定的一种或多种SQL解析技术 封装而成。
6.2.2技术要求 SQL语法解析器需满足以下要求:...