IMS DB – 逻辑数据库

IMS DB – 逻辑数据库


IMS 数据库有一个规则,即每个段类型只能有一个父段。这限制了物理数据库的复杂性。许多 DL/I 应用程序需要一个复杂的结构,允许一个段有两个父段类型。为了克服这个限制,DL/I 允许 DBA 实现逻辑关系,其中一个段可以同时具有物理和逻辑父级。我们可以在一个物理数据库中创建额外的关系。实现逻辑关系后的新数据结构称为逻辑数据库。

逻辑关系

逻辑关系具有以下属性 –

  • 逻辑关系是逻辑上而非物理上相关的两个段之间的路径。

  • 通常在不同的数据库之间建立逻辑关系。但是在一个特定数据库的段之间可能存在关系。

下图显示了两个不同的数据库。一个是学生数据库,另一个是图书馆数据库。我们在来自 Student 数据库的 Books Issued 段和来自 Library 数据库的 Books 段之间创建逻辑关系。

标准和图书馆数据库

这是创建逻辑关系时逻辑数据库的外观 –

逻辑数据库

逻辑子段

逻辑子段是逻辑关系的基础。它是一个物理数据段,但对于 DL/I,它看起来好像有两个父级。上例中的 Books 段有两个父段。已发行图书段是逻辑父级,图书馆段是物理父级。一个逻辑子段出现只有一个逻辑父段出现,一个逻辑父段出现可以有多个逻辑子段出现。

逻辑孪生

逻辑双胞胎是逻辑子段类型的出现,它们都从属于逻辑父段类型的单个出现。DL/I 使逻辑子段看起来类似于实际的物理子段。这也称为虚拟逻辑子段。

逻辑关系的类型

DBA 在段之间创建逻辑关系。为了实现逻辑关系,DBA 必须在涉及的物理数据库的 DBDGEN 中指定它。有三种类型的逻辑关系 –

  • 单向
  • 双向虚拟
  • 双向物理

单向

逻辑连接从逻辑子节点到逻辑父节点,不能反过来。

双向虚拟

它允许双向访问。物理结构中的逻辑子节点和相应的虚拟逻辑子节点可以看作是成对的段。

双向物理

逻辑子节点是物理存储的从属,从属于它的物理父节点和逻辑父节点。对于应用程序来说,它的出现方式与双向虚拟逻辑子节点相同。

编程注意事项

使用逻辑数据库的编程注意事项如下 –

  • 访问数据库的 DL/I 调用也与逻辑数据库保持一致。

  • 程序规范块指示我们在调用中使用的结构。在某些情况下,我们无法确定我们正在使用逻辑数据库。

  • 逻辑关系为数据库编程增加了一个新维度。

  • 使用逻辑数据库时必须小心,因为两个数据库集成在一起。如果您修改一个数据库,则相同的修改必须反映在另一个数据库中。

  • 程序规范应指明允许对数据库进行哪些处理。如果违反处理规则,您会得到一个非空白状态代码。

连接段

逻辑子段始终以目标父级的完整串联键开始。这称为目标父级连接密钥 (DPCK)。您需要始终在逻辑子级的段 I/O 区域的开始处对 DPCK 进行编码。在逻辑数据库中,级联段在不同物理数据库中定义的段之间建立连接。连接段由以下两部分组成 –

  • 逻辑子段
  • 目的地父段

逻辑子段由以下两部分组成 –

  • 目标父级连接密钥 (DPCK)
  • 逻辑子用户数据

逻辑孩子

当我们在更新期间处理连接段时,可以通过一次调用在逻辑子级和目标父级中添加或更改数据。这也取决于 DBA 为数据库指定的规则。对于插入件,在正确的位置提供 DPCK。对于替换或删除,不要更改连接段任一部分中的 DPCK 或序列字段数据。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁