DBMS - 文件结构
相关数据和信息以文件格式共同存储。 文件是以二进制格式存储的一系列记录。 一个磁盘驱动器被格式化成几个可以存储记录的块。 文件记录被映射到这些磁盘块上。
文件组织
文件组织定义了文件记录如何映射到磁盘块上。 我们有四种类型的文件组织来组织文件记录 −
![文件组织](https://www.w3ccoo.com/dbms/images/file_organization.png)
堆文件组织
当使用堆文件组织创建文件时,操作系统会为该文件分配内存区域,而不需要任何进一步的记帐细节。 文件记录可以放置在该内存区域的任何位置。 管理记录是软件的责任。 堆文件本身不支持任何排序、排序或索引。
顺序文件组织
每个文件记录都包含一个数据字段(属性)来唯一标识该记录。 在顺序文件组织中,记录根据唯一键字段或搜索键以某种顺序放置在文件中。 实际上,不可能以物理形式顺序存储所有记录。
哈希文件组织
哈希文件组织对记录的某些字段使用哈希函数计算。 哈希函数的输出决定了要放置记录的磁盘块的位置。
集群文件组织
集群文件组织不适合大型数据库。 在这种机制中,来自一个或多个关系的相关记录保存在同一个磁盘块中,即记录的排序不基于主键或搜索键。
文件操作
对数据库文件的操作大致可以分为两类 −
更新操作
检索操作
更新操作通过插入、删除或更新来更改数据值。 另一方面,检索操作不会更改数据,而是在可选的条件过滤后检索它们。 在这两种类型的操作中,选择都起着重要作用。 除了创建和删除文件之外,还可以对文件进行多种操作。
Open − 文件可以以两种模式之一打开,读取模式或写入模式。 在读取模式下,操作系统不允许任何人更改数据。 换句话说,数据是只读的。 以读取模式打开的文件可以在多个实体之间共享。 写模式允许数据修改。 以写入模式打开的文件可以读取但不能共享。
Locate − 每个文件都有一个文件指针,它告诉当前要读取或写入数据的位置。 可以相应地调整该指针。 使用查找(查找)操作,它可以向前或向后移动。
Read − 默认情况下,当文件以读取模式打开时,文件指针指向文件的开头。 有一些选项,用户可以在打开文件时告诉操作系统在哪里定位文件指针。 读取文件指针的下一个数据。
Write − 用户可以选择以写入模式打开文件,这使他们能够编辑其内容。 它可以是删除、插入或修改。 文件指针可以在打开时定位,也可以在操作系统允许的情况下动态更改。
Close − 从操作系统的角度来看,这是最重要的操作。 当产生关闭文件的请求时,操作系统
- 删除所有锁(如果处于共享模式),
- 将数据(如果更改)保存到辅助存储介质,并且
- 释放与文件关联的所有缓冲区和文件处理程序。
文件内的数据组织在这里起着重要作用。 根据记录是顺序排列还是集群排列,将文件指针定位到文件中所需记录的过程。