18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 层次数据库语言(数据库)

层次数据库语言(数据库)

时间:2022-12-13 16:30:01 | 来源:信息时代

时间:2022-12-13 16:30:01 来源:信息时代

    层次数据库语言 : 用于定义层次数据库的逻辑数据结构和物理存储结构、对层次数据库进行操纵的语言。包括:
1.外模式数据定义语言
外模式数据定义语言(subschema data definition language)的功能是描述层次数据库的外模式。数据库的外模式描述各个用户所需数据的逻辑数据结构。外模式是应用程序的数据视图,一个数据库可以有多个外模式,它们之间可以重叠。在IMS中,一个外模式是一组逻辑数据库记录型的集合,即程序说明块(PSB)。IMS提供了五种PSB定义语句:
(1)程序通信块(PCB)语句: 负责定义应用程序和数据库的接口,包括PCB的类型(TYPE)和对应的物理数据库模式(DBDNAME)等。
(2) SENSEG语句:负责定义外模式的片段型,包括片段型名(NAME)、父片段型名(PARENT)和该片段所允许的处理方式(PROCOPT)等。
(3) SENFLK语句: 负责定义外模式片段型的域,当外模式片段型所包含的域的顺序和个数与相应物理数据库记录型的片段不一致时,需要使用此语句来定义。
(4) PSBGEN语句: 负责定义相应应用程序的宿主语言类型(LANGUAGE)和PSB名(PSB-NAME)等。
(5) END语句: 标明PSB的定义结束。
2.模式数据定义语言
模式数据定义语言(schema data definition language)是数据库管理员用来定义数据库全局逻辑数据结构的描述语言。用模式数据定义语言写出的定义一个数据库的全部语句称为一个模式。IMS的数据库模式是一组物理数据库记录型的集合。物理数据库记录型是由若干相关联的片段型组成的 一棵树结构。
如图1所示,表示一个教学数据库的物理数据库记录型。


图1 教学数据库的物理数据库记录型


在IMS中,每个物理数据库记录型由一个DBD定义。DBD定义物理数据库记录型的逻辑结构及其存储结构的映像。IMS提供如下七种的语句来定义DBD:
(1) DBD语句:DBD是第一条语句,用来定义物理数据库名字(NAME)和物理数据库的存取方法(ACCESS)等。
(2) DATASET语句:定义数据库中数据文件名(NAME)、存储设备(DEVICE)和物理块大小(BLOCK)。
(3) SEGM语句: 定义数据库的一个片段型,包括片段名(NAME)、片段长度(BYTES)、片段值的最大数目(FREQ)、存储组织中的指针类型(PTR)以及父片段型(PARENT)。
(4) FIELD语句: 定义片段型中的域,包括域名(NAME)、域长(BYTES)、在片段内的起始位置(START)和数据类型(TYPES)。顺序域用SEQ标记,其唯一性标记为U和M(U表示不允许重复值出现,M表示允许出现重复值)。
(5) DBDGEN语句: 表示DBD生成结束。
(6) FINISH语句: 检验DBD生成成功与否。
(7) END语句: 表示DBD定义结束。
例如,下面的程序定义了一个教学数据库的模式:
DBD NAME=TS,ACCESS=HDAM
/*定义物理数据库总体逻辑结构的名称,存取方式*/
DATASET NAME=TSF,
DEVICE=3330,BLOCK =1024
/*定义文件名称,存储设备,物理块大小*/
SEGM NAME=DEPT,BYTES=35,FREQ=30
/*片段型的名称,长度,片段值的最大数目*/
FIELD NAME=(D#,SEQ,U),BYTES=3,
START=1,TYPE=CHAR
/*域名,长度,起始位置,数据类型*/
FIELD NAME=TITLE,BYTES=22,
START=4,TYPE=CHAR
FIELD NAME=OTHER,BYTES=10,
START=26,TYPE=CHAR
SEGM NAME=COURSE,BYTES=30,
FREQ=90,PARENT=DEPT
FIELD NAME=(C#,SEQ,U),BYTES=3,
START=1,TYPE=CHAR
FIELD NAME=TITLE BYES=22,
START=4,TYPE=CHAR
FIELD NAME=FORMAT,BYTES=5,
START=26,TYPE=INTEGER
SEGM NAME=TEACHER,BYTES=40,
FREQ=100,PARENT=DEPT
FIELD NAME=(NAME,SEQ,U),BYTES=8,
START=1,TYPE=CHAR
FIELD NAME=AGE,BYTES=2,START=9,
TYPE=INTEGER
FIELD NAME=UNIVERSITY,BYTES=30,
START=11,TYPE=CHAR DBDGEN
FINISH END
3.数据操纵语言
数据操纵语言(data manipulation language,DML)是层次数据库系统用来对数据库中的数据进行存储、检索和修改的语言。层次数据库数据操纵语言是过程式语言,要求用户熟悉层次数据库的结构,用户需要用宿主语言编写应用程序来调用数据操纵语句,实现对数据库的访问。IMS的数据操纵语言是DL/1,DL/1是面向某种高级语言(称为宿主语言)的数据操纵语言。用户使用宿主语言编写的应用程序,当需要存储数据库时,嵌入DL/1的相应语句。例如,用DL/1语句将数据库数据取入内存,然后由宿主语言语句对其进行各种运算和处理。又如,用宿主语言语句接受用户输入的数据,对其进行处理,再由嵌套的DL/1语句写入数据库。IMS的宿主语言包括COLBOL、PL/1、汇编语言、C语言等。宿主语言通过高级编程接口和CALL调用两种方式使用DL/1语句,宿主语言与DL/1在指定的程序I/O区进行信息交换。
DL/1语句存取数据库的基本单位是片段,即一条DL/1语句只能处理一个片段。DL/1语句可以分为检索、更新和控制三大类,如表1所示。

表1 DL/1语句


DL/1操作语句功能
检索GU GN
GNP GHU
GHN GHNP
检索某一片段
顺序检索下一个片段
在当前父片段内顺序检索下一片段
同GU,为修改、删除做准备
同GN,为修改、删除做准备
同GNP,为修改、删除做准备
更新ISRT REPL
DELT
插入片段
修改片段内容
删除某个片段及其所有后裔片段
控制LOAD CHKP
SCHD TERM
初始加载一个片段
建立检查点
调度PSB
释放PSB


例如,“检索计算机系开设的数据库课程的片段”相应的GU语句为:
GU DEPT(D#="计算机系")
COURSE(TITLE="数据库")
该GU操作表示按层次顺序读取第一个满足条件的片段。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭