ISOIEC 19075-42021 信息技术 - 数据库语言 - SQL技术报告 - 第4部分使用JavaTM编程语言的例程和类型的SQL标准立项发展报告_第1页
ISOIEC 19075-42021 信息技术 - 数据库语言 - SQL技术报告 - 第4部分使用JavaTM编程语言的例程和类型的SQL标准立项发展报告_第2页
ISOIEC 19075-42021 信息技术 - 数据库语言 - SQL技术报告 - 第4部分使用JavaTM编程语言的例程和类型的SQL标准立项发展报告_第3页
ISOIEC 19075-42021 信息技术 - 数据库语言 - SQL技术报告 - 第4部分使用JavaTM编程语言的例程和类型的SQL标准立项发展报告_第4页
ISOIEC 19075-42021 信息技术 - 数据库语言 - SQL技术报告 - 第4部分使用JavaTM编程语言的例程和类型的SQL标准立项发展报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息技术-数据库语言-SQL技术报告-第4部分:使用Java™编程语言的例程和类型的SQL标准立项发展报告StandardizationDevelopmentReport:SQLRoutinesandTypesUsingtheJava™ProgrammingLanguage(ISO/IEC19075-4:2021)摘要随着企业级应用对数据库功能扩展需求的不断增长,SQL标准中嵌入外部编程语言例程与自定义类型的能力已成为现代数据库系统的重要功能特征。ISO/IEC19075-4:2021《信息技术-数据库语言-SQL技术报告-第4部分:使用Java™编程语言的例程和类型的SQL》由国际标准化组织(ISO)与国际电工委员会(IEC)联合技术委员会ISO/IECJTC1/SC32(数据管理与交换分技术委员会)制定并发布,旨在系统阐述SQL标准中关于使用Java™编程语言编写例程(Routines)和定义用户自定义类型(User-DefinedTypes,UDTs)的技术规范与应用指南。本报告对该标准的立项背景、编制过程、主要内容、关键技术要点及推广应用情况进行全面梳理。该标准作为SQL标准的补充技术报告,不替代或修改ISO/IEC9075系列标准中的规范性要求,而是提供指导性说明和示例分析,帮助数据库实现者、应用开发人员及标准化研究人员深入理解Java例程与SQL类型系统之间的映射关系、调用机制及安全约束。本报告还对该标准的后续发展方向进行了展望,并就国内相关标准化工作提出了建议。关键词:SQL标准;Java编程语言;数据库语言;例程;用户自定义类型;技术报告;ISO/IEC19075Keywords:SQLStandard;JavaProgrammingLanguage;DatabaseLanguage;Routines;User-DefinedTypes;TechnicalReport;ISO/IEC190751引言1.1标准立项背景数据库语言SQL(StructuredQueryLanguage)作为关系数据库系统的通用查询与操作语言,经过数十年的发展,已形成以ISO/IEC9075系列为核心的完整国际标准体系。随着应用系统复杂度不断提升,单纯的SQL查询与数据操作能力已难以满足多样化的业务需求——开发者需要在数据库内部执行复杂的业务逻辑、进行算法密集型计算,或复用现有编程语言生态中丰富的类库资源。为此,SQL标准引入了外部例程(ExternalRoutines)和用户自定义类型(UDTs)机制,允许使用宿主语言(如Java™、C等)编写存储过程、函数和方法,并在SQL语句中调用。Java™语言凭借其跨平台性、面向对象特性、丰富的类库生态以及良好的安全管理机制,在企业级应用开发中占据主导地位。如何在SQL标准框架下规范Java例程的定义、调用与类型映射,成为数据库标准化领域亟需明确的技术议题。1.2标准编制历程ISO/IEC19075系列技术报告由ISO/IECJTC1/SC32(数据管理与交换分技术委员会)下设的WG3(数据库语言工作组)负责制定。该系列报告旨在为SQL标准使用者提供系列化的技术指导文档,覆盖SQL标准的各个重要主题。19075-4作为该系列的第4部分,专门针对使用Java™编程语言的例程和类型进行阐释。经过多轮草案讨论、意见征集和编辑修订,该技术报告于2021年9月正式发布。1.3标准定位与编制原则ISO/IEC19075-4:2021属于技术报告类型(Type3),其定位决定了该文件不对ISO/IEC9075系列标准提出任何修改或补充要求,而是以解释说明和技术指导为目的。编制过程中遵循了以下原则:-忠实性原则:所有技术解释严格对应SQL标准(ISO/IEC9075系列)以及Java语言规范(JavaLanguageSpecification,JLS)和Java虚拟机规范(JavaVirtualMachineSpecification,JVMS)的相关章节;-实用性原则:大量使用代码示例和场景化说明,便于读者理解抽象的规范条款;-中立性原则:不偏向任何特定数据库产品或Java实现,保持技术中立;-一致性原则:与ISO/IEC19075系列其他部分在体例、术语和引用方式上保持一致。2标准范围与规范性引用2.1标准范围ISO/IEC19075-4:2021详细阐述了SQL标准中关于使用Java™编程语言的例程(Routines)和用户自定义类型(User-DefinedTypes)的相关条款。该技术报告适用于:-使用Java编写SQL例程(包括函数、存储过程和方法)的开发人员;-实现Java例程支持的数据库管理系统(DBMS)开发商;-负责SQL标准实施与合规性测试的技术人员;-研究数据库编程语言集成的标准化工作者。2.2规范性引用文件该技术报告主要引用以下标准文件:-ISO/IEC9075-1:2016,信息技术——数据库语言——SQL——第1部分:框架(SQL/Framework)-ISO/IEC9075-2:2016,信息技术——数据库语言——SQL——第2部分:基础(SQL/Foundation)-ISO/IEC9075-4:2016,信息技术——数据库语言——SQL——第4部分:持久化存储模块(SQL/PSM)-ISO/IEC9075-13:2016,信息技术——数据库语言——SQL——第13部分:使用Java™编程语言的例程和类型(SQL/JRT)-ISO/IEC9075-14:2016,信息技术——数据库语言——SQL——第14部分:XML相关规范(SQL/XML)-TheJava™LanguageSpecification,JavaSE8Edition-TheJava™VirtualMachineSpecification,JavaSE8Edition3标准主要内容3.1SQL/JRT核心概念回顾ISO/IEC19075-4:2021首先对SQL/JRT(ISO/IEC9075-13)的核心概念进行了系统回顾,包括Java例程的声明语法、调用规则以及Java类与SQL类型之间的映射。SQL/JRT定义了SQL中使用Java编程语言编写的例程——包括存储在数据库中的Java静态方法对应的SQL函数和过程,以及Java类对应的用户自定义类型(UDT)。3.2Java例程的SQL声明技术报告详细展示了如何在SQL中声明一个映射到Java方法的函数或过程。包括:-使用`CREATEFUNCTION`和`CREATEPROCEDURE`语句配合`EXTERNALNAME`子句指定Java类和方法;-Java方法签名与SQL参数类型之间的对应规则;-静态方法与实例方法的区别及其在SQL中的声明方式;-重载方法的解析规则;-NULL值处理语义;-异常处理与SQLSTATE的映射机制。3.3用户自定义类型与Java类的映射报告阐述了两类映射方式:-SQLUDT映射到Java类:包括`CREATETYPE`语句中`EXTERNALNAME`子句的使用,Java类中属性与SQL属性的对应,以及`INSTANCEMETHOD`的声明与调用;-Java类直接作为SQL类型使用:即通过`CREATETYPE...ASREF`或通过类型化表(TypedTables)将Java对象持久化于数据库中的机制。3.4类型映射详细说明该部分为技术报告的重点内容,系统地列出了Java数据类型与SQL数据类型之间的映射关系表。涵盖:-基本类型:`boolean`、`byte`、`short`、`int`、`long`、`float`、`double`、`char`等与SQL数值类型、字符类型的对应;-引用类型:`java.lang.String`与SQL字符类型、`java.math.BigDecimal`与SQL精确数值类型的映射;-数组类型:Java数组与SQL数组类型的对应;-自定义类与SQLUDT的映射规则;-`NULL`值的Java表示方式(引用类型为`null`,基本类型需使用包装类)。3.5Java例程的调用机制报告详细说明了SQL运行时环境如何调用Java方法,包括:-参数传递机制(值传递与引用传递的区别);-返回值的处理;-数据库连接(JDBC)在例程中的获取与使用;-上下文变量(contextvariables)的访问方式;-事务语义与Java例程的交互。3.6安全机制与权限控制技术报告专辟章节讨论安全相关议题:-Java安全管理器(SecurityManager)在数据库环境中的配置;-权限授予与撤销(`GRANT`/`REVOKE`)对Java例程调用的影响;-沙箱机制与代码签名;-禁止的危险操作列表及防范建议。3.7兼容性与可移植性考量报告还对不同数据库产品在Java例程支持上的差异进行了比较性说明,并就以下方面给出了可移植性建议:-避免使用特定数据库厂商的扩展语法;-正确处理数据类型映射中的精度与标度差异;-异常处理的标准写法;-在SQL标准框架内设计跨平台Java例程的最佳实践。4关键技术要点解析4.1SQL标准与Java平台的映射架构ISO/IEC19075-4:2021阐明了一条重要的设计思路:SQL/JRT不是简单地将Java嵌入SQL,而是建立了一套完整的映射架构,使得Java对象模型与SQL类型系统能够在两个方向上互相转换。这种架构设计使得数据库系统可以在保持SQL声明性查询优势的同时,充分利用Java的过程式计算能力和生态资源。4.2方法解析与重载规则在SQL中声明Java方法映射时,可能遇到Java方法重载的情况。技术报告明确了SQL层解析Java重载方法的规则:根据SQL调用中实参的类型,结合Java方法的形式参数类型,按照Java语言规范中的方法解析规则进行选择。这一机制确保了SQL调用Java方法的确定性和一致性。4.3UDT继承层次与Java类层次的关系SQL标准支持UDT之间的类型继承(typeinheritance),即子类型可以继承父类型的属性与方法。当UDT映射到Java类时,这种继承关系与Java类之间的继承关系如何对应,是技术报告详细阐释的重点之一。报告指出,SQLUDT的子类型对应Java子类,SQL方法重写(override)对应Java方法重写,从而保证了面向对象语义在两个体系中的一致性。4.4JDBC交互与结果集处理在实际应用中,Java例程经常需要访问数据库中的数据。技术报告对如何在Java例程中获取数据库连接(通过`DataSource`或`DriverManager`)、执行SQL语句以及处理`ResultSet`给出了指导性说明,并强调了资源管理与连接释放的最佳实践。5标准实施与行业应用5.1国际应用现状ISO/IEC19075-4:2021发布后,被主要数据库产品厂商作为实现SQL/JRT支持的重要参考依据。Oracle数据库、IBMDb2、ApacheDerby等支持Java存储过程和函数的数据库系统,均在实现中参照了该技术报告中的映射规则和调用机制说明。该技术报告同时也为数据库驱动开发人员、ORM框架设计者提供了权威的参考。5.2国内标准化工作建议目前,国内在数据库语言标准化领域主要采取等同采用(IDT)国际标准的方式。ISO/IEC19075-4:2021发布后,全国信息技术标准化技术委员会数据库工作组(TC28/SC32)积极跟踪研究该技术报告,并建议适时启动该标准的转化工作。同时,建议国内数据库产品研发企业深入研究该技术报告的内容,在自主研发的数据库产品中逐步实现对Java例程和类型的标准兼容支持。5.3与国产数据库发展的关联6主要参与编制单位介绍6.1ISO/IECJTC1/SC32/WG3数据库语言工作组ISO/IEC19075-4:2021由ISO/IECJTC1/SC32/WG3(数据库语言工作组)组织制定。WG3是国际数据库标准化领域最具权威性的工作组之一,负责ISO/IEC9075系列SQL标准的维护与演进,同时承担19075系列技术报告的编制工作。来自各国的数据库标准化专家在该工作组中共同协作,确保SQL标准体系的技术完整性、一致性和前瞻性。6.2国内相关参与单位在ISO/IEC19075-4:2021的制定过程中,中国国家成员体积极派员参与WG3工作会议,并提出技术贡献。国内在数据库语言标准化领域的主要参与单位包括中国电子技术标准化研究院、中国人民大学、华中科技大学等,这些机构在SQL标准研究方面积累了长期经验,为国际标准的制定贡献了中国智慧。7结论与展望7.1标准价值总结ISO/IEC19075-4:2021作为SQL技术报告系列的重要组成部分,以权威、系统、可操作的方式阐释了SQL标准中关于使用Java编程语言的例程和类型的技术内涵。该技术报告的发布填补了SQL/JRT缺乏系统性指导文档的空白,对于数据库标准实施者、数据库产品开发者和应用系统开发者均具有重要的参考价值。7.2未来发展方向随着Java平台自身的持续演进(如Java模块系统、虚拟线程、GraalVM原生镜像等新技术的引入)以及数据库技术向云原生、智能化方向的发展,SQL标准中Java例程和类型的相关规范也需要不断更新和完善。展望未来,以下方向值得关注:-适应新版本Java语言规范的更新需求;-云数据库环境中Java例程的部署与管理模式;-与新型编程语言(如Kotlin、Scala等JVM语言)的兼容性探讨;-机器学习算法库与SQL的深度集成;-在分布式数据库环境中Java例程的跨节点执行语义。7.3国内推进建议参考文献[1]ISO/IEC19075-4:2021,Informationtechnology—GuidancefortheuseofdatabaselanguageSQL—Part4:RoutinesandtypesusingtheJava™programminglanguage[S].Geneva:ISO/IEC,2021.[2]ISO/IEC9075-13:2016,Informationtechnology—Databaselanguages—SQL—Part13:SQLRoutinesandtypesusingtheJava™programminglanguage(SQL/JRT)[S].Geneva:ISO/IEC,2016.[3]ISO/IEC9075-1:2016,Informationtechnology—Databaselanguages—SQL—Part1:Fr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论