18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 数据库管理系统存取系统层(数据库)

数据库管理系统存取系统层(数据库)

时间:2022-11-17 00:30:01 | 来源:信息时代

时间:2022-11-17 00:30:01 来源:信息时代

    数据库管理系统存取系统层 : 介于数据库管理系统的数据系统层和存储系统层之间,向上向数据系统提供单元组接口,即导航式地提供一次一个元组的逻辑数据记录结构和逻辑存取路径结构。它向下则以存储系统提供的页面和页面构成的段作为实现基础,如图1所示。


图1 存取系统层及与它的上下系统层的接口关系


由图1可以看出,存取系统层建立在存储系统层之上,它不涉及存储分配,它与存储分配结构及其有关的参数是隔离开的。存取系统只在存储系统所提供的数据结构即页面和由页面组成的段上面操作,其所使用的运算是打开段、关闭段、分配段、释放段、申请页、释放页、读页、写页等原语。利用这些手段,基于段和页面,存取系统将建立起管理和存储元组的记录子系统,管理存取路径的索引子系统,对元组进行排序的排序/合并子系统,管理数据记录类型和存取路径说明信息等控制信息的控制信息管理子系统,保证用户事务一致性的事务管理子系统,处理并发控制的封锁子系统和执行恢复任务的簿记子系统等。
这些子系统统一在一起,相互配合,构成一个统一的存取系统层。以下是IBM公司在研究和开发关系数据库管理系统的历史中起过里程碑作用的原型系统System R的存取系统RSS的体系结构,如图2(以System R的RSS为蓝本)所示。


图2 数据库管理系统的存取系统结构


存取系统向上提供的是单元组接口,即逻辑数据记录结构和逻辑存取路径结构,它们是从数据记录和存取路径的物理表示中抽象出来的,而将具有各种选择的实现形态掩蔽起来。例如,逻辑存取路径,它只关心是按某个属性直接存取一个元组还是顺序存取下一个元组,这种直接存取运算和顺序存取运算其语义是清楚的,至于如何实现以及实现方法的变更是与之相隔离的,不会影响运算的语义。
单元组接口上涉及的数据对象有:
1.段
数据库由若干个段组成,一个段中可容纳一个或多个关系,但一个关系只能属于一个段,即不允许跨段。
一个段中各个关系的描述信息及其他控制信息或辅助信息,各个关系的所有元组以及相应的存取路径等全部存储在该段中,进行统一的存储、管理和检查。故段是存储分配和管理的单位,它对用户是透明的,它使关系和元组簇聚在一起。段是逻辑相关的地址空间,并由给定数目的定长页面组成。
关于段的操作有申请段(AQUIRE SEGMENT)和释放段(RELEASE SEGMENT),分配段(ALLOCATE SEGMENT)和释放段(DEALLOCATE SEGMENT),打开段(OPEN SEGMENT)和关闭段(CLOSE SEGMENT),以及保存段(SAVE SEGMENT)和恢复段(RESTORE SEGMENT)。
2. 有序表
有序表是零个和多个元组的汇集,它按某一确定的顺序来存储表中的各个元素。有序表的好处是按所定顺序可以迅速地和连续地处理表中的元素,缺点是只能保证一种顺序,应变性差。有序表有建立(CREATE)和删去(DROP)等操作。有序表允许存在重复元组。它不存储元组的说明信息,不存在TID。每个段只允许一个有序表。
3. 关系和元组
关系和元组是客观世界本质信息的载荷者。关系必须完全处于一个段中,它由所在段号和内部关系名RID来唯一标识。关系具有集合的性质,即关系中不允许存在重复元组。关系的度即其属性的数目在创建关系时说明并可以动态变更。元组是所属关系模式所定义的属性场(Field)序列所确定的一列属性值,属性场可以有不同的类型,如INT、REAL、CHAR等,并可以有定长场和变长场。
元组在关系中以内部名TID来标识。
4.索引
索引是一个关系内各元组的某种逻辑顺序,此顺序由一个或多个属性的值来定义,称这种属性场为索引键场。若索引键场包含了两个或更多的场,则每个场的顺序可以不同定义,即可以为升序也可以为降序。
给定一个关系可以定义若干个索引。
索引是一种灵活的存取路径结构,既支持快速的直接存取,又支持按主键或某个辅键的某种顺序连续存取。索引的操作也包括建立和删除等操作。
5.链路
为了支持两个关系之间的导航式存取,需要层次存取路径。这种层次存取路径称为链路,其本质是在两个关系即主关系 OWNER 和属关系MEMBER之间按取值的内容建立1:n的对应关系。
一条链路是连接两个关系的元组的一条存取路径,它提供从主关系OWNER的各个元组到属关系MEMBER的一串元组的路径。各属元组的次序在执行用户的添加操作时确定。
给定一个关系可以定义若干条链路。链路由段号和内部链路名LID标识。对链路也有建立和删除等操作。
存取系统层的一个核心功能是事务管理(transaction management),包括保证用户事务的一致性,并发控制和恢复等,其内容将在相应的条目中阐述。这里要强调事务的概念。事务是数据库系统中的完整性和可恢复性的单位,也是资源分配和调度的单位。事务由一组操作组成,它的成功执行使数据库的状态从一种相容的或逻辑一致的状态变为另一种相容的或逻辑一致的状态。事务要么完全执行,要么一点也不执行,决不存在部分执行一个事务的情况。静态来看,事务如下所示:
BEGIN TRANSACTION Operation 1;
Operation 2;
……
Operation n;
END TRANSACTION
基于事务的概念我们可以讨论确定元组位置的方法。注意,同一个元组在不同的事务中其位置可能不同。管理和维护基于事务的元组位置的一种自然的方法是扫描法。
一个扫描定义元组的一个集合,该集合中的元组是由扫描操作按给定的存取顺序一次一个元组地提供的。“给定的顺序”可以是按段中关系的物理存储顺序(关系扫描或段扫描),按索引键值的顺序(索引扫描),按有序表的构成顺序(有序表扫描)和按链路的构成顺序(链路扫描)。由此可以看出,扫描或是和元组的存储结构(关系扫描)或是和存取路径相关联的。对于后者,在动态生成扫描(CREATE SCAN)或打开扫描(OPEN SCAN)时需指明作为参数给出的存取路径的标识。
一个事务可以在一个或多个存取路径上同时打开若干个扫描,用户一义性地标识每个扫描为一临时性的数据对象(SCANID)。一个事务中建立的所有扫描由扫描控制块来管理,它登记各扫描的类型、状态、性质和当前位置。扫描控制块由系统管理和维护。
关闭扫描的操作(CLOSE SCAN)关闭扫描。事务结束则结束扫描。
当打开扫描时扫描定位于第一个元组之前。扫描可以有三个任选条件,即启动条件、查找条件和停止条件。例如索引I(EMP(DNO)),启动条件为DNO>`K50`,查找条件为 JOB=`PROGRAMMER`AND ADDRESS=`BEIJING`,停止条件为DNO≤`K99`,就是按雇员关系的部门号索引,按扫描顺序逐元组地提供部门号从K51到K99,职务是程序员,在北京工作的所有职员。
扫描确定了存储结构或存取路径结构中元组的位置,为元组的查询、添加、删除和修改提供条件。扫描提供了对元组的导航式存取,对于层次型数据库系统,如IBM公司的IMS/VS,网状型数据库系统,如按DBTG方案设计的系统,UDS都是把导航式存取的单元组接口作为外部用户接口提供给用户,用户在使用这些系统时可以直接进行导航式存取。
对于关系系统,导航式存取的单元组接口是存取系统提供的内部接口,它只提供给上一层系统即数据系统层使用,不对用户开放。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭