1 / 45

第三章 层次与网状数据库系统 层次与网状数据库系统是最早出现的数据库系统,在 七十年代和八十年代初非常流行,在当时的数据库系 统产品中占主导地位。这两类数据库系统被称为第一

C. 第三章 层次与网状数据库系统 层次与网状数据库系统是最早出现的数据库系统,在 七十年代和八十年代初非常流行,在当时的数据库系 统产品中占主导地位。这两类数据库系统被称为第一 代数据库系统,是数据库系统发展史上的一个重要里 程碑。本章简单介绍这两类数据库系统。 第一节 层次数据库系统 第二节 网状数据库系统. C1. 第一节 层次数据库系统 层次数据库系统是基于层次数据模型的数据库系统。 本节首先学习层次数据模型,学习这种数据模型的 三个组成部分,即数据结构、数据操作和数据约束。 然后以 IMS 层次数据库系统为例,学习层次数据库系

jerom
Télécharger la présentation

第三章 层次与网状数据库系统 层次与网状数据库系统是最早出现的数据库系统,在 七十年代和八十年代初非常流行,在当时的数据库系 统产品中占主导地位。这两类数据库系统被称为第一

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C 第三章 层次与网状数据库系统 层次与网状数据库系统是最早出现的数据库系统,在 七十年代和八十年代初非常流行,在当时的数据库系 统产品中占主导地位。这两类数据库系统被称为第一 代数据库系统,是数据库系统发展史上的一个重要里 程碑。本章简单介绍这两类数据库系统。 第一节 层次数据库系统 第二节 网状数据库系统

  2. C1 第一节 层次数据库系统 层次数据库系统是基于层次数据模型的数据库系统。 本节首先学习层次数据模型,学习这种数据模型的 三个组成部分,即数据结构、数据操作和数据约束。 然后以IMS层次数据库系统为例,学习层次数据库系 统的数据定义、数据操纵、存储结构等内容。 1.层次数据模型的数据结构 2.层次数据模型的数据操作和完整性约束 3.IMS概述 4. IMS数据定义 5. IMS数据操纵 6. IMS存储结构

  3. C11 1.层次数据模型的数据结构和M:N联系 层次数据模型的主要数据结构概念是记录和父子联系。 记录: 即一组数据域的集合。 记录型:即结构相同的记录集合。 父子联系型:即两记录型P、S的一对多联系,记为(P,S), P称为父记录型,S称为子记录型, 对P的每个记录,S有多个记录与之对应。 父子联系型实例:由父记录型一个记录及子记录型的所有 相关记录组成。 层次模式:即一组记录型及其父子联系型构成的一棵有向树。 层次数据库模式:即一组层次模式的集合。 层次数据库实例:层次数据库模式的所有记录型和父子联系 型的实例集合,可以用一组层次模式的森 林来表示。 接下页

  4. C11a 每个部门有多个雇员,每个雇员仅属一个部门 EMPLOYEE name ssn bdate address DEPARTMENT dname dunmber mgrname mgrstartdate 1:N PROJECT plocation pname pnumber 1:N 每个部门负责多个项目,每个项目仅属一个部门 (department,employee)父子联系实例 Department 研究部 管理部 employee 张平,王虎 李闯,李微,高锋 (department,project)父子联系实例 Department 研究部 管理部 project 北京,天津 大连,沈阳,长春 接下页

  5. C11b 由于父子联系型的特点是父记录的唯一性,所以层次数据模型 只能直接表示两个记录型之间的1:N联系。但在应用领域中大量 存在着M:N(多对多)联系,而M:N联系并没有父记录的唯一性。 如何用父子联系型描述M:N联系?下边介绍两个方法:  子记录冗余法:  虚拟父子联系法 接下页

  6. C11c 子 重 复 a b a b 描述M:N联系的记录冗余法: 对子记录型的记录实例重复存储, 用多个父子联系型表示两个记录型 之间的M:N联系 F G 父 (project,employee) (employee,project) 形式父 形式父 形式子 形式子 project #1 #2 #3 父子 employee #1 #2 #3 employee 父子 project 父子 employee 父子 project 父子 父子 employee project project的记录可重复地 作为不同的employee记 录的子记录出现 Employee的记录可重复地 作为不同的project记录的 子记录出现 接下页

  7. 描述M:N联系的虚拟父子联系法 构造虚拟记录型, 用父子联系型和虚拟父子联系型表示两个记录型之间的M:N联系 C11d project employee project employee 父 子 父 子 虚子 虚父 epointer 虚子 虚父 epointer ProjectA Project B Project C Project D 虚拟(指针)记录型 ep1 ep2 ep3 ep4 ep5 ep6 ep7 ep8 ep9 ep10 ep11 ep12 EmployeeA Employee B Employee C Employee D Employee E Employee F

  8. C12 2.层次数据库的数据操作和完整性约束 层次数据库的数据操作: 树定位:定位到某树首记录 树间移动:移位到别树首记录 树内记录移动: 按层次路经在记录间移位 层次记录移动: 按层次顺序在记录间移位 对记录的插入删除修改: 层次数据模型的完整性约束 1 非根记录须有父记录 2 若有多个同型父,则子须重复存储 3 若有多个异型父,则实父须唯一 层次数据库系统可能还有它自己的完整性约束, 用户可通过编程实现其它的完整性约束

  9. IMS概述Information Management System IMS是最早的大型数据库管理系统,其数据库模式是多个物 理数据库记录型(PDBR)的集合。每个PDBR对应层次数据模 型的一个层次模式,用一个DBD定义。各个用户所需数据的 逻辑结构称为外模式,每个外模式是一组逻辑数据库记录型 (LDBR)的集合。LDBR是应用程序所需的局部逻辑结构。用 户按照外模式操纵数据。 C13 数据的三级抽象模式 是一组用PCB定义的 逻辑数据库记录型LDBR 外模式 概念模式 内模式 外模式 数据库模式 存储数据库 是一组用DBD定义的 物理数据库记录型PDBR 现代提法 IMS 存储在外存的物理数据库集合 层次数据 记录型 记录 数据域 键 层次模式 外模式 模型术语 IMS术语 片段型 片段 域 顺序域 物理数据库 逻辑数据库 记录型 记录型 数据操纵语言DL/1 宿主语言:汇编,COBOL,PL/1

  10. IMS的数据定义 IMS的数据定义包括数据库模式定义和外模式定义。 IMS的数据库模式是物理数据库记录型的集合。每个物 理数据库记录型对应于层次数据模型中的一个层次模式, 由一个DBD定义。物理数据库记录型到存储数据库的映 射包含在这个物理数据库记录型的DBD定义中。 IMS的外模式是逻辑数据库记录型的集合。每个逻辑数 据库记录型由一个PCB定义。一个逻辑数据库记录型到 IMS数据库模式的映射包含在这个逻辑数据库记录型的 PCB定义中。用户是按照外模式操纵数据的。 下边分别介绍数据库模式定义和外模式定义: 1 数据库模式定义 2 外模式定义 C14

  11. C141 数据库模式定义 IMS的数据库模式是一组物理数据库记录型(PDBR型), 每个PDBR型是由若干相关联的片段型组成的一棵层次树结构。 它的一个根片段值及其后裔片段值构成了该PDBR型的一个值, 即数据库记录或实例。 每个PDBR型通过一个DBD语句群定义其逻辑结构及其存储结 构映像,IMS数据库模式的定义是一组DBD定义的排列。 在DBD定义过程中各片段型出现的次序决定了数据库各片段值 的存储次序,从而会影响到某些DL/1语句的执行结果。要求这 种次序与片段型在PDBR型树的层次顺序(自顶向下,自左向右) 保持一致。 (1)教学数据库的PDBR型及其一个实例. (2)PDBR型的DBD定义, (3)PDBD型各片段型的型码和片段的层次顺序值.

  12. 1系 C1411 Department:d#,title,other 2开设课程 5在冊教员 教学数 据库的 PDBR型 Course:c#,title,format TeacherB:name,age,university 3任课老师 4学生 TeacherA:name,office Student:s#,name,age,grade 教 学 数 据 库 P D B R 树 的 实 例 5 5 TeacherB Zhou 32qinghua Wang35bingjing Lin 40 wuhan Lai 28 hunan TeacherB Wang25nanjing Li 53wuhan Department D3 space D6 computer D8 machine 1 2 Course C17physics160 C13math 240 2 Course C20 db 80 C17 os 80 C12 ds 90 3 TeacherA: Lin415 4 Student 78640Zhang21 55 78616Chen 21 70 78612Li 20 80 78605Wang 22 90 4 Student 78634lin21 70 78616Chen 21 60 78605Wang 22 95 3 TeacherA: Wang 418

  13. (1)DBD name=ts,access=HDAM /*定义物理数据库总体逻辑结构的名称和存取方式 (2) Dataset name=tsf,device=3330,block=1024 /*定义文件名称存储设备物理块大小 (3) Segm name=dept,bytes=35,freq=30 /*片段型的名称长度片段值的最大数目 (4) Field name=(d#,seq,u),bytes=3, start=1, type=char /*域名长度起始位置数据类型 (5) Field name=title, bytes=22,start=4, type=char (6) Field name=other, bytes=10,start=26,type=char (7) Segm name=course , bytes=30,freq=90,parent=dept (8) Field name=(c#,seq,u),bytes=3, start=1, type=char (9) Field name=title byes=22, start=4, type=char (10) Field name=format, bytes=5, start=26, type=integer (11) Segm name=teacherA, bytes=18,freq=20,parent=course (12) Field name=(name,seq,u), bytes=8, start=1, type=char (13) Field name=office, bytes=10,start=9, type=char (14) Segm name=student, bytes=21,freq=500,parent=course (15) Field name=(s#,seq,u), bytes=6, start=1, type=char (16) Field name=name, bytes=10,start=7, type=char (17) Field name=age, bytes=2, start=17, type=integer (18) Field name=grade, bytes=3, start=19, type=integer (19) Segm name=teacherB, bytes=40,freq=100,parent=dept (20) Field name=(name,seq,u), bytes=8, start=1, type=char (21) Field name=age, bytes=2, start=9, type=integer (22) Field name=university, bytes=30, start=11, type=char (23)DBDGEN (24)FINISH (25)END C1412

  14. 层次顺序的概念 片段型的型码的概念: 按前序遍历法扫描PDBR 树的片段型规定一个型码 片段的顺序码定义为: 片段型的型码,后跟该片段 的顺序域(即键)值 层次顺序值定义如下: 根片段型每个片段的层次 顺序值定义为其顺序码 非根片段型每个片段的层 次顺序值以其父片段层 次顺序值为前缀,加上自 身的顺序码构成 C1413 教学数据库PDBR各片段型的型码 depart 型码=1 course 型码=2 teacherB 型码=5 student 型码=4 teacherA 型码=3 访问树的前序遍历法: 访问根; 前序遍历左子树; 前序遍历右子树; (D6,COMPUTER…)层次顺序值是1D6, (C17,OS,80)层次顺序值是1D62C17, (78640, zhang, 21,55)层次顺序值是 1D62C12478640.

  15. C142 外模式定义 外模式是各个用户所需数据的局部逻辑结构,是应用程序的 数据视图,一般地只涉及数据库的一部分,故需在PDBR型 的基础上分别定义。一个数据库模式有若干外模式,允许多 个应用程序共享一个外模式,但每个程序只能启动一个外模 式。一个外模式是一组逻辑数据库记录型(LDBR型)的集合, 记为PSB。一个LDBR型是某个PDBR型的子树,由一个PCB 定义。 外模式的定义遵循如下规则: ‘若外模式包含某个片断型,则必须包含其父片断型。’ 下边说明一个逻辑数据库记录型是如何定义的。 (1)教学数据库的一个LDBR型 (2)LDBR型的PCB定义

  16. C1421 教学数据库的一个LDBR型 D# Title other Department C# title format Course S# name age grade Student 该LDBR型是下边的PDBR型的子树: 1系 Department:d#,title,other 2开设课程 5在冊教员 Course:c#,title,format TeacherB:name,age,university 3任课老师 4学生 TeacherA:name,office Student:s#,name,age,grade

  17. C1422 用PCB定义一个逻辑数据库记录型LDBR (1)PCB type=DB,DBDname=TS,KEYLENGH=10 (2)SENSEG name=dept,PROCopt=G (3)SENSEG name=course,parent=dept,procopt=all (4)SENSEG name=student,parent=course,procopt=r 定义程序与数据库接口: 1类型 2使用的物理数据库模式 3全链键最大长度 一个外模式PSB的定义格式: PCB../*PCB定义第一个LSBR*/ -------------------------------------- PCB../*PCB定义第二个LSBR*/ -------------------------------------- PCB../*PCB定义第三个LSBR*/ --------------------------------------- psbgen lang=pl/1,psbname=usera end (宿主语言及psb名) 定义外模式的片段型: 名称-父名-允许操作 g读 i插 r更新 d删除 a上述全部 k禁止存取

  18. IMS的数据操纵语言是DL/1。 用户使用某种高级语言(称为宿主语言)编程, 通过嵌入DL/1语句实现对数据库的存取。 C15 DL/1命令 宿主 语言 GU 检索某片段 GN 顺序检索下一片段 GNP 在当前父片段内检索下一片段 GHU 同GU, 为删改作准备 GHN 同GN, 为删改作准备 GHNP 同GUP, 为删改作准备 ISRT 插入片段 REPL 修改片段内容 DELT 删除某片段及其后裔 LOAD 初始加载一个片段 CHKP 建立检查点 SCHD 调度PSB TERM 释放PSB 检 索 用户 内存 数据库 DL/1 更 新 控 制

  19. IMS的存储结构 IMS提供四种存储结构: 以下各存储结构的示例均以教学数据库PDBR为模型。 1.HSAM: 层次顺序访问方法,片段按层次顺序作物理邻接存储。 2.HISAM:层次索引顺序访问方法, 非根片段按层次顺序值升序邻接存储, 根片段用顺序域索引的方法组织并指向下属区域。 3.HDAM: 层次直接访问方法,片段的存储采用离散分布方式, 根片段用顺序域HASH方法组织,从根片段出发用指针 按层次顺序值的顺序把物理上分散的从属片段链接起来。 4.HIDAM:层次索引直接访问方法,类似于HDAM,不同的是, 根片段采用顺序域索引技术组织,而不是HASH方法。 故是HDAM和HISAM两种方法的混合。 C16 根片段 从片段 HSAM 顺序邻接 顺序邻接 HISAM 索引法 顺序邻接 HDAM HASH法 链表 HIDAM 索引法 链表 存储结构比较 [例子]教学数据库的PDBR型

  20. HSAM: 层次顺序访问方法。 片段按层次顺序在硬盘作物理邻接存储。 以前边介绍的教学数据库PDBR为例: C16a space 1d3 DS90 418 Wang 22 Li 20 Chen 21 Zhang21 1d6 2c12 78605 78612 78616 78640 computer 3wang 2c17 3lin 78605 78616 78634 5lai 5lin 2c20 5wang 5zhou 1d8 2c13 machine 2c17 5li 5wang

  21. HISAM:层次索引顺序访问方法。 非根片段按层次顺序值的升序邻接存储, 根片段用顺序域索引的方法组织并指向下属区域。 以前边介绍的教学数据库PDBR为例: C16b 索引表 根片段 1d8 1d6 1d3 2c12 78605 78612 78616 78640 3wang 2c17 3lin 78605 78616 78634 5lai 5lin 2c20 5wang 5zhou 2c13 2c17 5li 5wang

  22. HDAM:层次直接访问方法。 片段的存储采用离散分布方式, 根片段用顺序域HASH方法组织,从根片段出发用指针 按层次顺序值的顺序把物理上分散的从属片段链接起来。 以前边介绍的教学数据库PDBR为例: C16c 1d3 1d6 1d8 根片段HASH结构 2c12 链表 2c17 2c20 2c13 3wang 478605 3lin 2c17 5lai 478612 478605 5lin 5li 478616 478616 5wang 5wang 478640 478634 5zhou

  23. HIDAM: 层次索引直接访问方法,类似于HDAM,不同的是, 根片段采用顺序域索引技术组织,而不是HASH方法。 以前边介绍的教学数据库PDBR为例: C16d 索引表 1d3 1d6 1d8 2c12 链表 2c17 2c20 2c13 3wang 478605 3lin 2c17 5lai 478612 478605 5lin 5li 478616 478616 5wang 5wang 478640 478634 5zhou

  24. 1系 C16e Department:d#,title,other 2开设课程 5在冊教员 教学数 据库的 PDBR型 Course:c#,title,format TeacherB:name,age,university 3任课老师 4学生 TeacherA:name,office Student:s#,name,age,grade 教 学 数 据 库 P D B R 树 的 实 例 5 5 TeacherB Zhou 32qinghua Wang35bingjing Lin 40 wuhan Lai 28 hunan TeacherB Wang25nanjing Li 53wuhan Department D3 space D6 computer D8 machine 1 2 Course C17physics160 C13math 240 2 Course C20 db 80 C17 os 80 C12 ds 90 3 TeacherA: Lin415 4 Student 78640Zhang21 55 78616Chen 21 70 78612Li 20 80 78605Wang 22 90 4 Student 78634lin21 70 78616Chen 21 60 78605Wang 22 95 3 TeacherA: Wang 418

  25. C2 第二节 网状数据库系统 网状数据库系统是基于网状数据模型的数据库系统。 本节首先学习网状数据模型,学习这种数据模型的 三个组成部分,即数据结构、数据操作和数据约束。 然后以DBTG网状数据库系统为例,学习网状数据库 系统的数据定义、数据操纵、存储结构等内容。 1.数据结构 2.数据操作 3. 完整性约束 4. 三个特殊系型 5. M:N联系的表示 6. DBTG系统概述 7. DBTG模式定义语言 8. DBTG子模式定义语言 9. DBTG数据操纵语言

  26. C21 数据结构 网状数据模型比层次模型更具普遍性,取消了层次模型树型 结构的限制,允许结点无父多父,允许两结点间的多种联系. 记录:即一组数据值的集合 记录型:即具有相同结构的记录的集合 由命名的类型数据项(属性)组成 记录是记录型的实例,由键属性唯一标识 属性可以是简单数据项,也可以是向量和重复组 向量是相同类型数据值的集合 重复组是不同类型数据值集合 由实数据项导出的数据项称为虚数据项 学号 姓名 成绩(语,数,英) 学号 姓名 学历(校,学位,年) 重复组:由多个不同 类型的数据项组成 向量:由多个同 类型的数据项组成. 接下页

  27. C21a 系型:两记录型R,S(分别称为系主和成员)之间的一对多联系。 系型实例:由系主记录型一个记录 与成员记录型的相关子记录(有序)组成。 网状数据库模式:是记录型和系型的集合。 网状数据库实例:记录和系型实例的集合。 网状模式图: 是以记录型为点,系型为边的有向图, 允许结点无父或多父 department student 系型 用指针将系主记录和所有成员记录按序连起来, 下边是系型的两个实例: 计算机.. 张平.. 李华.. 数学.. 陈大.. 赵二.. 张三..

  28. C22 网状数据库系统数据操作: 1由属性值确定记录位置 2从系主记录移到第一成员记录 3从成员记录移到下一成员记录 4从成员记录移到系主记录 5建立新纪录 6删除记录 7修改记录 8把记录连接到系实例 9把记录从系实例撤出 10记录从系实例转至另一实例 系型 department student 系主记录型 成员记录型 计算机.. 张平.. 李华.. 数学.. 陈大.. 赵二.. 张三..

  29. C23 完整性约束(在定义系的时候确定,一般是可以选择约) 1.成员约束: 成员记录型每个记录至多属于系型的一个实例 例:陈大既然是数学系的学生,就不能是计算机系的学生 2.插入约束: 成员记录型插入新记录时, 可使用两种方式连接到系实例: (1)自动连接:由系统连接(automatic) (2)人工连接:用户指定连到某系实例(manual) 3.成员存在约束国 (1)存在方式可自由选择(optional) (2)必须关联某个系实例,但可转系实例(mandatory) (3)必须固定在一个系实例(fixed) 4.新成员记录序约束 (1)按原排序属性(如学生证号)定序 (2)由系统定序 (3)按插入时间定序(最前,最后) (4)安排在当前成员记录(最近被访问过)的前或后

  30. C24 三个特殊的系型 系统系型: 该系型没有系主记录型,可认为它具有一个虚拟系主记录型 system(仅含一个记录‘system’)。 系统系型的用途是: 1)用户通过系统系型的记录进入数据库; 2)同一个记录型可定义多个系统系型,对应不同的序约束, 实现以多种顺序存取该记录型的记录。 多成员系型:该系型具有多个成员记录型。 例如,雇员分类为办事员、技术员和管理者。于是部门-雇员 系型任意一个实例的成员记录可以是三个成员记录型的记录。 递归系型:在这种系型中,系主记录型与成员记录型重合。 例如,在雇员关系上定义递归系型supervison,建立部门主任 与其所有下属之间的联系。

  31. C25 M:N联系的表示 两个记录型之间的多对多联系可以用两个系型和一个附加的记录 型表示。例如一个项目由某几个雇员负责,而一个雇员可参与几 个项目,于是在雇员表与项目表之间存在一个M:N联系。为了表 示这个M:N联系,引进表W(e,p,h)记载雇员e在项目p的工作时数h, 形成两个1:N联系型E_W和P_W。 W(e,p,h)称为连接记录型,它和 系型E_W、P_W构成了雇员表与项目表之间的M:N联系。 W1(E2,P1,30) W2(E2,P2,10) W3(E1,P2,40) W4(E3,P2,20) W5(E3,P4,10) W6(E3,P3,10) W7(E4,P3,40) 一对多 E1 E2 E3 E4 P1 P2 P3 P4 雇员E W 项目P 一对多 雇员与项目的 多对多联系

  32. DBTG系统概述 DBTG系统是美国CODASYL的DBTG提出的网状系统方案, 是许多实际的网状数据库系统的设计基础,其结构是子模 式、模式和存储模式的三级模式结构。 C26 应用程序 用主语言(COBOL等) 处理内存数据和IO操作 用DML访问数据库 应用程序 用主语言(COBOL等) 处理内存数据和IO操作 用DML访问数据库 数据库管理系统DBMS 程序工作区 程序工作区 DDL定义子模式及子 模式到模式的映射 子模式 子模式 模式 DDL定义模式及模式 到存储模式的映射 数据库 存储模式

  33. C27 DBTG模式定义语言 DBTG数据库模式与前边的网状数据库模式一致, 是记录型和系型的集合。数据库划分为一个以上的命名域 (area),允许一个域含多个记录,也允许一个记录跨多个域, 但一个数据项只能在一个域中。DBTG允许一个记录型 (1)同时作为几个系的成员记录型; (2)同时作为几个系的系主记录型; (3)作为系A的成员记录型,兼作系B的系主记录型; (4)作为某系的系主记录型,兼作该系的成员记录型; 此外, DBTG允许两个记录型之间有多个系,并对数据库 的每条记录指定一个用于唯一标识的数据库码,这也是用 户访问记录的逻辑地址。 DBTG的数据库模式由下述四部分组成: (1)模式说明部分 (2)域定义部分 (3)记录型定义部分 (4)系型定义部分

  34. C27a 模式说明语句的功能是定义数据库模式的名字, 其语法格式是 SCHEMA NAME IS <模式名> 在下边的例子中,第一句就是模式说明语句, 表明所定义的数据库模式取名为company. schema name is company area name is a1 area name is a2 record name is employee location mode is calc hash_emp using ssn within a1       

  35. C27b 域定义语句的功能是定义域的名字, 其语法格式是 AREA NAME IS <域名> 在下边的例子中,第2、3句就是域定义语句, 表明所定义的两个域分别取名为a1和a2. schema name is company area name is a1 area name is a2 record name is employee location mode is calc hash_emp using ssn within a1        一个库模式至少有一个域,域名必须唯一。

  36. C27c • 记录型定义语句的功能是定义模式中的记录型及其中 • 的数据项,其语法格式是 • RECORD NAME IS <记录型名> • 用于定义记录型的名字。 • (2) LOCATION MODE IS X • 用于定义记录的存储方式,下边是句子的三种用法: • location mode is direct • 采用按数据库码直接存取数据记录的方式 • location mode is calc <hash函数过程名> using <数据项名> • 采用hash文件存取数据库方式 • location mode is via <系名> set • 记录与指定系名的系主记录靠近存放。 • (3)WITH IN <域名> 当记录存储采用via方式时, • 使用这句指出系主记录型所在的域。 • (4)DATA ITEM IS <数据项名> TYPE IS <类型> • 定义数据项的名字、长度和类型 例子

  37. C27c1 记录型定义的两个例子 record name is project location mode is calc hash_prjt using name within a2 data item is name type is character 15 data item is number type is integer 8 data item is locations type is character 15 记录型的名为project 在name建立hash文件 记录型所在的域是a2 数据项name的类型是c15 数据项numb的类型是i8 数据项loca的类型是c15 记录型的名为supervisor 按数据库码直接存取记录 记录型所在的域是a1 数据项supevisr_ssn的类 型是c9,长度为9的字符型 record name is supervisor location mode is direct within a1 data item is supevisr_ssn type is character 9

  38. 系定义语句的功能是定义系的特征。其语法格式是系定义语句的功能是定义系的特征。其语法格式是 • SET NAME IS <记录型名> 用于定义系的名字。 • (2) MODE IS X 定义系主记录和各成员记录组织方式: • mode is chain 链表方式。 • mode is pointer_array 系主指向各成员的指针阵列方式。 C27d (5)MEMBER IS <记录型名> X Y 用于定义成员记录型 X是存在方式的选择,取值含义是: mandatory 成员记录总在某系实例中. optional 成员记录可脱离系实例, 也可随时进出系实例。 fixed 成员记录必须固定存在于 某个系实例 Y是成员约束的选择,取值含义是: automatic 新成员自动连到某系实例. manual 用户可用连接命令将成员 记录连接到某系实例. (3)ORDER IS X 定义系序, 即新成员在系实例插入位置 X值 新成员的插入位置 First 最前边 Last 最后边 Next 当前成员的后边 Prior 当前成员的前边 (4)OWNER IS <记录型名> 用于定义系主记录型 (6)SET OCCURRENCE SELECTION IS THRU X 若X是current of set则选当前实例; 若X是owner using<数据项名表>则用hash方法选择系实例.

  39. C27e Company 网状数据库模式实例 employee 1 name ssn birthdate address sex salary deptname system 7:supervisees 2:works_for 8:a_supervisor 4:manages 1:all_dept Supervisor 5 supervisor_ssn department 2 name number location mgrstart 6:e_workson works_on 4 essn pnumber hours 3:controls 5:p_workson project 3 name number location 9:dependents_of dependent 6 empssn name sex birthdate relationship 该实例的模式定义C27e.doc

  40. C28 子模式定义语言 子模式是模式的逻辑子集,用于满足应用程序的数据需要。 在一个模式上可定义多个子模式,子模式之间可以有重迭,一个 子模式可以为多个应用程序共享,但每个应用程序只能使用一个 子模式。DBTG的子模式及子模式到模式的映象用子模式定义语 言描述。子模式定义语言是面向宿主语言。下边以面向COBOL 语言的子模式定义语言为例。子模式定义由两部分组成: 1.子模式首部 2.子模式结构定义部分 3子模式结构定义例子

  41. C28a • 子模式首部 • 子模式首部用于说明子模式依赖的模式的名称, • 并定义子模式的名称。 • 格式是 • SUB_SCHEMA IDENTIFICATION DIVISION • SUB_SCHEMA NAME IS <子模式名> OF SCHEMA <模式名> • 例如, • SUB_SCHEMA IDENTIFICATION DIVISION • SUB_SCHEMA NAME IS ded OF SCHEMA company • 说明的子模式的名称是ded,它依赖的模式的名称是company.

  42. 2. 子模式结构定义部分:描述子模式数据结构,包含四段: C28b 段 功能 语句格式 换名段 定义子模式中域名、 rename section 系型名、记录型名、 数据项名与模式中相 应名的对应关系。 域段 语句(A)把模式指定的 area section copy <域名组> 域复制到子模式; (A) 语句(B)把模式所有的 area section copy all areas 域复制到子模式。 (B) 记录型段 定义子模式所使用到 record section <记录型名> 的模式中的记录型。 <数据项名> 系型段 语句(A)把模式指定的 copy <系名组> (A) 系型作为子模式系型; 语句(B)把模式所有的 copy all sets (B) 系型作为子模式系型。

  43. 网状数据库模式Company的子模式DED C28c Employee 1 name ssn birthdate address sex salary deptname 2:works_for 9:dependents_of 4:manages Dependent 6 empssn name sex birthdate relationship Department 2 name number location mgrstart 子模式DED的定义 sub_schema identification division sub_schema name is DED of schema COMPANY area section copy a1,a2 &&域复制 record section &&映射到模式的记录型 copy employee record copy department record copy depandent record set section &&映射到模式的系型 copy works_for,manages,dependent_of

  44. 五.DBTG的数据操纵语言 1.程序运行环境 下边介绍的是与COBOL语言对应的DML. 每个运行中的应用程序的运行单位(run-unit)是指程序 及数据的动态执行过程。多个用户执行一个程序对应着多 个运行单位。每个运行单位有一个用户工作区(UWA),存 放当前状态、记录样板格式和系统通信单元。 C29a 运行单位当前值 记录型 R1  Rk 系型 S1  Sm 域 A1  An 记录型 数据项 R1 I1 I2 I3 R1  R1 AREA NAME RECORD NAME ERROR STATUS ERROR SET ERROR RECORD ERROR AREA ERROR COUNT ERROR TYPE 当前记录的数据库码 记录样板格式 建立用户程序的 IO区,按子模式 结构分配缓冲区 系统通信单元 运行状态反馈信息 当前状态

  45. C29b 2.数据操纵语言 命令 操作对象 主要功能 find 记录 查找指定记录使之成为当前记录 get 记录或数据项 读当前记录或数据项到UWA样板空间 store 记录 输入记录 modify 记录或数据项 修改当前记录或数据项 erase 记录 删除当前记录 connect 系 把当前记录作为成员插入当前系实例 reconnect 系 改变当前记录的成员关系 disconnect 系 把当前记录从当前系实例删除 ready 域 打开域,说明并发控制方式 finish 域 关闭域

More Related