《数据库系统概论IMS的数据模式》由会员分享,可在线阅读,更多相关《数据库系统概论IMS的数据模式(37页珍藏版)》请在金锄头文库上搜索。
1、 第三章第三章 层次数据库层次数据库 支持层次模型的数据库系统为层次数据库系统。这一章我们通过介绍一个典型的层次数据库系统IMS来介绍层次方法的基本特征。 3.1 IMS 概 述 一、IMS的发展历程 二、IMS的系统结构 IMS的系统结构如图3-1。P63 1、IMS是宿主语言系统。某种主语言加上DL/1语句组成了IMS的应用程序。 2、用户应用程序所使用的数据的逻辑结构描述称为程序说明块PSB(Program Specification Block),它是一组通信块PCB(Program Communication Block)的集合。 3、IMS中对数据逻辑结构、物理存储组织和工作环境的
2、描述叫做数据库描述DBD(Data Base Description) 4、IMS控制程序即数据库管理系统DBMS,它常驻内存部分约220K,若带上远程通信(DB/DC)还要再加256K. 3.2 IMS 的数据模式的数据模式 3.2.0 概 述 IMS 中数据不可分割的最小单位是字段(Field),若干字段组成片段(Segment).片段是IMS中应用程序对数据库访问的基本单位. IMS的基本数据结构是由若干相关联的片段组成的一个层次结构,或称为一棵树.一个IMS的整体数据模型是若干棵树的集合. 由树的定义可知,一棵树有且仅有一个根片段,除根以外的片段有且仅有一个双亲片段.片段之间上下的关系
3、称为双亲和子女,它表示实体之间一对多的联系.D# DN LGRT1系DE# PN S教授 P2助教AE# AN S研究生 GG# GN GR34图 3-2 GRT数据库模型 3.2.1 物理数据库 一、基本概念一、基本概念 1、物理数据库记录型PDBR(Physical Data Base Record Type). 2、一个数据库记录。 3、一个物理数据库。 4、IMS中的一个数据库。 5、IMS中对一个PDBR型的层数等的限制 。 二、二、IMS的术语和一般系统中这些名词含义的区别的术语和一般系统中这些名词含义的区别 1、IMS中描述一个实体的是片段,在DBTG中是记录。在IMS中一个数据
4、库记录是一棵树。 2、IMS中的物理数据库,“物理”二字的含义和通常的概念不同。 3.2.2 IMS的数据定义的数据定义数据库描述数据库描述DBD IMS中每一个物理数据库PDB及向存储结构的映象用数据库描述DBD来定义。因此,DBD的集合相当于模式加上一部分内部映象定义。 一、DBD语句 1、 DBD 2、DATASET 3、SEGM 4、LCHILD 5、FIELD 6、XDFLD 7、DBDGEN 8、FINISH 二、DBD实例描述(以图3-2的GRT数据库为例) 1. DBD NAME=GRT,ACCESS=HDAM 2. DATASET DD1=GRTHDAM,DEVICE=333
5、0,BLOCK=1024 3. SEGM NAME=D,BYTES=29,FREQ=20,PTR=T 4. FIELD NAME=(D#,SEQ,U),BYTES=3,START=1,TYPE=C 5. FIELD NAME=DN,BYTES=25,START=4,TYPE=C 6. FIELD NAME=L,BYTES=1,START=29,TYPE=C 7. SEGM NAME=P,BYTES=44,FREQ=30,PTR=T,PARNET=D 8. FIELD AME=(E#,SEQ,U),BYTES=4,START=1,TYPE=C 9. FIELD NAME=PN,BYTES=20,
6、START=5,TYPE=C10. FIELD NAME=S,BYTES=20,START=5,TYPE=C11. SEGM NAME=G,BYTES=25,FREQ=40,PTR=T,PARNET=P12. FIELD NAME=(G#,SEQ,U),BYTES=4,START=1,TYPE=C13. FIELD NAME=GN,BYTES=20,START=5,TYPE=C14. FIELD NAME=GR,BYTES=1,START=25,TYPE=C15. SEGM NAME=A,BYTES=44,FREQ=30,PTR=T,PARNET=D16. FIELD NAME=(E#,SEQ
7、,U),BYTES=4,START=1,TYPE=C17. FIELD NAME=AN,BYTES=20,START=5,TYPE=C18. FIELD NAME=S,BYTES=20,START=25,TYPE=C19. DBDGEN20. FINISH21. END 三、DBD 生成的过程DBD生成作业控制语句DBD生成程序 DOS/VS 源语句库SSLDBD CIL 图 3-4 DBD生成的过程 3.2.3 层 次 序 列 层次序列(Hierarchical Sequence)的概念是IMS中一个重要的概念。 1、片段的层次路径 2、片段值的层次序码 3、层次序列 3.3 IMS的外模式
8、的外模式程序说明块程序说明块PSB 一、子结构的概念DPGAABCEDFPDBR1PDBR2图3-5 应用程序的数据视图 二、程序说明块PSB (一)物理数据库和PSB的关系PDB1PCB11 PSBA-应用程序APCB12PCB1iPCB21PCB22PCB2jPCBn1PCBn2PCBnkPCB2PCBnDBPSB-B -应用程序BPSB-C -应用程序C.图3-6 IMS中数据库,物理数据库和PSB的关系 三、三、PSBPSB的控制语句的控制语句 1. PCB: 2. SENSEG: 3. SENFLD: 4. VIRFLD: 5. PSBGEN: 四、实例描述四、实例描述 1. PCB
9、 TYPE=DB,DBDNAME=GRT,KEYLENGTH=11 2. SENSEG NAME=D,PROCOPT=G 3. SENFLD NAME=P, PARENT=D,PROCOPT=G 4. VIRFLD NAME=G, PARENT=P,PROCOPT=G 5. PSBGEN LANGUAGE=COBOL,PSBNAME=DPG 6. END 五、定义和建立一个五、定义和建立一个IMS数据库的步骤数据库的步骤 1、DBD描述和生成定义模式和模式到存储模式的映射。 2、PSB描述和生成定义外模式。 3、建立ACB建立应用程序运行的控制信息。 4、利用DBDGEN以后,系统输出信息中建
10、议的参数定义VSAM数据集。 5、加载物理数据库 3.4 IMS 的数据操纵的数据操纵 3.4.1 概概 述述 IMS的数据子语言为DL/1.它是宿主型的数据操纵语言,所用的宿主语言有COBOL,PL/1,汇编语言等. 一、应用程序使用一、应用程序使用DL/1的接口方式的接口方式 1、高级编程接口(HLPI) 2、CALL调用 二、二、DL/1语言对数据库的存取类型语言对数据库的存取类型 1、直接存取 2、顺序存取 3.4.2 3.4.2 DL/1 DL/1 语语 句句 一、与存取片段相关的因素一、与存取片段相关的因素 1、当前位置 2、命令参数 二、二、DL/1 命令介绍命令介绍 (一 )、
11、GET UNIQUE(GU) 1、格式: GU 限定条件 2、功能 3、举例 例1.1 GU 例1.2 GU D 例1.3 GU D(D# =D05) P(S=DB) (二)、GET NEXT(GN) 1、格式: 2、功能: 3、举例 例2.1 GU D(D#=D05) P(S=DS) G next GN G GOTO next 例 2.2 GU D(D# =D05) next GN D(D# =D05) P(S=DS) G GOTO next(三)、GET NEXT IN PARENT(GNP) 1、格式: 2、功能: 3、举例 例3.1 GU D(D# =D05) P(PN =WP) G
12、next GNP G GOTO next(四)、INSERT(ISRT) 1、格式: 2、功能: 3、举例 例4.1 ISRT D(D# =D05) P(E# =E117) G (五)、REPLACE(REPL) 1、格式:REPL 2、功能: 3、举例 例5.1 把D05系,E117教授的专长改为信息系统分析。 GU D(D# =D05) P(E# =E117) 用主语言在工作区中把片段P的S字段值由DB改为ISA REPL(六)、DELETE(DLET) 1、格式:DLET 2、功能: 3、举例 例6.1 GU D(D# =D05) P(E# =E117) DLET 例6.2 GU D(D
13、# =D05) DLET (七)、LOAD LOAD命令用于把片段加载到一个空数据库中。 (八)、CHECKPOINT 1、作用: 2、举例: 例8.1 CHECKPOINT ID (CHKP0007) (九)、SCHEDULE 1、作用: 2、格式: SCHEDULE PSB(PSB名) (十)、TERMINATE 1、作用: 2、格式: TERMINATE PSB (PSB名) 3.4.3 应用程序设计应用程序设计 一、批处理应用程序设计的运行环境 DOS/VSIMS主控模块应用程序(HLPI 接口)存取方法DL/1存取模块DL/1日志模块数据库缓冲区数据库日志ABC 图 3-10 批处理
14、应用程序的运行环境 二、应用程序结构二、应用程序结构 应用程序的结构如图3-11所示。 DIB (IMS的返回信息)I/O工作区(进出DB的片段)程序入口语句 DL/1 语句 检索 插入 修改 删除一般处理语句 .终止语句控制模块 存取模块 IMS数据部过 程 部图 3-11 应用程序结构 三、三、 高级编程接口高级编程接口HLPI 该不分介绍的是COBOL语言的HLPI。 1、HLPI 命令的格式: EXEC DL1 命令名 任选项和参数 END-EXEC 主要的任选项有: SEGMENT (片段名) 2、举例 EXEC DL1 GET UNIQUE SEGMENT (D) WHERE (D
15、# =D05) SEGMENT (P) INTO (PIO) WHERE (S=DB) END-EXEC INTO (变量名) FROM(变量名) 3.5 IMS 的数据库组织和存取方法 3.5.1 概 述 一、层次模型的存储结构一、层次模型的存储结构 1、层次模型构架 数据库的存储结构不同于一般数据的存储结构,它反映数据之间的联系。在层次数据库中,数据之间具有层次联系。ABC A1 B1 B4 B6 C3 C5 C7 C14 C2 C9 C4 C6 C8(a )( b) 图 3-12 2、实现层次数据库的存储结构的方法、实现层次数据库的存储结构的方法 (1). 邻接法邻接法:按自顶向下、自左
16、向右的顺序(即层次序列的顺序)排列.A1 B1 C3 C5 C7 C14 B4 C2 C9 B6 C4 C6 C8 A2 图 3-13 ( (2). 2). 链接法链接法 .子女-兄弟指引元法A1 B1 B4 B6 *A2 C3 C5 C7 C14 *C2 C9 * C4 C6 C8 *图 3-14 .层次序列法 A1 C14 C7 C5 C3 C9 C2 C8 C6 C4 B6 B4 B1图 3-15 二、二、IMS数据库存储结构数据库存储结构 1、IMS提供的数据库存储组织 (1). 层次顺序HS(Hierarchical Sequential) .层次顺序存取方法HSAM (Hierar
17、chical Sequential Access Method) .层次索引顺序存取方法HISAM (Hierarchical Indexed Sequential Access Method) (2). 层次直接HD(Hierarchical Direct) .层次直接存取方法HDAM (Hierarchical Direct Access Method) .层次索引直接存取方法HISAM (Hierarchical Indexed Direct Access Method) 2、各种存储组织与数据库的接口、各种存储组织与数据库的接口IMS Control ProgramHSAM HISAM
18、 HDAM HIDAMSAMISAM与OSAM或VSAMOSAM或VSAMHISAM与OSAM或VSAMHSAM DBHISAM DBHDAM DBHIDAM DB图 3-16片段码 删 除 标 志兄 弟 子 女 用 户 数 据向前向后向前向后 3、IMS中一个片段在存储组织中的结构中一个片段在存储组织中的结构 (1). 存储记录 (2). 系统数据 (3). 用户数据Prefix图 3-17 3.5.2 HSAM(层次顺序存取方法)D01 D04 P G G G P G E103 G08 G11 G31 E117 G05D05 G P A A AG17 E134 E204 E213 E237
19、图 3-18存储记录用二进制0填充 课 间 休 息 3.5.3 层次索引顺序存取HISAM HISAM数据库对根片段用索引的方法组织,从属片段用邻接的方法,同时也要用指引元加以补充。 G08 G11 G31 E117 G05 G17 E134 E204 D05 E103 D09 KSDS ESDS索引部分 图 3-19Key-Sequential Data Set Entry- Sequential Data Set 3.5.4 层次直接存取方法HDAM DDAM数据库对根片段用杂凑(hash)方法组织,一个数据库记录的所有片段用子女-兄弟指引元或者层次序列指引元链接。 HDAM用VSAM支持
20、时是用ESDS数据库来存储的。ESDS数据库分为根片段寻址区和益处区两部分(图3-20)。 1、碰撞链的概念 2、插入一个新片段 3、删除一个片段 图3-20给出了用HDAM组织图3-3数据库记录的情况。 3.5.2 层次索引直接存取方法层次索引直接存取方法HIDAM HIDAM是利用索引的层次直接组织.一个HIDAM组织的数据库可分为索引数据库(Index DB) 和数据数据库两不分 (Data DB).D03 D08 D01 D02 D05 D01 D05 E103 G08 G11 G31 E117 G05 G17 E134 E204 E213 E237 索引数据库(KSDS)数据数据库(
21、ESDS)图 3-21 3.6 逻辑数据库 3.6.1 逻辑数据库的基本概念逻辑数据库的基本概念 一、一、 逻辑数据库概念的引入逻辑数据库概念的引入CNAME CPRICE CDESC 商品名 价格 规格图 3-22COMODITYSNAME SMGE SDDCNAME DATE STATUS CPRICE CDESE SHOP(商店)CHECKING图 3-23CHAME CPRICE CDESESNAME SMGR SADD DATE STATUSCheckingShopComodity PDPComodity逻辑双亲物理双亲逻辑指引元图 3-24 二、逻辑数据库的定义二、逻辑数据库的定义
22、 三、关于三、关于LDB概念的几点说明概念的几点说明 四、由四、由PDB构造构造LDB时,必须遵循的原则时,必须遵循的原则 3.6.2 单向逻辑关系和双向逻辑关系单向逻辑关系和双向逻辑关系 一、基本概念一、基本概念 1、单向逻辑关系 2、双向逻辑关系 二、偶对概念的引入二、偶对概念的引入 1、实偶对 2、虚偶对 三、使用三、使用LDB的优点的优点 1、提供了减少冗余度的一种手段。 2、可以处理多对多的实体联系 3、可将一个复杂的网状结构表示成树结构 4、使用户可以用不同的方式看待数据。 3.6.3 逻辑数据库的描述 一一. 描述逻辑数据库的语句描述逻辑数据库的语句 1. DBD NAME= ACCESS = LOGICAL 2. DATASET = LOGICAL 3. SEGM NAME = PARENT= SOURCE =(,) SOURCE =(,) (,) 4. DBDGEN 5. FINISH 6. END 第三章结束