0
点赞
收藏
分享

微信扫一扫

(P7)数据库系统下-四种文件组织方法


文章目录

  • ​​1.数据组织与存取方法​​
  • ​​2.无序文件组织​​
  • ​​3.有序记录文件(排序文件Sequential)​​
  • ​​4.散列文件​​
  • ​​5.聚簇文件(Clustering file)​​
  • ​​6. 小结​​

1.数据组织与存取方法

数据组织要考虑更新(增、删、改)和检索需求

  • 更新将涉及数据存储空间的扩展与回收问题
  • 检索将涉及扫描整个数据库的问题、大批量处理数据问题
  • 不同的需求要求不同的数据组织方法和存取方法

文件组织(File Organization) 指的是数据组织成记录、块和访问结构的方式,包括把记录和块存储在磁盘上的方式,以及记录和块之间相互联系的方法
存取方法(Access Method) 指的是对文件所采取的存取操作方法

  • 一种文件组织可以采取多种存取方法进行访
  • 文件组织相当于存储结构,存取方法相当于对不同文件组织结构的存取算法

2.无序文件组织

文件组织方法之一:无序记录文件(堆文件heap或pile file)

  • 特点:记录可存储于任意有空间的位置,磁盘上存储的记录是无序的。更新效率高,但检索效率可能低
  • 方法1:新记录总插入到文件尾部;删除记录时,可以直接删除该记录所在位置的内容,也可以在该记录前标记“删除标记”
  • 方法2:在前者基础上,新增记录可以利用那些标记为“删除标记”的记录空间,新纪录可以占用那些标记为被删除的记录上
  • (P7)数据库系统下-四种文件组织方法_存取方法

  • 频繁删增记录时会造成空间浪费,所以需要周期性重新组织数据库
  • 数据库重组(Reorganization) 是通过移走被删除的记录使有效记录连续存放,从而回收那些由删除记录而产生的未利用空间。
  • (P7)数据库系统下-四种文件组织方法_数据库_02

3.有序记录文件(排序文件Sequential)

特点:记录按某属性或属性组值的顺序插入,磁盘上存储的记录是有序的。检索效率可能高。

  • 用于存储排序的属性通常称为排序字段(Orderingfield),通常,排序字段使用关系中的主码, 所以又称排序码(Orderingkey)
  • 当按排序字段进行检索时,速度得到很大提高;但当按非排序字段检索时,速度可能不会提高很多
  • 有序记录文件的更新效率可能很低,因为:在更新时要移动其他记录,为插入记录留出空间
  • 改进措施是可为将来有可能插入的元组预留空间(这可能造成空间浪费),或者再使用一个临时的无序文件(被称为溢出文件)保留新增的记录。
  • 当采取溢出文件措施时,检索操作既要操作主文件,又要操作溢出文件。所以需要周期性重新组织数据库
  • 数据库重组 是将溢出文件合并到主文件中,并恢复主文件中的记录顺序

4.散列文件

特点:可以把记录按某属性或属性组的值,依据一个散列函数来计算其应存放的位置: 桶号(Bucket,块号或簇号等)。检索效率和更新效率都有一定程度的提高

  • 用于进行散列函数计算的属性通常称为散列字段(Hashfield),散列字段通常也采用关系中的主码,所以又称散列码(hashkey)
  • 不同记录可能被hash成同一桶号,此时需在桶内顺序检索出某一
  • 链接法处理溢出
  • 散列还有许多问题及许多的处理技巧,如散列桶的数目以及桶的大小,动态散列技术等等

5.聚簇文件(Clustering file)

聚簇:将具有相同或相似属性值的记录存放于连续的磁盘块中

多表聚簇:将若干个相互关联的Table存储于一个文件,这可提高多表情况下的查询速度

(P7)数据库系统下-四种文件组织方法_数据库_03

6. 小结

增删改时如何快速“存”?
检索查询时如何快速“取”?

  • 对增删改的要求较高,则选择无记录文件和散列记录文件;
  • 若对查询的要求较高(二分查找),则选择有序记录文件;
  • 当数据库性能降低时,则需要考虑数据库重组了;


举报

相关推荐

0 条评论