GB T 15534-1995 信息处理系统 数据库语言NDL.pdf

上传人:deputyduring120 文档编号:186082 上传时间:2019-07-14 格式:PDF 页数:57 大小:3.25MB
下载 相关 举报
GB T 15534-1995 信息处理系统 数据库语言NDL.pdf_第1页
第1页 / 共57页
GB T 15534-1995 信息处理系统 数据库语言NDL.pdf_第2页
第2页 / 共57页
GB T 15534-1995 信息处理系统 数据库语言NDL.pdf_第3页
第3页 / 共57页
GB T 15534-1995 信息处理系统 数据库语言NDL.pdf_第4页
第4页 / 共57页
GB T 15534-1995 信息处理系统 数据库语言NDL.pdf_第5页
第5页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、中华人民共和国国家标准信息处理系统数据库语言发布实施国家技术监督局发布中华人民共和国国家标准信息处理系统数据库语言国家技术监督局批准实施本标准等同采用国际标准信息处理系统数据库语言主题内容与适用范围本标准规定以下三种数据库语言的语法和语义模式定义语言它用来申明数据库的结构和完整性约束子模式定义语言它用来申明数据库的用户视图模块语言和数据操纵语言它用来申明具体的数据库所应用的数据库过程和执行语句本标准定义数据库的逻辑数据结构和基本操作它提供数据库设计存取维护控制和保护方面的功能性能力本标准在互相符合的现实之间为数据库定义和应用程序的可移植性提供一种途径本标准指明两个级别的数据库语言第二级是完整的

2、数据库语言第一级是第二级的子集其内容见第章本标准没有指明可能提供给运行的数据库环境的某些设施例如为特定的用户获得访问和运行优先权的访问控制附加的完整性控制能力用于在数据库上指明更加复杂的完整性约束转入转出的模式定义的设施为适应信息交换把记录和系全体复制到标准文件上的数据库存储交换功能为使模式和子模式信息可用来访问应用程序的模式数据库建立修改或删除部分模式或子模式的操纵语言数据字典界面产生独立的标准数据库模块和标准语言程序的应用程序的预处理设施定义物理存储结构和物理存取方法的数据存储定义语言为用户指明断言和触发的数据库过程为访问数据库所制定的自然语言查询设施产生输出表和图象的报告生成程序设施数据

3、库与标准图形系统直接接口的图形能力在通讯网络的不同结点上定义和存取数据的分布数据库设施以某种方式指明这些附加设施的标准应与本标准向上兼容某些附加能力可能在本标准以后的版本中指明其余的则在单独的标准中指明而有些附加功能通常由实现者自己定义本标准实现的适用环境包括应用程序设计语言最终用户查询语言报告生成系统数据字典系统程序库系统和分布式通信系统以及用于数据库设计数据管理和性能优化的各种工具引用标准程序设计语言程序设计语言程序设计语言程序设计语言概述结构本标准结构如下条表示法和条约定定义本标准内所使用的表示法和约定条相符性定义相符性准则第章的概念定义术语并提出在定义中所用到的概念第章公用元素定义在语

4、言中某些部分所出现的语言元素第章模式定义语言定义用来指明数据库的设施第章子模式定义语言定义用来指明一个应用程序所能引用的部分数据库的设施第章模块语言定义模块和过程第章数据操纵语言定义的数据操纵语句第章辅助操作定义用于数据操纵语句定义中的某一些操作第章解释状态定义用于数据操纵语句定义中的会话状态第章状态码定义数据操纵语句执行后的参数的值第章级定义的两个级表示法本标准内所使用的语法表示法是巴科斯范式或巴科斯诺尔范式并具有如下的扩展方括号表示任选元素省略号表示可以重复一次或多次的元素花括号表示元素的组合序列在语法中如果产生式符号出现在产生式符号的展开式内某一位置则产生式符号被定义为包含产生式符号如果

5、包含则包含于中如果包含则是所在的的产生式符号如果包含且出现在的第一展开式中则产生式符号即刻包含一个产生式符号本标准的词法单位例分隔符关键字标识符和字值在本标准的其他地方定义下列字符在某些产生式规则中有特殊含义在换码标识符中在字符串文字中在注释条件和下标中在注释条件和下标中在注释中在数字字值中在数字字值中在关系中在关系中在成分标识符匹配关系和语句中在近似数字字值中在标识符中在成分标识符成分视图标识符数字字值子句和子模式说明中约定采用说明原国际标准有一段章条和页码的对照约定在起草本标准时认为此约定没什么意义故删去本标准的语法元素按以下形式指明功能对元素用途的简短陈述格式对元素语法的定义语法规则在内

6、没有表示出的而元素应当满足的附加语法的限制一般规则元素运行时间效果的一个顺序说明在语法规则中术语应当定义能在语法上完全符合语言所要求的一些条件对不符合格式或语法规则的语言的处理由实现者定义执行在一般规则中定义的精确动作序列不要求一致性实现但在数据库中会与此序列达到同样的效果术语持久对象用来表征如模块和模式这一类对象它们是由实现者定义机制予以建立和撤消相符性本标准指明相符的语言和相符的实现相符的语言应遵守范式与相应的语法规则相符的实现应按照一般规则来处理标准的相符的语言相符的实现可以提供本标准未指明的附加设施或任选功能即使一个实现提供给用户处理非相符语言或以非相符方式处理相符的语言的选择该实现仍

7、是相符的本标准不定义应用程序和数据库管理系统成分之间的汇集时间和方法本标准第级相符的实现应当满足第级相符的需求除非它省略在第章中所指明的某些设施本标准指明三种语言并定义它们各自的语法和语义数据库管理系统的实现者可以用两种方法来声称他们的产品与本标准的相符性一种方法是实现者可以提供与语言相同的语法以声称语法与功能两者相符另一种方法是使用不同的语言表达相同的概念语义和功能性且仅仅声称功能的相符性声称与三种标准语言任一种功能的相符性应指明语法和功能性与这些标准语言等价例如由数据库管理系统的显示实用程序所显示的一个模式能使用标准模式定义的语言的语法来记录且具有等效的功能概念数据类型数据类型是可表示的值

8、的集合值的逻辑表示为一个字值一个值的物理表示是由实现者定义的在本标准中值是初等项且对其不能再作逻辑细分值是数据项和数组定义的基础值或是字符串或是数字符串与数是相互不可比较的值字符串字符串由实现者定义的字符集的一个字符序列组成字符串有长度长度是一个整数它指明在序列中字符的个数数数或是精确数值或是近似数值所有的数是可以比较的值精确数值有精度和标度精度是一个正整数它确定数值有效的十进制位数标度是一个带符号的整数标度为表示该数字为一个整数标度为表示该精确数值应为有效十进制整数乘以的次方近似数值由尾数和指数组成尾数是一个带符号的数值指数是一个带符号的整数它指明了尾数的数量级一个近似数值有一个精度精度是正

9、整数它指明尾数中有效的二进制数字的位数当一个精确数值赋予一个表示精确数值的数据项或参数时则它的值应当精确地表示在目的的数据类型中这个值被转换为目的精度和标度当精确或近似值赋给一个表示近似数字值的数据项或参数时则在目的的数据类型中表示是此值的近似值这个值被转换为目的精度成分成分或是数据项或是数据项的数组成分类型定义一个有相同数据类型成分的出现值的集合一个数据项含有一个单个值数组由若干个数据项序列组成数组由范围指明范围是一个无符号整数表列出现在数组中的数据项的个数等于无符号整数的积不包含在数组中的数据项用成分名和数据库键来引用包含在数组中的数据项用成分名数据库键和下标来引用具有相同成分类型的所有值

10、有相同的数据类型如果成分类型定义一个数组则各个成分出现值是一个具有相同维数和范围整数的数组有相同字符串成分的所有字符串有相同的长度所有相同精确数字成分的数有相同的精度和标度所有相同近似数字成分的数有相同的精度每个成分类型定义为一个记录类型部分成分类型指明数据类型如果成分类型定义一个数组则它指明范围一个字符串成分类型指明它的字符串的长度一个精确数字成分类型指明它的数的精度和标度一个近似数字成分类型指明它的数的精度记录本标准中记录是基本的操纵单位记录可存储删除寻找和修改以及在系上连接断结和重新连结记录是许多成分的集合一个记录类型定义所有具有相同成分类型的记录出现值的集合记录类型定义它的成分类型并指

11、明记录出现值应满足的完整性约束每个记录恰好是一个记录类型的出现值并且恰好由该记录类型所定义的成分组成每个记录类型的记录用实现者定义的次序来维持数据库键所有的记录是可区分的每个记录由一个数据库键唯一地标识数据库键或者为空或者为非空为空时标识没有记录非空时恰好标识数据库中的一个记录数据库键没有逻辑表示并且它对由本标准所定义的任何界面都是无效的数据库键的物理表示是由实现者定义在会话状态中数据库键用来模拟游标和定义数据操纵语言中语句的语义在会话状态数据库键由数据库键引用在数据操纵语言的语句中一个数据库键由一个数据库标识符引用系统记录本标准存在一个专门的记录类型记录类型没有成分类型没有完整性约束且恰好有

12、一个称为系统记录的虚记录出现值本标准没有指明系统记录的数据库键系统记录和记录类型仅仅存在于奇异系的定义中系类型系类型定义两个或两个以上记录类型关系在系类型中一个记录类型指定为主记录类型而其余的记录类型称为系类型的一个成员记录类型对每一个系类型在数据库中可能有零个一个多个系每个系有一个主记录和零个一个或多个成员记录组成主记录的记录类型是一个成员记录类型在数据库中系由系名和它的主记录出现值唯一地标识当一个系类型的主记录类型的一个出现值存储于数据库时则此系类型产生一个新系当记录类型的一个出现值存储在数据库时它至多属于系类型的一个系在这个系类型中该记录类型是一个成员记录类型系类型的每个系的成员记录按顺

13、序排列此顺序由系类型的排序规则所决定奇异系奇异系类型是以作为主记录类型的系类型奇异系是奇异系类型的唯一出现值递归系递归系类型是与主记录类型和成员记录类型有相同的记录类型的系类型递归系是一个递归系类型的值模式模式由模式定义语言所指明的一个持久对象模式是数据库的逻辑描述它由模式名记录类型的描述集和系型描述集所组成子模式子模式是由子模式定义语言指明的持久对象子模式是指对存取模块有效的那部分数据库的逻辑描述它由子模式名记录视图集合和系视图集合组成记录视图指明一个给定记录类型的有效的成分类型系视图指明一个有效的系类型记录视图和系视图一起决定各个系类型有效的成员记录类型记录视图和系视图可定义成分类型记录类

14、型和系类型的别名这些别名分别为成分视图名记录视图名和系视图名这些别名对存取模块而言它们仅仅是成分类型记录类型和系类型的一个有效名存取模块可使用的记录是按实现者定义的次序来维持的这个次序并不一定要与每个记录类型的记录实现者所定义次序一致数据库数据库是一个模式定义的所有数据的集合它包括每个记录类型和系类型的出现值每个模式仅定义一个数据库模块模块是用模块语言指明的一个持久对象一个模块由一个任选的模块名一个语言子句一个子模式说明一个任选的临时系说明和一个或多个过程所组成应用程序是一段可执行的代码它可由多个子程序组成单个模块在其执行期间与应用程序相联系一个应用程序应当仅与且至多只能与一个模块相联系其中所

15、指明这个联系方式包括执行某些实现者定义的语句的可能要求是由实现者定义的过程过程由一个过程名一个任选的参数说明序列和一个任选的语句序列组成与模块相联成的应用程序可用语句来引用该模块中的过程语句指明该过程的过程名并且提供参数值的序列其参数的个数和数据类型对应于该过程的参数申明过程的调用引起过程所包含语句序列的执行一个模块的子模式说明指明子模式该子模式定义由模块引用的记录和系一个模块的临时系说明定义由模块引用的临时系类型标准程序设计语言当模块中的过程是由符合规定的标准程序设计语言的程序调用时本标准指明模块中过程的动作术语标准程序标准程序标准程序和标准程序是指在第二章引用标准中列出的满足这些标准的相符

16、性准则的那些程序临时系临时系是临时系类型的一个出现值临时系类型由模块中的一个临时系说明申明对于模块中的每个临时系说明当模块初启时创建相应的临时系类型的一个出现值且当模块终止时就撤消参数参数由过程中的参数申明申明参数申明指明参数是一个基本数据项或数据项的数组以及指明它的值的数据类型在该过程的调用中参数或者假定或者提供相应的自变量的一个值或多个值参数参数是长度为个字符的专用参数如果在过程中申明参数则它的值置为状态码此状态码或者指示该过程调用已成功地完成或者指示在过程执行中产生一个异常条件参数参数是长度为个字符的专用参数如果含该参数的过程中执行了测试语句且测试为真则该参数值置为否则为参数参数是长度为

17、个字符的专用参数如果在过程中申明该参数则它置成由会话状态的会话游标所标识记录的记录名会话一个数据库操作就是执行一个语句一个会话是与一个模块相联的应用程序在执行时所实现的数据库操作序列会话状态是与一个会话相联系的一个短暂现象会话状态的创建先于会话中的第一个数据库操作且在会话的最后一个数据库操作之后被撤消会话状态由游标临时系和一个就绪列表组成游标包括标识当前会话记录的会话游标标识各个子模式记录类型的当前记录记录游标以及标识每个子模式系类型在当前系中的主记录和当前成员记录系游标临时系维持由相联的模块所定义的各个临时系的内容就绪列表维持由一个语句激活的各个记录类型的就绪说明会话状态只有通过语句才对应用

18、程序有效会话状态内容由数据库管理系统来修改其依据是在其相关模块的过程中执行语句数据操纵语言包括若干语句此语句具有寻找和比较数据库键修改就绪列表以及每个临时系内容的功能事务事务是包括数据库操作在内的一个操作序列该序列对恢复和并发而言是一个原子单位事务用语句或一个语句来终止如果事务以语句终止则该事务对数据库所做的全部修改对所有并发事务均可访问如果事务以语句终止则该事务对数据库的修改均被取消而已提交的修改不能撤消一个事务对数据库的修改能被该事务所感知但是该事务以语句终止之前这些修改不能被其他的事务感知并发事务的执行应确保可串行化可串行化的执行定义为并发执行事务的操作的一种执行该执行与同一组事务的某个

19、顺序执行产生相同效果顺序执行的含义是每个事务执行在下一个事务开始之前完成除在语句的一般规则中已陈述的影响外在一个事务内的执行对数据库或会话状态没有影响联系串行化执行意味着在一个事务中所有读操作是可重现的除事务自身已明显地做了改变完整性约束完整性约束限定数据库的有效状态完整性约束可以定义为记录类型或系类型以及主记录类型和成员记录类型之间的成分约束完整性约束是在各个语句执行后检查如果与完整性约束相联的目标不满足约束则语句对数据库无效且参数置成为指示所指明的例外检验条件检验条件是数据库记录状态改变时记录值应满足的一个表达式该表达式由记录类型或系类型的子句中的子句的条件指明缺省值缺省值指过程不提供显式

20、值的情况下由所有成分出现值所假定的一个值缺省值是由成分类型的一个子句中的字值加以指明唯一性约束唯一性约束是一个说明它是指一个给定的记录类型中没有两个记录或一个给定系类型的一个系没有两个成员记录它们可以在指明的成分上以等值形式出现在数据库中唯一性约束是由记录类型中的子句指明或者由系类型的子句内的子句指明系序准则系序指明一个系中成员记录的顺序系序有下列几种按成分值排序按时序或逆时序按一个给定成员记录的先后相对位置由实现者定义系序准则由系类型的子句指明且如果序是排序的则由该系类型包括的每个成员子句的子句指明系成员系成员指明各个系中的作为成员记录出现的记录的插入和保留方式各个成员记录类型有一个插入方式

21、和一个保留方式插入或是自动的结构的或是手工的如果插入是手工的则应只由一个显式语句把记录插入到系中成为成员记录如果插入是自动的或结构的则当成员记录类型的各个记录初次存储于数据库时它成为该系类型中某个系的一个成员记录如果插入是自动的或手工的则系主记录是由应用程序标识如果插入是结构的则系主记录是由数据库管理系统选择使所得说明的数据项的值等于已插入记录的数据项的值插入方式是由模式的每个子句的子句指明的保留或者是固定的强制的或者是可选的如果保留是固定的则记录一旦成为某个系的成员记录后就一直为该系的成员记录直至该记录从数据库删去如果保留是强制的则记录一旦成为一个系的成员记录后就一直为同一系类型中的某个系的

22、成员记录直至记录从数据库中删去如果保留是可选的则记录成为某一个系的成员记录后不必一直是该系的成员记录或该系类型中的任何系的成员记录保留方式由模式的各个子句中的一个子句指明公用元素条件功能指明取值为真值或假值的表达式格式条件选择选择选择简单条件简单条件简单条件子条件非子条件关系条件子条件条件非子条件条件关系条件操作数关系操作数关系语法规则如果关系条件中的第一个操作数指明一个数组则关系条件中的第二个操作数将不再指明是一个数组如果第一个操作数的类型是字符串则第二个操作数的类型也应是字符串如果第一个操作数的类型是精确数则第二个操作数的类型也应是精确数或近似数若第一个操作数的类型是近似数则第二个操作数的

23、类型应是近似数或精确数一般规则如果条件中的任何一个选择为真则条件就为真否则是假如果选择中的每个简单条件均为真则选择就为真否则为假如果子条件为真则直接包含一个子条件的简单条件就为真否则为假如果直接包含非子条件中的条件为真则直接包含非子条件的简单条件为真否则为假如果关系条件为真则直接包含关系条件的简单条件为真否则为假一个关系条件的第一二个操作数是该关系条件中的第一二个操作数的值一个关系条件的关系指明关系条件的两个操作数之间的比较关系由选择关系指明的比较如下关系比较小于小于等于等于大于等于大于不等如果关系条件的两个操作数没有一个是数组且两个操作数所指定的比较为真该关系条件为真否则为假如果关系条件的操

24、作数之一是数组且在数组序列中指明的每个值和另一个操作数的比较是真时则该关系条件为真否则是假情况如果操作数是精确数或近似的数字类型则按其数值执行比较如果操作数为字符串类型则如果两个操作数的长度不等则在较短的操作数的右边加上空格字符使其长度相等比较是从左到右执行逐个操作字符进行比较如果所有单个字符都相等则两个操作数相等否则操作数的比较结果将取决于单个字符的最左不等比较的结果单个字符的比较是由实现者定义在一般规则中术语小于大于等于以及不等是指相应的关系操作符操作数功能指明一个值格式操作数成分标识符成分视图标识符参数标识符字值语法规则情况如果一个操作数出现在模式中则它应当是一个成分视图标识符而不应是参

25、数标识符如果操作数出现在模块中则它不应是一个成分标识符一个操作数的数据类型是成分标识符成分视图标识符参数标识符或字值的数据类型一般规则一个操作数的值是由成分标识符成分视图标识符参数标识符或字值的值所引用的数据项或数组标识符功能指明一个过程中参数的名字或数据库中目标的名字格式标识符正规标识符换码标识符正规标识符大写字母下划线字母或数字下划线字母或数字大写字母数字字母大写字母小写字母大写字母小写字母数字换码标识符换码标识符字符表示撇号表示换码标识符字符见语法规则撇号表示语法规则一个正规标识符最大应含有个字符一个换码标识符最大应含有个换码标识符字符表示一个正规标识符不应和关键字有相同的字符序列见的注

26、释空格和关键字一个换码标识符字符除了撇号字符之外是由实现者定义的任何字符换码标识符中每个撇号表示代表一个单个撇号字符如果换码标识符除了闭撇号之外与正规标识符格式相一致且它不是一个关键字则它等价于除去闭撇号后形成的正规标识符一般规则无字值功能指明一个文字值格式字值字符串字值数字字值字符串字值字符表示字符表示非引号字符引用表示非引号字符见语法规则引号表示数字字值精确数字字值近似数字字值精确数字值无符号整数无符号整数无符号整数无符号整数近似数字字值尾数指数尾数精确数字字值指数符号整数带符号整数无符号整数无符号整数数字语法规则非引号字符是实现者定义的字符集中的任何字符但除去双引号标记字符一个字符串字值

27、的数据类型是字符串字符串字值的长度是它包含的字符表示的个数字符串字值内的各个引号表示在字符串字值的值和长度两方面均代表一个单引号字符不带小数点的精确数字字值有一个隐含的小数点它位于最后一个数字之后一个精确数字字值的数据类型是精确数精确数字字值的精度是它包含数字的个数精确数字字值的标度是小数点右边数字的个数近似数字字值的数据类型是近似数近似数字字值的精度是它的尾数的精度一般规则字符串字值的值是它包含的字符序列无符号整数带符号整数或精确数字字值的数值由带符号的定点十进制表示法的正规数学解释导出近似数字字值的数值用两个精确数值的乘积来表示一个是由尾数表示的精确数另一个是的指数表示的幂数据类型功能指明

28、数据类型格式数据类型字符串类型精确数字类型近似数字类型字符串类型字符长度精确数字类型精度标度精度标度近似数字类型精度长度无符号整数精度无符号整数标度带符号整数语法规则长度精度或无符号整数应大于如果省略长度则假定它为如果省略标度则假定它为一般规则数据类型指明数据项值的一种类别数据类型的一个数据项有一个字符串值其长度等于所指明的长度的值数据类型的一个数据项有一个精确数值其标度等于所指明的标度的值精度大于或等于所指明的精度的值数据类型的一个数据项有一个精确数值其精度和标度分别等于所指明的精度和标度的值如果精度为标度为则任何非零数据项的绝对值应大于等于和小于或等于数据类型的一个数据项有一个精确值其标度

29、为精度由实现者定义数据类型的数据项有一个近似数值其精度大于或等于所指明的精度数据类型为的数据项有一个近似数值其精度由实现者定义数据类型的数据项有一个近似数值其精度由实现者定义它大于实现者定义的的精度子句功能用指明数组的范围来定义一个数组格式子句范围范围无符号整数语法规则在范围内的各个无符号整数的值应大于一般规则一个子句指明一个数据项的数组在范围中的无符号整数值的积指明包含在数组各个出现值中数据项的个数下标功能指明一个数组的数据项格式下标操作数语法规则一个下标的上下文子句在直接包含下标的产生式符号的语法规则中加以指明操作数的个数应等于上下文子句的范围中无符号整数的个数情况如果数操作是一个字值则它

30、应是一个其值为正数无符号整数且不大于上下文子句的范围中相应的无符号整数的值如果操作数不是一个字值则它的数据类型应是一个标度为的精确数字一般规则令为下标中操作数的个数对从到令为下标中的第个操作数之值对从到令为上下文子句的范围中第个无符号整数之值对从到若小于零或大于则产生异常的数组引用下标超界令为对从到令为项之积从到从到令为的和下标的值为注释空格和关键字功能指明词法单位格式分隔符注释空格新行注释字符字符数字字母专用字符专用字符见语法规则空格空格字符新行实现者定义的行结束标记字关键字标识符字值关键字语法规则专用字符是实现者定义的字符集中的任何字符而不是数字或字母如果实现者定义的行结束标志符新行是一个

31、字符则它不包含在专用字符中模式子模式或模块的一个最终产生式包含一系列可选的字和符号其间由分隔符分开如果一个字紧跟另一个字则其间必须有分隔符注释中串字符不应包含子串一般规则无模式定义语言模式功能定义一个数据库的逻辑结构格式模式记录类型系类型语法规则无一般规则无子句功能命名一个模式格式子句模式名模式名标识符语法规则模式名应与同一环境中任何其他模式的模式名不同环境的概念是由实现者定义一般规则子句把标识符定义为一个模式名该模式名指定所在的模式记录类型功能定义一个记录类型格式记录类型子句子句成分类型子句语法规则无一般规则无子句功能命名一个记录类型格式子句记录名记录名标识符语法规则记录名应与所在模式中的任

32、何其他子句的记录名不同一般规则子句把标识符定义为一个记录名该记录名指定所在的记录类型子句功能为记录类型出现值指定的唯一性约束格式子句成分标识符语法规则如果一个成分标识符的成分名指定为一个数组则成分标识符应包含下标在一个单个子句中应至多包括一个给定的成分标识符在子句内的各个成分标识符的上下文记录类型是所在的记录类型一般规则当一个记录出现值引用子句的成分标识符时该成分标识符的上下文数据库键是该记录出现值的数据库键如果数据库包括所在记录类型的两个出现值其中由第一个记录出现值中子句内的成分标识符所指定的成分的各个值与第二个记录出现值中相应成分的各个值相等时则违反子句成分类型功能定义一个成分类型格式成分

33、类型子句数据类型子句子句语法规则无一般规则无子句功能命名一个成分类型格式子句成分名成分名标识符语法规则成分名标识符语法规则成分名应与所在记录类型的任何其他子句中的成分名不同一般规则子句把标识符定义为一个成分名该成分名指定所在成分类型子句功能为成分类型指明一个缺省值格式子句字值语法规则子句的源数据类型是所在成分类型的数据类型情况如果源数据类型定义字符串值则字值应是一个字符串字值字符串字值的长度应不大于源数据类型的长度值如果源数据类型定义精确数值则字值应是一个精确数字字值小数点右边的有效位数应不大于其中和分别是源数据类型的精度和标度如果源数据类型定义近似数值则字值应是一个近似数字字值或一个精确数字

34、字值其有效位数不应大于源数据类型的精度一般规则当所在的记录类型的出现值是由一个语句存储时则在含有成分类型的出现值中所包含的各个数据项值有下列情况如果字值是一个精确数字字值则值是字值的精确数值如果字值是一个近似数字字值则值是字值的近似数值如果字值是一个字符串字值并且字值的长度等于源数据类型的长度则值是字值如果字值是一个字符串字值并且字值的长度小于源数据类型的长度则值是字符串字值并在右边增补空格字符使它与源成分的长度相同子句功能为记录类型的出现值指明一个有效性条件格式子句条件语法规则在条件中每个成分标识符的上下文记录类型是所在的记录类型一般规则当用一个记录出现值对子句的条件求值时在条件中的任何成分

35、标识符的上下文数据库键是该记录出现值的数据库键如果数据库包含所在记录类型的一个记录具体值且其条件是假则违反子句系类型功能定义一个系类型格式系类型子句子句子句子句语法规则无一般规则无子句功能命名一个系类型格式子句系名系名标识符语法规则系名应与所在模式内的任何其他子句的系名不同一般规则子句把标识符定义为一个系名该系名指定所在的系类型子句功能为系类型指明系主格式子句记录名语法规则如果一个子句含有一个记录名则该记录名应在所在的模式中指定一个记录类型一般规则情况如果子句指明一个记录名则该记录名是所在的系类型的主记录名并且此记录名所指定的记录类型是该系类型的主记录类型如果子句指明则所在的系类型是把作为主记

36、录类型的一个奇异系类型子句功能指明系中的成员记录的顺序格式子句序选择序选择排序序排序序记录类型顺序序重复记录类型顺序记录名序重复语法规则如果指明排序序则一个子句应包括在所在系类型的每个子句中否则所在系类型的无子句应包括一个子句如果指明记录类型顺序则每个记录名应指定所在系类型的一个成员记录类型并且指定所在系类型的一个成员记录类型的每个记录名应只在记录类型顺序中只出现一次如果包括记录类型顺序则所在系类型内的每个子句的子句中应包括一个记录类型键项否则无如此子句包括一个记录类型键项如果指明序重复则所在系类型中任何子句没有子句应包括键重复否则所在系类型中每个子句的各个子句应包括一个键重复注本规则和子句一

37、起保证重复键项的系成员是由子句中的一个单个序重复控制或由每个子句的键重复控制一般规则如果序选择是或则数据库控制系统应分别按时序或逆时序方式维持所在系类型的一个出现值的成员记录该时序是以最近时间为基础在此基础上操作把一个成员记录插入到系的出现值内由语句或语句导出一个操作此操作按和时序方式建立的新位置把一个成员记录重新插入到同一系的出现值内如果序选择是或则数据库控制系统应按操作的目标系游标中的位置所决定的顺序来维持所在系类型的一个出现值的成员记录如果序选择是则数据库控制系统应按实现者定义的顺序来维持所在系类型的一个出现值的成员记录这个顺序服从在事务内的复制需要但在事务间可以改变如果指明排序序则数据

38、库控制系统应按每个成员记录的排序控制键的顺序维持所在系类型的一个出现值的成员记录在此成员记录的排序控制键由所在系类型中相应的子句的子句指明一个键项序列组成如果指明记录类型顺序则所在的系类型的成员记录类型在所在系类型的子句的子句中定义的排序控制键中用作键项在记录类型顺序中记录名的顺序指明记录类型的升序此顺序的逆给出了记录类型的降序当一个操作引起所在系类型的一个出现值含有全部相同键项值的两个或更多的成员记录时一个序重复指明数据库控制系统所做的动作情况如果指明则违反子句如果指明或则具有相同键项值的成员记录应分别按时序或逆时序排序这个时序以最近时间为基础语句语句语句或语句把给定的成员记录插入到系出现值

39、内或者一个语句在给定的成员记录中指明一个或几个键项的值序重复和一个语句指明在成员记录内一个或多个键项的值该值等于该记录以时序方式建立的新位置中那些键项的当前值如果指明则所有键项值相同的成员记录应按实现者定义的顺序排列注如果没有指明序重复则所采取动作由所在系类型的每个成员子句的键重复所控制子句功能指明一个系类型的成员记录类型格式子句子句子句子句子句子句子句语法规则无一般规则无子句功能指明一个系类型的成员记录类型的记录名格式子句记录名语法规则记录名应指定所在模式中的记录类型记录名不应指定所在系类型中任何其他的成员记录类型一般规则子句定义由记录名指定的记录类型该记录类型是所在系类型的一个成员记录类型

40、并且也是所在子句的成员记录类型子句功能定义系类型的一个成员记录类型的插入特性格式子句插入方式插入方式结构说明结构说明成分标识符匹配成分标识符匹配成分标识符匹配成员成分标识符主成分标识符主成分标识符成员成分标识符成员成分标识符成分标识符主成分标识符成分标识符语法规则如果子句指明则如果一个成分标识符的成分名指定一个数组则此成分标识符应包含下标所在系类型应不是奇异系类型目标记录类型是所在系类型的主记录类型而源记录类型是所在子句的成员记录类型如果源记录类型与目标记录类型相同则成分标识符匹配中的每个成分标识符应包含一个限定符以指明究竟是还是成分标识符匹配中的任何成分标识符如果它包含源记录类型与目标记录类

41、型中都定义的成分名则它应包含一个限定符如果成分标识匹配中的成分标识符包含一个限定符指明的一个记录名则此记录名应或是源记录类型或是目标记录类型的记录名成分标识符的上下文记录类型就是记录类型如果成分标识符匹配中的一个成分标识符包含指明的一个限定符则成分标识符的上下文记录类型就是目标源记录类型如果成分标识符匹配中的成分标识符不包含一个限定符则此成分标识符的成分名应定义在源记录类型或是定义在目标记录类型中成分标识符的上下文记录类型就是该记录类型由主成分标识符所引用的数据项应恰好是在目标记录类型中的一个子句中所列出的成分标识符成员成分标识符引用的数据项应是源记录类型的数据项由一个成分标识符匹配的成员成分

42、标识符所引用的成分类型的数据类型应与由此成分标识符匹配的主成分标识符所引用的成分类型的数据类型相同一般规则如果指明则令为成员成分标识符所指明的成分标识符那些成分标识符的上下文数据库键就是新成员记录出现值的数据库键令为主成分标识符所指明的成分标识符那些成分标识符的上下文数据库键是由插入操作所指明的系出现值的主记录出现值的数据库键一个隐含的子句有下述形式子句功能定义系类型的一个成员记录类型的保留特性格式子句语法规则无一般规则无子句功能指明系类型每个出现值成员记录的唯一性约束格式子句成分标识符语法规则如果成分标识符的成分名指定一个数组则此成分标识符应包含下标在单个子句中应最多包括一个给定的成分标识符

43、一个子句的源记录类型是所在子句的成员记录类型在子句中每个成分标识符的上下文记录类型是源记录类型一般规则当子句的成分标识符被记录出现值引用时该成分标识符的上下文数据库键是该记录出现值的数据库键违反子句的情况是如果数据库包含所在系类型的一个出现值则该系类型包含源记录类型的两个成员出现值其中在第一个记录出现值中由子句的成分标识符指定的每个成分值与第二个记录出现值中对应成分值相等子句功能定义系类型的一个成员记录类型进行排序的排序控制键格式子句键项键重复键项成分标识符记录类型键项记录类型键项键重复语法规则如果成分标识符的成分名指定一个数组则成分标识符应包含下标单个子句中应最多包含一个给定的成分标识符子句

44、的源记录类型是所在子句的成员记录类型子句中每个成分标识符的上下文记录类型是子句的源记录类型如果所在的系类型指明排序序则应指明一个子句否则不应指明子句如果所在的系类型没有指明序重复的排序序则应指明一个键重复否则就不应指明键重复注此规则与支配子句的规则一起保证有重复键项的系成员或由子句中的一个单个序重复控制或由每个子句内的一个键重复控制如果所在的系类型指明具有系类型顺序的排序序则单个子句应恰好包含一个记录类型键项否则一个子句不应包含一个记录类型键项在子句内指明的成分标识符和记录类型键项是键项该键项由所在系类型的成员记录类型的源记录类型的分类控制键所组成如果键项前面直接缀以或则键项的方向分别定义为升

45、序或降序如果一个键项前面直接附有另一个键项则键项的方向定义为键项方向如果子句中没有指明记录类型键项则此子句中的所有键项定义为公共键项否则记录类型键项和键项一起定义为子句的公共键项它在子句的顺序位置小于记录类型键项顺序位置系类型的每个子句应包含相同数目的公共键项在一个系类型内的子句的子句中处以相同顺序位置的所有公共键项应有相同的方向且或应是记录类型键项或应指定有相同数据类型的成分类型一般规则当子句的成分标识符为记录出现值所引用时则成分标识符的上下文数据库键是此记录具体值的数据库键在一个子句中键项是以降序的次序陈述根据一个键项的方向是升序还是降序此键项的值分别从最低到最高或从最高到最低排序情况如果

46、键项是成分标识符则此键项的顺序按小于或大于关系条件定义这依赖于此键项是升序还是降序来定义如果键项是记录类型键项则此键项的顺序是以所在系类型的排序序的记录类型顺序中所指明的记录名顺序来定义当语句语句语句或语句的执行引起所在系类型的一个出现值包含所有键项值均相等的两个或多个成员记录时则键重复指明所要做的动作情况如果指明则违反子句如果指明或则有相同键项值的成员记录应分别按时序或逆时序排序该时序是以最近时间为基础此时语句语句语句或语句把一个给定成员记录插入到系的具体值中或者语句在一个给定成员记录中指明一个或几个键的值一个语句指明一个成员记录中一个或多个键项的值等于以时序方式在该记录所建立新位置中那些键

47、项的当前值如果指明则对于所有键项具有相同值的成员记录应按实现者定义的顺序排序如果没有指明键重复则所需动作由所在系类型的序重复所控制子句功能指明系类型每个具体值成员记录的一个有效性条件格式子句条件语法规则子句的源记录类型是包含子句的成员记录类型如果子句所在系类型是一个非奇异系类型则此子句的目标记录类型是所在系类型的主记录类型如果一个子句所在系类型是一个奇异系类型则此子句没有目标记录类型如果源记录类型与目标记录类型相同则在条件中的每个成分标识符应包含一个限定符以指明是还是在条件中的任何成分标识符包含一个成分名该成分名定义在子句的源记录类型和如果有目标记录类型中情况如果条件中一个成分标识符包含指明一

48、个记录名的限定符则此记录名应是源记录类型或是如果有目标记录类型的记录名此成分标识符的上下文记录类型是该记录类型如果条件中一个成分标识符包含一个指明的限定符则此成分标识符应有一个目标记录类型而且此成分标识符的上下文记录类型是该记录类型如果条件中一个成分标识符包含一个指明的限定符则此成分标识符的上下文记录类型是源记录类型如果条件中一个成分标识符不包含限定符则此成分标识符的成分名应在记录类型或目标记录类型如果有中定义此成分标识符的上下文记录类型就是该记录类型一般规则对一个系出现值求其子句的条件时在此条件中如果成分标识符的上下文数据库键是该系具体值的主记录具体值的数据库键则它的上下文记录类型是系的主记

49、录类型而在此条件中如果成分标识符的上下文数据库键是该系具体值的成员记录具体值的数据库键则它的上下文记录类型是系的成员记录类型如果数据库包含所在系类型的一个出现值且对系主记录出现值如果有的话和此系出现值一个成员的源记录类型出现值求值时其系类型的出现值中条件为假则违反子句成分标识符功能引用一个成分或数据项格式成分标识符型成分标识符型成分标识符型成分标识符限定符成分名下标型成分标识符成分名下标限定符限定符记录名语法规则成分标识符的上下文记录类型是在直接包含下标产生式符号的语法规则中指明如果成分标识符包含一个限定符则如果此限定符包含一个记录名则记录名应指明上下文记录类型如果此限定符指明则成分标识符应包含在一个系类型中并且此系类型的主记录类型应是上下文记录类型如果此限定符指明则成分标识符应包含在子句中并且此子句的成员记录名指明上下文记录类型成分名应指明上下文记录类型的一个成分类型此成分类型是源成分类型如果成分标识符包含下标则源成分类型应定义一个数组此下标的上下文子句是所在源成分类型中的子句下标中的每个操作数应是一个字值一般规则成分标识符的上下文数据库键是在直接包含成分标识符产

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 标准规范 > 国家标准

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1