4_9章复习题解答.docx

第 4 章 数据存储与组织管理 简要回答以下问题。 (1) 描述磁盘空间管理器的主要作用,并说明它与 OS文件系统的关系。 (2) 解释关系数据库系统中关系表与文件的关系。 ( 3) 如果有一个大文件需要频繁执行顺序扫描, 那么, 为该文件选择哪种页存储方 式最合适? ( 4 ) 分别描述持久化指针解引用 (dereference) 和指针混写的这两个基本过程,它 们之间有何联系? (5) 说明排序文件中的记录及页的基本存储组织方式。 (6) 解释缓冲区管理器处理一个读页请求的过程。 如果被请求页位于缓冲池但未被 闩住 (pinned) ,那么情况会怎样?缓冲区管理器何时写一个磁盘页? ( 7 ) 一个缓存页被闩住( be pinned )意味着什么?一般由谁负责给缓存页上闩, 由谁负责给缓存页解闩 ? ( 8 ) 当一个页请求发生时,如果缓冲池中所有页都是脏页,将会发生什么? (9) 与OS缓存管理相比,DBMSS冲区管理器具有那些独特的重要能力? ( 10 ) 什么是预取?解释为什么这种策略很重要。 (11) 描述两种可能的记录格式,并指明它们的优缺点。 (12) 描述两种可能的页格式,说明它们优缺点和适用场合。 解答】 1 )磁盘空间管理器支持以页 (page) 为单位的数据管理,隐藏了下层硬件(甚至包括 OS 文件管理)的细节,且允许高层软件认为 DB 数据是一系列以页为单位的磁盘数据集 合,是DBMS体系结构中最低层的软件模块。 DB系统的磁盘空间管理器通常按三种方式来应用 OS的文件管理功能: 将整个DB存储在一个或几个磁盘文件中,调用 OS功能实现流式文件的磁盘 R/W 让OS分配给DB系统一个或几个大的 OS文件,然后自己管理(读 /写)这个文件。 完全自己来管理磁盘。 (2)通过磁盘空间管理器, 可将DB中的“关系”映射到 “关系数据文件”,这种“文件” 既可能是实际的 OS文件,也可能只是一个虚拟的 OS文件。 一些小规模的DB系统实 现甚至可能将关系直接存储在单独的 OS文件中。但更多的现代大型 DB系统,则是把 所有关系都集中存储在一个或几个大文件中的复杂结构。这时,我们仍然可在概念上 认为每个关系被存储在一个“虚拟文件”中。 3)这时选用堆文件的页存储方式最合适。当不需要检索特点的记录,而只是全文件顺序 扫描时,选用堆文件的页存储方式最合适,因为这种情况不需维护顺序,插入插入与 删除操作很直接,代价较小,另外,也不需要数据本身之外的额外存储空间和辅助索 引文件。 1) 存取数据库记录 /数据页要用到两种类型指针:内存指针与数据库地址 ( 持久化指 根据给定的指针或地址寻找目标对象的过程, 称为解引用。 给定一个内存指针, 查找对 象本质上只是对内存单元的一个引用( C语法:*指针名)。给定一个持久化指针,解引用 一个对象需要额外的步骤, 即需先在“转换表” 中查找持久化指针所代表对象的实际内存地 址。如果指针所指对象不在内存,则必须从磁盘把它载入,并在转换表中添加新映射项。与 内存指针解引用相比,即使转换表中有映射项,通过转换表实现解引用仍是一个慢过程。 指针混写是一种减少定位已在内存中持久对象所需代价的方法。 其基本思想是, 当一个 主存中对象 / 记录所含的持久指针第一次解引用时,这个持久指针所指向的目标对象被定 位――如果它不存在内存中, 就将它载入内存并同时在转换表中添加一个新的映射项。 然后, 将存放该持久指针的内存单元, 直接修改为目标对象的内存位置指针。 下一次同一持久化指 针再次被解引用时,就可以直接使用内存引用,从而可避免重复转换内存地址的过程开销。 显然, 指针混写包含了持久化指针解引用过程, 但前者比后者多了一个在主存中同一位 置来回修改“持久化指 ? 针内存指针”过程。指针混写能降低持久化化对象解引用的过程。 (2) 排序文件是指按指定的键排序记录集的一种文件组织。虽然在辅存中严格按排序顺 序先后安排文件中记录存储,能显著提高记录集检索性能,但这样做的维护代价太 大,DB系统一般并不这种做,通常是指针把记录按顺序链接起来。 删除记录时仅做标记并留下空位,暂不移动其它记录;而在插入时,相应位置 即使没有空位,也暂时不移动其它记录来腾出位置,而是引入溢出页。 对排序文件,页内的记录索引项或目录项通常是严格按顺序的。另外,记录链 接自动隐含了页间链接。 (3) 缓冲区管理器执行读页请求的基本过程如下: 检查DB缓冲池中是否存在该请求页,如果该页不在 DB缓冲池中,则进一步执行 以下一些操作。 基于置换策略,选择一个可被置换的 frame ,将该 frame 的 pin_count 计数加 1。 如果该 frame 中原先页被修改过(即 dirty=1 ),则将原先页写回磁盘。 从磁盘

文档评论(0)

1亿VIP精品文档

相关文档