时间:2022-12-25 04:30:01 | 来源:信息时代
时间:2022-12-25 04:30:01 来源:信息时代
关系数据库基础标准 : 关系数据库软件遵循的以关系理论及其支持的数据模型为基础的部分技术标准。这些标准目前是由国际标准化组织的ISO/IEC JTC1/SC32下属第三工作组WG3负责制定的。该工作组研究制订了关系数据库语言SQL的一个系列标准,其目前的总标题为“信息技术—数据库语言SQL”,标准号为ISO/IEC 9075,通常称其为SQL标准。该标准的目的是指导和规范关系数据库管理系统软件的研制和开发,促进数据库技术的应用。
SQL标准的发展是伴随着关系数据库管理系统软件的研发和走向市场而产生和发展的。20世纪80年代,美国的一些计算机公司和软件公司研究开发关系数据库管理系统软件,并在商业领域应用而受到用户的欢迎。于是,1986年10月美国国家标准学会(American National Standard Institute,ANSI)的数据库委员会X3H2研究发布了美国国家标准: 数据库语言SQL。紧接着国际标准化组织于第二年也采纳发布了这一标准,即《ISO/IEC 9075:1987信息处理系统—数据库语言SQL》。这就是最早的SQL国际标准文本,通常也简称为SQL86。
SQL标准的发布和它产生的影响在当时远远超出了数据库领域。SQL标准规定的数据库语言具有当时软件行业所谓第四代语言的风范,它具有接近自然语言,简洁易学、使用方便、功能丰富、操作灵活等许多特点,受到计算机用户和软件业界的关注,从而推动了围绕着SQL的大量研究和应用的开拓工作,也使得数据库技术有了飞速的发展。为了使SQL语言的功能更加完备,SQL标准的制定者不断对其修订和完善。到1989年ISO/IEC又发布了《ISO/IEC 9075:1989信息处理系统—数据库语言具有完整性增强特征的SQL》。这个标准替代了原来的SQL86,简称为SQL89,有时也称为SQL1。
SQL89标准的内容基本上包括了关系理论支持的数据模型所能实现的功能特征。标准在数据类型方面规定有常规的几种数字和字符串的基本类型;数据定义提供有表定义、索引定义、视图定义; 在数据操纵方面提供有查询、连接方式、谓词、插入、删除、修改、分类、统计、集函数等丰富功能; 在数据访问控制方面规定有授权的安全性机制,具备断言、触发的完整性控制,以及并发和恢复的事务处理控制; 在支持应用与数据交换方面提供游标、SQL与几个主语言的绑定方式; 在信息与定义模式方面支持系统的数据字典。SQL89标准奠定了关系数据库软件功能规范的基础,在其后SQL标准的不断变更中也被得到了充分的遵从和认可。
从SQL89标准发布之后到现在,ISO/IEC已经又对SQL标准经过了三次修订发布。1992年发布了SQL92,也称SQL2。1999年发布了SQL99,也称SQL3。2003年发布了SQL2003,也称SQL4。目前的SQL5是在2008年发布的,即SQL2008。
SQL92是在SQL89的基础上开始向应用扩展的。这种扩展既包括增强已有的特征,又包括定义了许多新的特征,以适应发展变化中的技术环境和新技术的应用市场。如,SQL92针对分布式网络环境,增加了日期、时间戳和可变长字符串、位串、民族字符串等一些数据类型及支持数据类型变换的设施; 支持远程数据库访问所要求的特定设施,包括连接管理和受限的模式;增加支持信息模式定义、模式中的域定义、模式的操纵等能力; 增加了集合操作的联结方式;支持SQL语言的动态执行、临时表、滚动游标等设施; 在应用与数据交换方面增加了与更多主语言的绑定,还支持诊断、模块、例程、调用、存储过程、连接、会话、SQL直接调用等多项功能。显然,SQL92标准所规定的这些特征使SQL语言功能的完备性得到了很大的增强。
在SQL92之后,SQL标准的内容、组成结构及一致性开始发生了较大的变化。SQL99增加了对象-关系特征,目的是在单个语言中集成对象与关系的概念。为此,SQL99标准增加了专门的数据类型和设施,如,用户定义类型、函数、过程和方法,支持大对象数据类型,以及复杂对象的建模功能,用表层次表示复杂数据关联的方法等等。同时还准备制订对象语言绑定标准作为SQL标准的一个部分。到SQL2003,继续在扩展对象技术设施,完成了对象语言绑定标准,也制订发布了Java例程和类型。同时也考虑了与XML技术的结合,制订发布了XML相关的规范。目前还在制订中的SQL5仍然离不开对象技术和XML应用相关规范的扩展。
SQL标准已经是一个庞大的系列标准。这个系列在制订发布SQL92时开始提出五个部分,到SQL99发布时才完成,它们依次分别是:第1部分:框架(SQL/ framework); 第2部分: 基础(SQL/foundation); 第3部分: 调用层接口(SQL/CLI): 第4部分: 持久存储模块(SQL/PSM)和第5部分: 宿主语言绑定(SQL/bindings)。后来发布的SQL2003,又增加了第9部分: 外部数据管理(SQL/MED);第10部分:对象语言绑定(SQL/OLB);第11部分:信息和定义模式(SQL//schemata); 第13部分:Java例程和类型(SQL/JRT)和第14部分:XML相关的规范(SQL/XML)。SQL2008对上述这些部分又都进行了增补修订。
在上述系列中除前五个部分之外,其后部分的编号并不连续,表明原计划中的标准项目后来被取消。而后面增添的标准都会要求前面的,如框架、基础等部分来支持新增加的内容,以适应其变化。
庞大的SQL系列标准的一致性是一个值得关注的问题。为了检验SQL实现与SQL标准的一致性,SQL92标准规定将其按功能划分三个级别: 即初级、中级和完全级。完全级是中级的超集,中级是初级的超集。而初级则是原SQL89的超集。后来,美国国家标准与技术研究所(NIST)提出了在初级与中级之间增加一个过渡级,它属中级的子集,并在联邦信息处理标准出版物(FIPS PUBS) FIPS-127-2公布了对应于过渡级的一致性测试基准程序套件。但是,由于市场上最流行的SQL实现并非都能达到SQL92标准规定的完全集,所以,从SQL99到SQL2003,标准的一致性只划分为核心SQL和扩展SQL两个级。核心SQL是产品与标准一致性的最低级别,扩展SQL是在核心SQL的基础上再自行选择若干附加特征。然而,目前的SQL标准与市场产品系统的实现之间,一般关系特征的一致性都已满足。但各供应商为扩大各自的应用市场,从不断扩展的应用技术领域提出扩充制订的一些SQL标准,就供应商本身各自提供的产品之间也存在着越来越大的差异,而SQL标准的作用似乎让人产生新的认识。