层次数据库存储组织(数据库)
时间:2022-12-13 04:30:02 | 来源:信息时代
时间:2022-12-13 04:30:02 来源:信息时代
层次数据库存储组织 : 涉及记录及记录与记录之间联系的存储组织。IMS提供的层次数据库存储组织是最有代表性的,共有四种存储组织。
1.层次顺序存取方法(HSAM)
HSAM用物理邻接来表示数据库片段的层次顺序。这和文件组织中的顺序文件类似,但这里的顺序是按层次序列的顺序。这种存储组织中,数据空间被划分为若干个块,每个记录的片段值按层次顺序依次存放,即按从上到下,从左到右的次序将各个片段的值存入连续的块中。图1为采用HSAM存储结构组织教学数据库的简化示意图。
图1 教学数据库存储组织
图中每框表示存储一个片段的存储区域,上面的数字是片段型键,下面是片段的值,表示该片段的所有信息都存储在该区域中。
2. 层次索引顺序存取方法(HISAM)
HISAM对根片段用索引来进行组织,索引在根片段的排序键字段上建立,在索引中每个根片段键后面的指针是根片段的地址,指向相应的片段; 对根的从属片段采用顺序存取方法即用物理邻接方法组织。
HSAM和HISAM.都是层次顺序存储(HS)的例子,存储组织中各个片段值的逻辑顺序和物理顺序是一致的。该存储方法的优点是组织方法简单,节省存储空间,适于顺序存取; 缺点是随机存储效率低,片段的插入、删除和替换麻烦。
3.层次直接存取方法(HDAM)
HDAM对根片段采用哈希(HASH)方法来组织,从属片段采用指针的方法。HDAM将根片段的排序键通过哈希(HASH)函数转换为相应的块号,把根片段存入此块中,如果发生冲突,通过某种冲突解决方法,再将该根片段放入另外空闲的块。在该存储结构中,片段值通过指针相关联,即通过指针实现层次顺序的存储组织方式。各片段值通过存储片段前缀部分的指针相关联,所使用的指针可以是层次指针或子女/孪指针。在使用层次指针时,每个片段(最后一个片段例外)都有一个按层次顺序指向一个片段的指针。使用子女/孪指针时,每个双亲片段值包括一个指针指向其每个子女片段型中的第一个值的指针,且每个子女片段值都有一个指向该子女片段型中下一个孪生值(假定其存在)的指针。
4.层次索引直接存取方法(HIDAM)
HIDAM对根片段采用索引来组织,索引是在根片段的排序键字段上建立的,在索引中每个根片段键后面的指针是根片段的地址,指向相应的片段;对从属片段用指针的方法,即片段值之间采用指针相互链接。
HDAM和HIDAM都是层次直接存储的例子,在这种存储组织中,片段之间通过指针链接,所以直接访问效率较高。HDAM对根片段用哈希(HASH)方法存取,其存取效率还依赖于哈希(HASH)函数的选择,HIDAM通过索引对根片段进行存取。层次直接存储的优点是可以实现快速存取,插入、删除以及替换操作简单,但是需要增加存放指针的空间。
IMS中的这四种存储方法是在IMS控制程序的控制之下,通过操作系统较低级的存取方法(它们分别是顺序存取方法SAM,索引顺序存取方法ISAM,溢出顺序存取方法OSAM和虚拟存取方法VSAM)来与具有相应的存储结构的数据库连接的。其中HSAM使用SAM与数据库接口,HISAM是通过ISAM与OSAM或VSAM来与数据库接口,HDAM通过OSAM或VSAM与数据库接口,HIDAM是通过HISAM与OSAM或者VSAM与数据库接口。