专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 SQL数据库语言的定义

SQL数据库语言的定义

更新时间:2021-11-02 10:57:35 来源:赢咖4 浏览604次

SQL 是一种流行的关系数据库语言,于 1986 年由美国国家标准协会 (ANSI) 首次标准化。此后,它被国际标准化组织 (ISO) 和国际电工委员会 (IEC) 正式采纳为国际标准。它还被美国联邦政府采用为联邦信息处理标准 (FIPS)。

SQL数据库语言的定义

数据库语言 SQL 正在由上述标准化机构不断开发。最近发布的版本是在 1992 年,ANSI 作为美国国家标准 X3.135-1992 和 ISO/IEC 作为国际标准 9075:1992 发布的 580 页规范。这两个规范是逐字相同的。两种版本都只能从 ANSI 获得硬拷贝(销售电话:+1-212-642-4900)。进一步的扩展和增强正在开发中(参见下面的 SQL 增强)。

FIPS SQL 规范发布为FIPS PUB 127-2;它通过引用指向 ANSI 规范,提供了四个 FIPS SQL 一致性级别,并确定了其他 FIPS SQL 要求,用于标记扩展、支持功能的文档以及字符集支持。

SQL 标准非常流行,有大量且越来越多的符合要求的实现。它是或很快将成为大多数涉及结构化数据的联邦数据库和数据库应用程序的定义基础。

FIPS SQL 的范围

数据库语言标准规定了数据库管理系统 (DBMS) 的各个组件的语义。特别是,它定义了由 DBMS 实现的数据模型的结构和操作,以及支持数据定义、数据访问、安全、编程语言接口和数据管理的其他组件。SQL 标准规定了支持关系数据模型的 DBMS 的数据定义、数据操作和其他相关设施。

数据库语言标准适用于所有数据库应用程序,其中数据将与其他应用程序共享,应用程序的生命周期比当前设备的生命周期长,或者应用程序将由非原始程序员理解和维护那些。

SQL 描述

关系模型的基本结构是一个表,由行和列组成。数据定义包括声明要包含在数据库中的每个表的名称、每个表的所有列的名称和数据类型、对列中和列间值的约束以及向潜在用户授予表操作权限。可以通过插入新行、删除或更新现有行或选择满足给定搜索条件的行进行输出来访问表。可以通过笛卡尔积、联合、交集、匹配列上的连接或给定列上的投影来操作表以生成新表。

SQL 数据操作操作可以通过游标或通用查询规范调用。该语言包括所有算术运算、比较和字符串匹配的谓词、通用和存在量词、max/min 或 count/sum 的汇总运算,以及按组对表进行分区的 GROUP BY 和 HAVING 子句。事务管理是通过 COMMIT 和 ROLLBACK 语句实现的。

该标准提供了用于定义数据的应用程序特定视图的语言工具。每个视图都是生成所需表的数据库操作的规范。然后在应用程序执行时具体化查看的表。

SQL 标准为与其他语言的接口提供了模块语言。每个 SQL 语句都可以打包为一个过程,该过程可以被调用并具有从外部语言传递给它的参数。游标机制从一次只能处理表的一行的语言中提供一次一行的访问。

访问控制由 GRANT 和 REVOKE 语句提供。必须明确授予每个潜在用户使用特定语句访问特定表或视图的权限。

SQL 完整性增强工具为参照完整性、CHECK 约束子句和 DEFAULT 子句提供了额外的工具。参照完整性允许指定主键和外键,并要求除非存在匹配的主键行,否则不得插入或更新外键行。Check 子句允许数据库系统维护列间约束的规范。默认子句为缺失数据提供可选的默认值。

嵌入式 SQL 规范提供了编程语言的 SQL 接口,特别是 Ada、C、COBOL、FORTRAN、MUMPS、Pascal 和 PL/I。因此,应用程序可以将程序控制结构与 SQL 数据操作功能集成在一起。嵌入式 SQL 语法只是从符合标准的编程语言访问的显式 SQL 模块的简写。

SQL-92 显着增加了 1986 年原始标准的大小,包括用于修改或更改模式的模式操作语言、模式信息表以使用户可以访问模式定义、动态创建 SQL 语句的新工具以及新的数据类型和域. 其他新的 SQL-92 特性包括外连接、级联更新和删除引用操作、在表上设置代数、事务一致性级别、滚动游标、延迟约束检查和大大扩展的异常报告。SQL-92 还删除了许多限制,以使语言更加灵活和正交。

FIPS SQL 的一般使用

数据库语言标准的目的是提供数据库定义和数据库应用程序在一致实现之间的可移植性。数据库语言标准的使用适用于所有系统之间需要交换数据库信息的情况。模式定义语言可用于交换数据库定义和特定于应用程序的视图。数据操作语言提供的数据操作使交换完整的应用程序成为可能。

关系数据模型以及 SQL 标准适用于需要在数据库的数据结构和访问路径方面具有灵活性的数据库应用程序。对于在生产控制下的应用程序以及当非计算机专业人员的最终用户非常需要临时数据操作时,它都是可取的。

SQL 模式定义语言特别适用于描述可以在各种数据管理应用程序之间传输的信息表。与 远程数据库访问 (RDA)标准一起使用,可以以标准方式交换数据事件并使符合系统的系统进行互操作。

SQL 增强

目前正在开发将 SQL 增强为一种用于定义和管理持久性复杂对象的计算完整语言。这包括:泛化和专业化层次结构、多重继承、用户定义的数据类型、触发器和断言、对基于知识的系统的支持、递归查询表达式和其他数据管理工具。它还包括抽象数据类型 (ADT)、对象标识符、方法、继承、多态性、封装以及通常与对象数据管理相关的所有其他设施的规范。一个SQL3 FTP目录包含个人作者给予说明和各种建议的SQL增强状态论文。

1993 年,ANSI 和 ISO 开发委员会决定将未来的 SQL 开发拆分为一个多部分标准。截至 1995 年 12 月,这些部分是:

第 1 部分:框架。对文档结构的非技术性描述。

第 2 部分:基础。核心规范,包括所有新的 ADT 和 Object SQL 特性;目前已超过 800 页。

第 3 部分:SQL/CLI。调用级接口。仅依赖于 SQL-92 的版本于 1995 年发布为 ISO/IEC 9075-3:1995。后续正在开发中,为 SQL 的其他部分中的新功能提供支持。

第 4 部分:SQL/PSM。存储过程规范,包括计算完整性。目前正在处理 DIS 选票。

第 5 部分:SQL/绑定。取自 SQL-92 的动态 SQL 和嵌入式 SQL 绑定。目前没有活跃的新工作,尽管 C++ 和 Java 接口正在讨论中。

第 6 部分:SQL/XA。X/Open 开发的流行 XA 接口的 SQL 特化(见下文)。

第 7 部分:SQL/时态。一个新批准的 SQL 子项目,用于开发使用 SQL 进行时态数据管理的增强工具。

SQL 第 2 部分:SQL 基础

SQL Foundation 包括所有新的 SQL 抽象数据类型 (ADT) 工具。提议的新第 2 部分中的某些功能非常稳定,可以立即标准化,而其他功能正在积极发展,因此有些不稳定。这部分很快将分为可以“早期”进行的部分和可以等到“稍后”进行的部分。

早期的部分可以在 1996 年发展到 CD,并在 1998 年最终采用。所有用户定义的 VALUE ADT、子类型系列、断言、触发器、保存点和光标扩展很容易成为“早期”部分,因为每个人都同意他们是稳定的规格。OBJECT ADT 工具处于“早期”和“后期”之间的边缘,而 WITH OID VISIBLE 替代品目前处于“后期”部分。所有集合类型的东西(即列表、集合、数组、多重集)也处于边缘,因为它们的规范仍然不完整。

SQL 第 3 部分:调用级接口 (SQL/CLI)

SQL 调用级接口是第三方软件开发人员的要求,他们生产用于个人计算机和工作站的“收缩包装”软件。他们不希望使用模块处理器或嵌入式 SQL 预处理器绑定样式,因为他们不希望将任何源代码与他们销售给个人用户的产品一起分发。相反,他们希望有一个到 SQL 数据存储库的服务调用接口,可以从主机操作系统提供的调用环境中调用该接口。对 SQL 数据存储库的调用然后可以嵌入到目标代码中,就像对任何其他系统服务的调用一样。

调用级接口是执行 SQL 语句的替代机制。SQL/CLI 由许多例程组成,这些例程:

-- 分配和释放资源。

-- 控制与 SQL 服务器的连接。

-- 使用类似于动态 SQL 的机制执行 SQL 语句。

-- 获取诊断信息。

-- 控制事务终止。

CLI ExecDirect 例程和CLI Prepare 例程均支持标识为StatementText 的输入字符串参数。如果 P 是 StatementText 的值,则 P 应满足以下限制:

1. P 应符合 SQL'92 标准第 17.6 节“准备语句”中规定的“可准备语句”的格式、语法规则和访问规则。

2. P 不应是“提交声明”或“回滚声明”。

3. P 应遵守 SQL/ERI Server 声明的 SQL 支持级别的 Leveling Rules。

SQL/CLI 规范旨在支持嵌入到基于指针的编程语言和非基于指针的编程语言中的 CLI 例程。

特别是,CLI 例程可以嵌入到以下任何一种标准编程语言中:Ada、C、COBOL、Fortran、MUMPS、Pascal 和 PL/I。

SQL/ERI 服务器将指示它支持哪些语言。

SQL/CLI 包含许多特性使其与 SQL-92 完全兼容(例如处理国际字符集、滚动游标支持和对动态 SQL 的支持),并且添加了“简洁”例程以使其向后兼容MicroSoft 的 ODBC 和早期的 SQL Access 和 X/Open Snapshot 规范。

编辑将在 1994 年 10 月中旬之前制作 DIS 文本,预计 DIS 投票可以在 1995 年 5 月完成。如果一切顺利,应该会在 1995 年底发布 ISO/IEC SQL/CLI 标准。

SQL3 第 4 部分:持久存储模块 (SQL/PSM)

这部分包括 SQL 中所有新的“编程语言控制流”特性,例如赋值、变量、循环、分支、过程块结构、过程和函数调用、异常处理等。它为“存储过程”,即在服务器上存储和优化的 SQL 过程,可以通过一次调用从客户端调用。

这是客户端/服务器环境中非常重要的要求。

PSM 规范的一个优点是,非 SQL 数据存储库现在能够将自己呈现给 SQL 环境,以符合最低级别的 SQL 数据操作,同时提供它们作为 SQL 的“增值”设施- 可调用的函数和过程。这应该是让遗留系统和其他非 SQL 数据存储库(例如文档管理系统和地理信息系统)声明符合 FIPS PUB for SQL Environments 中定义的 SQL/ERI 配置文件之一的重要刺激因素(请参阅 SQL环境如下)。

SQL/PSM 规范将在今年秋天进行第一次 CD 投票,很可能不迟于 1995 年 7 月发展到 DIS。它应该在 1996 日历年被正式采用为 ISO/IEC 标准。

SQL3 第 6 部分:SQL XA 接口专业化 (SQL/XA)

该规范将标准化全局事务管理器和 SQL 资源管理器之间的应用程序接口 (API)。它将基于 ISO/IEC 10026“分布式事务处理”的语义标准化函数调用,SQL 资源管理器必须支持两阶段提交。基础文档源自具有 X/Open 权限的 X/Open 发布,它根据 SQL 数据类型为以下函数指定显式输入和输出参数和语义:xa_close、xa_commit、xa_complete、xa_end、xa_forget、 xa_open、xa_prepare、xa_recover、xa_rollback 和 xa_start。

SQL/XA 的当前时间表要求在 1996 年进行 CD 注册,并于 1998 年正式采用作为 ISO/IEC 标准。

SQL 多媒体 (SQL/MM)

用于开发多媒体应用程序 SQL 类库的新 ISO/IEC 国际标准化项目于 1993 年初获得批准。这项名为 SQL 多媒体 (SQL/MM) 的新标准化活动将指定 SQL 抽象数据类型 (ADT) 定义的包使用新兴 SQL3 规范中提供的 ADT 规范和调用工具。SQL/MM 旨在标准化科学和工程、全文和文档处理的类库,以及管理多媒体对象(如图像、声音、动画、音乐和视频)的方法。它可能会为其他 JTC1 标准化机构定义的多媒体对象提供 SQL 语言绑定(例如 SC18 用于文档,SC24 用于图像,SC29 用于照片和电影)。

SQL/MM 的项目计划表明它将是一个多部分标准,由不断发展的部分组成。第 1 部分将是一个框架,指定如何构建其他部分。每个其他部分将专门用于特定的 SQL 应用程序包。1995 年 12 月存在以下 SQL/MM 部件结构:

第 1 部分:框架。对文档结构的非技术性描述。

第 2 部分:全文。用于文本数据处理的方法和 ADT。目前只有很少的内容。

第 3 部分:空间。用于空间数据管理的方法和 ADT。大约 125 多页,来自 3 个国家机构的空间数据专家做出了积极贡献。

第 4 部分:通用设施。复数、三角函数和指数函数、向量、集合等的方法和 ADT。目前大约 85 页。

SQL 环境

SQL 环境是一个集成的数据处理环境,其中异构产品都支持 FIPS SQL 标准的某些方面, FIPS PUB 127-2,能够相互通信并在适当的安全性、完整性和访问控制机制下提供对数据和数据操作和方法的共享访问。SQL 环境中的某些组件将是全功能 SQL 实现,它们符合 FIPS SQL 的整个级别并支持其所有必需的模式定义、数据操作、事务管理、完整性约束、访问控制和模式信息子句。SQL 环境中的其他组件可能是专门的数据存储库,或图形用户界面和报告编写器,它们支持 SQL 标准的选定部分,从而在同一 SQL 环境中提供其自身与其他产品之间的集成度。目的是对各种遗留或专用数据资源的集合提供高级别的控制。SQL 环境允许组织获得 SQL 的许多优点,而无需进行大量、复杂且容易出错的转换工作;相反,组织可以以可控的方式发展到一个新的环境。

FIPS PUB 193用于 SQL 环境的 FIPS PUB 是定义适当一致性配置文件的持续努力的开始,供应商和用户可以使用这些配置文件来指定各种产品如何适合 SQL 环境的确切要求。重点是为非 SQL 数据存储库指定通用的 SQL 外部存储库接口 (SQL/ERI) 配置文件。这些配置文件指定了如何使用 SQL 标准的一个子集来提供对旧数据库的有限 SQL 访问,或支持到专业数据管理器(如地理信息系统 (GIS)、全文文档管理系统或对象数据库)的 SQL 网关管理系统。其中指定的所有配置文件都用于服务器端产品,即控制持久数据并为用户访问该数据提供接口的产品。

许多应用程序需要在异构数据管理系统的管理和控制下存储在地理上分离的数据库中的各种数据(例如文档、图形、空间数据、字母数字记录、复杂对象、图像、语音、视频)的逻辑集成数据库。一个压倒一切的要求是这些不同的数据管理器能够相互通信,并在适当的安全性、完整性和访问控制机制下提供对数据和数据操作和方法的共享访问。大部分源数据可能存储在简单的文件系统、遗留数据管理系统或非常专业的数据存储库中,这些存储库仅满足这些数据管理要求的一小部分。SQL 环境的目标是在逻辑上集成这些不同的数据存储库“好像” 它们受单个 SQL 数据管理器的控制。用户表示工具,例如图形用户界面或报告编写器,然后可以使用此 SQL 界面从各种来源收集数据,在临时连接条件下将它们合并在一起,并以令人愉悦的图形格式呈现给用户。

正常运行的 SQL 环境将使用 SQL 语言使用标准化工具来描述此数据,将其集成到单个联合集合中,强制执行任何完整性或访问控制约束,并使其作为一个逻辑整体可用于复杂的用户生产力或演示工具。然后,这些客户端工具可以使用 SQL 的全部功能和灵活性进行数据检索和操作。底层数据管理器可能实现非关系数据模型,因此可能难以支持嵌套子查询、多表连接、选择列表中的派生列、参照完整性或其他关系模型功能的 SQL 要求。另一方面,它们可能提供关系实现很少支持的其他数据模型的高级功能。

使用这种方法,SQL 可能被证明是异构数据存储库的集成器,就像它作为关系数据模型的语言接口一样成功。如果非 SQL 实现为其数据和服务提供“简单”的 SQL 接口,并且全功能 SQL 实现使用该简单接口为最终用户工具提供全功能服务,则 SQL 语言可以满足这些集成目标。用于 SQL 环境的FIPS PUB 193 为此类“简单”SQL 接口指定了标准配置文件,从而更容易指定和支持所需的集成。

SQL 和 RDA 为标准化通信提供了基础。SQL 外部存储库接口 (SQL/ERI) 使非 SQL 数据存储库可以与用户应用程序共享其数据。随着面向对象和基于知识的数据管理的新兴 SQL3 增强以及分布式数据库的新兴 RDA 扩展,ERI 可以发展以支持“无缝”数据集成。

通过以上介绍,大家对SQL数据库语言的定义已经有了一些了解,如果您想了解更多相关信息,可以关注一下赢咖4的Java赢咖4在线学习,里面的内容更丰富,对于没有基础的小白来说非常适合,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>