时间:2022-11-30 10:30:02 | 来源:信息时代
时间:2022-11-30 10:30:02 来源:信息时代
网状数据库语言 : 提供了网状数据库的逻辑数据结构的定义和网状数据库的设计、存取、控制和保护功能的计算机语言。主要有模式数据描述语言(schema data description language,模式DDL)、子模式数据描述语言(subschema data description language,子模式DDL)、物理数据描述语言(physical data description language,物理DDL)和数据操纵语言(data manipulation language,DML)。
1. 模式DDL
模式DDL是数据库管理员(DBA)用来定义数据库全局逻辑数据结构的描述语言。用模式DDL写出的定义一个数据库的全部语句称为一个模式。模式DDL包括所有数据元素的名字、特征及其相互关系,还包括有关安全性和完整性的规定。模式DDL由模式节、区域节、记录节和系节组成。模式节用以标明模式,定义模式名; 区域节标识存储区域和其他物理细节; 记录节给出记录的完整描述,包括记录名、记录所在的区域、记录键以及数据的类型和长度等; 系节定义所有的系,定义每个系的系名、系主、系成员、系序以及其他细节。例如供应者和零件数据库的模式可以用该语言描述如下:
SCHEMA NAME IS SUPPLIERS-AND
PARTS //模式节
RECORD NAME IS S; //记录节
(供应者记录S的描述,键是SNO)
RECORD NAME IS P; //记录节
(零件记录P的描述,键是PNO)
RECORD NAME IS SP; //记录节
(供应者-零件记录SP的描述,键是SNO,PNO)
SET NAME IS S-SP; //系节
OWNER IS S;
ORDER IS SORTED BY DEFINED KEYS;
MEMBER IS SP;
INSERTION IS AUTOMATIC;
RETENTION IS FIXED;
KEY IS ASCENDING PNO IN SP;
SET SELECTION IS BY VALUE OF SNO IN S.
SET NAME IS P-SP; //系节
OWNER IS P;
ORDER IS SORTED BY DEFINED KEYS;
MEMBER IS SP;
INSERTION IS AUTOMATIC;
RETENTION IS FIXED;
KEY IS ASCENDING SNO IN SP;
SET SELECTION IS BY VALUE OF PNO IN P.
2. 子模式DDL
子模式DDL是用户或数据库管理员用来描述他们关心的数据库视图的语言。网状数据库系统允许子模式中的某些项不同于模式中的定义,特别是可以改变模式中定义的数据项、记录和系的名字,交换它们的顺序,将几个项组合起来,以及把模式中的组项分成基本项等。子模式DDL的格式与宿主语言密切相关。子模式DDL主要由首部(title division)、映像部(mapping division)和结构部(structure division)三部分组成。首部描述子模式名和相关的模式名;映像部用来重新命名模式中的区域、记录型和系型,定义模式到子模式的转换,给出子模式和模式之间变化了的名字之间的对应关系;结构部是子模式DDL的主要部分,它说明子模式包含的数据库部分的结构和内容,由区域节、记录节和系节组成,它们分别描述子模式所涉及的区域、记录和系。区域节中指出包含子模式的区域的名字,记录节中标识记录的数据项,系节中指出子模式中的系与相应的模式中的系描述条目中不同的地方。
3.物理DDL
物理DDL是用来定义数据的物理存储方式的数据描述语言,由数据库管理员使用,用户一般不接触它。物理DDL是内部的描述,它描述数据在存储介质上的安排和存放,如怎样建立索引以及数据如何压缩和分页等。它由存储模式条目(storage schema entry)、映像描述条目(mapping description entry)、存储区域条目(storage area entry)、存储记录条目(storage record entry)和索引条目(index entry)等五部分组成。存储模式条目用于标识存储模式并指出对应的模式; 映像描述条目定义模式记录和存储记录之间的映像; 存储区域条目、存储记录条目和索引条目分别用于定义存储区域、存储记录和索引。物理DDL和计算机硬件的特性有关,一般的网状数据库系统不作标准化的规定。在DBTG报告中也只提出了设备介质控制语言(device media control language,DMCL)的概念,未定义规范语言。而在1978年的CODASYL DDLC报告中引进了数据存储描述语言(data storage description language,DSDL)。DMCL是在数据库管理系统中用来描述区域和物理设备之间映像的语言,使用它可以把逻辑数据描述映像到物理存储器中。DMCL提供数据库管理员对物理存储设备的管理手段,如指定数据库系统的缓冲区,压缩和分页,指定寻址以及检索方法等。
4. DML DML是网状数据库系统用来对数据库中的数据进行存储、检索和修改的语言。DML嵌入在宿主语言中,并能与宿主语言实现无缝连接。用户需用宿主语言编写应用程序调用DML语句实现对数据库的访问。用户对网状数据库中数据的检索、修改、插入和删除等操作都由DML来完成。宿主语言用于操作内存中的数据,如处理记录内的联系,对取入内存的数据库数据进行运算等。网状数据库管理系统在内存中提供了一个用户工作区UMA作为程序运行环境,它的功能是负责应用程序与系统之间的通信。DML是过程式语言,因此,要求用户熟悉数据库的结构。
数据操纵语言由各种DML语句组成。例如,DBTG的DML语句包括管理区域的OPEN和CLOSE语句,对记录进行操作的FIND、GET、STORE、MODIFY和DELETE语句,关于系序的ORDER语句,关于系成员记录属藉的INSERT和REMOVE语句,保留记录当前状态的KEEP和FREE语句,以及传送记录当前状态字的MOVE语句等。
DBLTG对DBTG提出的许多DML语句名作了修改,例如,将OPEN改成READY,CLOSE改成FINISH,DELETE改成ERASE,INSERT改成CONNECT,REMOVE改成DISCONNECT,以及MOVE改成ACCEPT等。
美国数据语言委员会(CODASYL)下属的数据库任务小组(DBTG)于1969年提出了数据定义语言DDL和操纵语言DML的规范说明。1984年美国国家标准协会(ANSI)提出了一个网状定义语言(network definition language,NDL)的推荐标准。1987年,ISO 8907定义了网状数据库语言(NDL)的国际标准,NDL包括模式定义语言、子模式定义语言和数据操纵语言的语法和语义。