时间:2022-11-09 16:30:01 | 来源:信息时代
时间:2022-11-09 16:30:01 来源:信息时代
SQL一致性 : 包括SQL语言和SQL实现两个方面:符合SQL标准的语言应遵从标准的BNF范式、相关的语法规则、访问规则、定义和描述; 符合SQL标准的实现应按照标准相关的一般规则、定义和描述处理一致性SQL语言。
为了检验SQL实现与SQL标准的一致性,SQL92标准将其功能特性划分三个级别: 即初级、中级和完全级。初级则是原SQL89的超集。后来,由于市场上最流行的产品都难以实现SQL92中级或完全集的全部功能特性,美国国家标准与技术研究所提出了在初级与中级之间增加一个过渡级,并公布了对应于过渡级的一致性测试基准程序套件。
从SQL99开始,SQL标准将其一致性划分为最小一致性和扩展一致性。而扩展一致性又按照要求一致的功能粒度,分为部分一致性、特性一致性和包一致性。并规定每个一致性声明均应包括最小一致性声明。另外,还可以声明零个或多个扩展部分、零个或多个可选特性及零个或多个包的一致性。
最小一致性SQL语言也称为核心SQL。SQL2003标准将最小一致性定义为满足SQL2003第2部分和第11部分中说明的一致性要求,并应包括SQL2003第2部分和第11部分所规定的所有强制特性。
部分一致性是扩展一致性声明的最大粒度。SQL2003标准规定,声明符合某个部分意味着隐含支持那个部分定义的所有强制特性。此外,某个部分的一致性声明还应满足该部分规定的一致性要求。如果一个SQL实现符合SQL2003中某个部分规定的所有强制特性,且满足该部分规定的一致性要求,则可称为符合该部分。这里的部分是指除了第1部分、第2部分和第11部分外的其他扩展部分。
特性是指SQL语言在某方面的功能。特性一致性是扩展一致性声明的最小粒度。除了各部分的一致性所强制要求的那些特性外,每个部分还定义了一些可选特性。SQL2003定义了约400个可选特性,对于每个可选特性,可以单独声明其一致性。一个特性可能蕴涵另一个或几个特性,声明支持某个特性的SQL实现也应支持由该特性所蕴涵的全部特性。
包一致性是介于部分一致性和特性一致性之间的一种一致性声明粒度。一个包是SQL标准规定的一组可选特性。它与核心SQL一起为某个应用领域或实现环境提供支持。SQL2003定义了7个SQL包,如表1所示。对SQL2003的某个包的一致性声明应满足组成该包的所有部分和所有可选特性的一致性要求。如果一个SQL实现符合某个包内的所有特性,则称为符合该包一致性。
表1 SQL包
包ID | 包描述 |
PKG001 | 增强日期时间设施 |
PKG002 | 增强完整性管理 |
PKG004 | PSM |
PKG006 | 基本对象支持 |
PKG007 | 增强对象支持 |
PKG008 | 主动数据库 |
PKG010 | OLAP |