📜  IMS DB-控制块

📅  最后修改于: 2020-11-27 05:16:19             🧑  作者: Mango


IMS控制块定义了IMS数据库的结构以及程序对其的访问。下图显示了IMS控制块的结构。

控制块

DL / I使用以下三种类型的控制块-

  • 数据库描述符(DBD)
  • 程序规范块(PSB)
  • 访问控制块(ACB)

数据库描述符(DBD)

注意事项-

  • 一旦定义了所有段,DBD将描述数据库的完整物理结构。

  • 在安装DL / I数据库时,必须创建一个DBD,因为它是访问IMS数据库所必需的。

  • 应用程序可以使用DBD的不同视图。它们被称为应用程序数据结构,并在程序规范块中指定。

  • 数据库管理员通过对DBDGEN控制语句进行编码创建DBD。

DBDGEN

DBDGEN是数据库描述符生成器。创建控制块是数据库管理员的责任。所有加载模块都存储在IMS库中。汇编语言宏语句用于创建控制块。下面给出的示例代码显示了如何使用DBDGEN控制语句创建DBD-

PRINT    NOGEN
DBD    NAME=LIBRARY,ACCESS=HIDAM
DATASET    DD1=LIB,DEVICE=3380
SEGM    NAME=LIBSEG,PARENT=0,BYTES=10
FIELD    NAME=(LIBRARY,SEQ,U),BYTES=10,START=1,TYPE=C
SEGM    NAME=BOOKSEG,PARENT=LIBSEG,BYTES=5
FIELD    NAME=(BOOKS,SEQ,U),BYTES=10,START=1,TYPE=C
SEGM    NAME=MAGSEG,PARENT=LIBSEG,BYTES=9
FIELD    NAME=(MAGZINES,SEQ),BYTES=8,START=1,TYPE=C
DBDGEN
FINISH
END

让我们了解以上DBDGEN中使用的术语-

  • JCL中执行上述控制语句时,它将创建一个物理结构,其中LIBRARY是根段,而BOOKS和MAGZINES是其子段。

  • 第一个DBD宏语句标识数据库。在这里,我们需要提及DL / I用于访问该数据库的NAME和ACCESS。

  • 第二条DATASET宏语句标识包含数据库的文件。

  • 段类型使用SEGM宏语句定义。我们需要指定该段的PARENT。如果它是一个根段,则提及PARENT = 0。

下表显示了在FIELD宏语句中使用的参数-

S.No Parameter & Description
1

Name

Name of the field, typically 1 to 8 characters long

2

Bytes

Length of the field

3

Start

Position of field within segment

4

Type

Data type of the field

5

Type C

Character data type

6

Type P

Packed decimal data type

7

Type Z

Zoned decimal data type

8

Type X

Hexadecimal data type

9

Type H

Half word binary data type

10

Type F

Full word binary data type

程序规范块(PSB)

PSB的基本原理如下-

  • 数据库具有由DBD定义的单个物理结构,但是处理该数据库的应用程序可以具有该数据库的不同视图。这些视图称为应用程序数据结构,并在PSB中定义。

  • 任何程序一次执行都不能使用多个PSB。

  • 应用程序具有自己的PSB,并且具有相似数据库处理要求的应用程序通常会共享PSB。

  • PSB由一个或多个称为程序通信块(PCB)的控制块组成。 PSB为应用程序将访问的每个DL / I数据库包含一个PCB。我们将在即将到来的模块中讨论有关PCB的更多信息。

  • 必须执行PSBGEN才能为程序创建PSB。

PSBGEN

PSBGEN被称为程序规范块生成器。以下示例使用PSBGEN创建PSB-

PRINT   NOGEN
PCB     TYPE=DB,DBDNAME=LIBRARY,KEYLEN=10,PROCOPT=LS
SENSEG  NAME=LIBSEG
SENSEG  NAME=BOOKSEG,PARENT=LIBSEG
SENSEG  NAME=MAGSEG,PARENT=LIBSEG
PSBGEN  PSBNAME=LIBPSB,LANG=COBOL
END

让我们了解以上DBDGEN中使用的术语-

  • 第一个宏语句是程序通信块(PCB),它描述数据库的类型,名称,键长和处理选项。

  • PCB宏上的DBDNAME参数指定DBD的名称。 KEYLEN指定最长的级联键的长度。该程序可以在数据库中处理。 PROCOPT参数指定程序的处理选项。例如,LS仅表示LOAD操作。

  • SENSEG被称为段级别灵敏度。它定义程序对数据库各部分的访问权限,并在段级别进行标识。该程序可以访问它敏感的段中的所有字段。程序还可以具有字段级别的敏感性。在此,我们定义一个段名称和该段的父名称。

  • 最后一个宏语句是PCBGEN。 PSBGEN是最后一条语句,告诉您没有其他要处理的语句。 PSBNAME定义提供给输出PSB模块的名称。 LANG参数指定编写应用程序所用的语言,例如COBOL。

访问控制块(ACB)

以下列出的是有关访问控制块的注意事项-

  • 应用程序的访问控制块将数据库描述符和程序规范块组合为可执行形式。

  • ACBGEN被称为访问控制块生成器。它用于生成ACB。

  • 对于在线程序,我们需要预先构建ACB。因此,ACBGEN实用程序是在执行应用程序之前执行的。

  • 对于批处理程序,也可以在执行时生成ACB。