信息管理系统(数据库)
时间:2022-12-02 04:30:01 | 来源:信息时代
时间:2022-12-02 04:30:01 来源:信息时代
信息管理系统 : IBM公司研制的通用层次数据库管理系统。由North American Rockwell公司和IBM公司联合设计的 GUAM(Generalized Update Access Method)和RATS(Response And Terminal System)演变而来。
1968年底IBM公司推出了IMS-1,它支持HSAM和HISAM存储结构;1971年3月,IBM公司又推出IMS-2,它在IMS-1的基础上增加了HDAM和HIDAM存储结构和逻辑数据库; 1974年,推出了在OSNS下运行的IMS/VS,它增加了批处理检查点、重启动、并发操作以及辅助索引等功能。
IMS采用层次数据模型,有两个可用版本: 一个是仅含数据库的版本,一个是数据库/数据通信版本。前者提供了运行批处理应用程序的功能,后者除提供标准的数据库处理功能之外还提供了数据通信功能。IMS是以DL/1语言为核心的宿主语言系统,允许使用的宿主语言有COBOL,PL/1,IBM360/370汇编语言等。用户把DL/1语言嵌入到某种宿主语言中,实现对数据库的存取; 用户通过高级语言编程接口(HLPI)和调用(CALL)方式使用DL/1接口,可在批处理、联机和多分区(MPS)批处理环境下运行。IMS系统是一个三级结构的层次数据库管理系统,其结构如图1所示。
图1 IMS的三级结构
在IMS中,应用程序由宿主语言和DL/1语言写成,它通过I/O区来完成和数据库的数据交互。
程序说明块(PSB)是用户使用的数据的逻辑结构描述,它是一组程序通信块(PCB)的集合,PSB和PCB都是用汇编语言宏语句编写的控制块。PSB用于描述每个应用程序的数据结构和逻辑报文目的地(destinations),指出应用程序所能处理的数据库片段。每个应用程序至少有一个PSB,一个联机程序可以使用一个以上的PSB,一个PSB可以为一个以上的应用程序使用。IMS中有两种类型的PCB,一种是用于数据库的数据库程序说明块(DBPCB),一种是用于数据通信的数据通信说明块(DCPCB)。DBPCB用于描述用户数据库视图,它是物理或逻辑数据库的层次结构的子结构,用户将要处理的每个层次数据结构都具有一个用于描述它的DBPCB;而DCPCB则用于描述报文处理和批处理中报文的源和目的地,它指出了逻辑终端的名字及其他情况。
物理数据库描述(database description,DBD)用以描述数据逻辑结构及其物理存储组织方式,它记录了数据库层次结构、文件组织、存放数据库的设备及逻辑联系等内容,这些逻辑联系可以是同一物理数据库内部的联系,也可以是不同物理数据库之间的联系。IMS数据库是若干物理数据库的集合,用于实际存储数据及其联系。上述各部分均在IMS控制程序的控制下工作。
IMS控制程序即IMS数据库管理系统,它的核心是一个DB/DC(数据库/数据通信)系统,负责初始化和控制主要的IMS功能,如DL/1、远程通信和报文调度等。其中,DB的基本功能是: 负责控制和管理IMS应用程序、I/O工作区、应用程序所使用的逻辑结构描述及物理存储组织描述等;DC部分则提供了用户自定义报文和终端上的报文格式服务,并控制程序发送和接受报文等。
在运行应用程序时,首先要为准备存取的每个数据库片段型专门建立一个I/O区,作为应用程序和数据库之间传递数据的工作区,并将对应的PSB及其所属的PCB调入内存,作为应用程序和IMS之间的通信区,然后,根据DBD中对数据库的逻辑结构和物理存储组织的描述,以及应用程序中嵌入的DL/1数据操作语句,IMS控制程序通过底层存取方法来实现具体的数据存取操作。
IMS用片段(segment)来描述实体,用字段(field)来描述实体的属性,若干字段组成一个片段,字段是数据不可分割的最小单位,片段是应用程序对数据库访问的基本单位。在这种层次结构中,根据片段型的一个值及其所有从属片段值,以及它们之间的层次关系,构成了一个物理数据库记录(PDBR)。一个物理数据库指物理数据库记录型所对应的所有物理数据库记录的有序集合。物理数据库记录型指IMS中一个或多个相关片段型构成的层次序列结构,它是由相关片段型组成的一棵树型结构。IMS物理数据库包括数据库名、构成该物理数据库的片段型以及组成该片段型的字段等,它还描述了片段型的层次排列、数据存储的方式,以及在这种存储中数据之间存在的物理联系等内容。
IMS中数据存储的基本单位是块(block)。块是磁盘存储器存储数据以及读写数据的基本单位,每个块可以存储很多字节的信息。磁盘存储空间分为等长的块,若干个块组成为一个数据集。一个块也称为一个存储记录,它可以存放多个片段值,一个片段值不能跨越两个存储记录。片段值是IMS的专门术语,IMS的专门术语与层次数据模型的术语之间的对应关系见表1。
每一个片段值在存储组织中分为系统数据和用户数据两个部分。系统数据称为数据的前缀(prefix),前缀包括片段键、删除标志和指针。片段键是IMS为数据库模式中的每个片段型按照前序遍历规则规定的一个键,作为系统识别片段型的一种内部编码。图2中片段型DEPT、COURSE、TEACHER的片段键分别为1、2和3。
表1 IMS术语和层次数据模型术语之间的对应
层次数据模型术语 | IMS术语 |
记录型 | 片段型 |
记录 | 片段(值) |
数据域 | 域 |
健 | 顺序域 |
层次模式 | 物理数据库记录型 |
外模式 | 逻辑数据库记录型 |
图2 片段型示例
物理数据库记录型的一个根片段值及其所有后裔片段值构成了该物理数据库记录型的一个值,称之为一个数据库记录或实例。图3是教学数据库物理数据库记录型的一个实例。
图3 片段示例
与物理数据库相对应的另一个重要概念是逻辑数据库,它是指逻辑数据库记录(LDBR)型所对应的逻辑数据库记录值的集合。在IMS中,“逻辑数据库”一词有两种不同的含义: 一种是局部逻辑概念,其中的LDBR型是片段型的层次排列,用于构建用户外视图,即子模式,这种层次结构是由PDBR型删去部分片段型及其所有从属所得的子集; 另一种是全局逻辑概念,是用逻辑联系联合一个或多个物理数据库中的部分片段型而构成的一个新的层次结构,为用户提供了新的数据库结构视图。与定义物理数据库不同,定义逻辑数据库时是利用已定义好的物理数据库,所以,在逻辑数据库定义中仅定义数据结构,不需要定义其存取方法。这种形式的逻辑数据库主要是为了解决层次数据库的数据冗余问题和处理实体间的多对多联系,属于模式的范畴。由上可知,IMS提供了结构上的分离,因而整个系统具有一定的数据独立性。
IMS的数据库语言由数据定义语言(DDL)和数据操纵语言(DML)组成,其中,DDL用于定义数据库的各种逻辑结构和物理结构,如树型、片段型、字段型等;DML用于提供作用于各种数据结构之上的数据操作,它还包含了相应的数据控制和保护功能。
为了对数据库中的数据提供一定的数据保护,IMS在存取控制、数据完整性控制以及并发控制方面均采取了一些措施。在存取控制方面,IMS要求应用程序在对数据库操作时必须通过PCB,PCB提供如下两级控制方法: 一是应用程序不能存取数据库中的非感知段(即未包含在PCB中的片段),但是要注意的是,若祖先片段被删除,则其下属片段不管是被感知还是未感知均要被删掉; 二是在PCB中对感知的段可定义的操作时,用户的操作必须满足PCB所规定的处理方式。此外,在以终端方式操作数据库时,还可通过规定某些终端在请求应用程序和系统命令时必须提供口令等方式来进行访问控制。在完整性控制方面,IMS中规定: 如果在DBD中设定的片段的排序键是唯一的,则系统保证在一个双亲值下该片段没有两个片段值具有相同的排序键值; IMS数据库的层次结构本身就是数据完整性的一种约束,例如,它约定每一个下属片段值只有在双亲片段存在时才能插入数据库。在并发控制上,IMS规定: 如果某用户对一片段执行GH类操作(检索一个片段以用于删除或更新),则该片段值在此操作期间就会被加上一个专用锁而不能被共享,当该片段的修改操作完成后或该用户又对其他片段进行查找,该片段的专用封锁就会立即解除。通过在数据库定义和系统内部规定中采用以上各种措施,IMS为数据库中数据的安全性、完整性和一致性提供了一定的保障。
IMS是IBM公司最早的事务和层次数据库管理系统,产生于20世纪60年代末,如今已经发展到IMS V9,是所有的数据库管理系统中用得最多和最早商品化的系统之一,它曾在我国第三次人口普查、工业普查及其他一些领域中发挥过巨大的作用。目前,这个具有几十年历史的数据库产品仍然应用于银行业等领域的一些系统中。