数据库中文件的组织方式
数据库的组织要考率更新和检索的需求,更新涉及到数据的存储空间的扩展和回收的问题,检索涉及到扫描整个数据库,和大批量处理数据的问题,不同的需求要求不同的数据组织方式和存取方式。
数据的组织方法是指数据组成记录,块,和访问结构的方式,包括把记录和块存储在磁盘上的方式,以及块和记录之间的相互联系。
存取方法是指对文件所采取的存取操作方法。
一种文件组织可以采取多种存取方法进行访问
无序的文件组织方法(堆文件heap 或pile file)
特点:记录可以存储在任意的空间位置,磁盘上的存
储记录是无序的,更新效率高,但是检索效率低。
方法一:每一次插入数据都插入到数据的尾部,删除数据的时候我们将被删除的记录做一个标记,不做标记的话会涉及到大规模的数据移动,是不安全的。
方法2:在被标记的基础上,如果插入数据所占用的空间小于被标记的空间将新的记录插入到被标记的记录处。
但是频繁的更新数据会造成空间的浪费,导致数据库性能下降,所以需要周期性重新组织数据库。即数据库重组。
有序的文件组织(Sequential file)
特点:记录按照某个属性或者属性组值得顺序插入,磁盘上的存储记录是有序的,检索的效率可能高。
用于存储排序的字段通常称为排序字段,排序字段一般使用关系之中的主键,又称为排序码。当按排序字段检索的时候检索的速度会得到提高,但是当按照非排序字段检索的时候检索的速度不会提高很多。但是有序的文件组织的更新效率比较低,因为在插入数据的时候要大规模的移动数据为插入数据留出空间而且是不安全的。
改进:使用一个临时无序文件(溢出文件)保留新增记录。当采取溢出文件的时候检索既要操作主文件又要操作溢出文件,所以需要周期性的重组数据库。
散列文件组织(hash file)
特点:将记录某个属性或者属性组值,依据散列函数计算出其应该存放的位置: