- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 数据库文件存储技术 主要内容 5.1 文件组织 5.2 索引技术 5.3 哈希技术 5.1文件组织 在外部存储设备中,数据库以文件形式组织,而文件有记录组成。 从文件的组织形式看,分为逻辑结构和物理结构两种。 逻辑结构文件组织有两种方式,一种是把文件看成无结构的流式文件,另一种是把文件看成有结构的记录式文件 文件中记录的组织方式有堆文件、顺序文件、聚集文件和哈希文件四种。 (1)堆文件 在堆文件中,记录可以放在文件的任何位置上,一般以输入顺序为序。 (2)顺序文件 在顺序文件中,记录按查找某个关键码值的大小顺序组织存储的。 (3)聚集文件 在聚集文件中,一个文件可以存储多个关系记录,不同的关系中有联系的记录存储在同一块内,可以提高查找速度和I/O速度。 (4)哈希文件 把根据记录的某个属性值通过哈希函数求得值作为记录的存储地址(即“块号”),这种技术通常与索引技术连用。 5.1.1文件组织形式 本节讨论逻辑文件中的记录在物理文件中将如何实现 记录式结构分为定长记录和变长记录两种 1.定长记录 一般在文件中的记录有固定长度,这种长度一般都是一由文件记录确定。 例如:对于关系模式 SC(Snum,Cnum,Score)可以设计一个文件,其中各数据项定义如下: Snum:CHAR (8); Cnum:CHAR (9); Score:SMALLINT; 如上图每条记录包含姓名、学号、班级三条信息,在每条记录中对应的信息占相同的字节数,所以每条记录的长度一定,构成一个含有四条记录的定长记录文件。 在系统运行时存在两个问题: 1)删除:删除后是在其位置补充一个记录还是忽略这个位置。 2)长度:若物理上每个块的大小不等于每个记录的长度倍数,则必然在读这样的记录时要访问两个块。 (1)删除方法 1) 把被删除后的记录依次移上来。 缺点移动次数过多。 2) 把文件中最后一个记录填补到删除记录的位置。 只需移动一次。 以上两个方法都需要移动结点,操作不灵活,处于灵活的考虑必然会想到指针,就是第三种方法。 3) 把被删除的结点用指针链接起来 首先,文件增设“文件首部”,其中有一个指针指向第一个被删除的记录位置,所有被删除记录的位置都用指针链接起来,构成“空闲记录链表”。 缺点:这些被指针链接的记录被称为“被拴记录”,若被删记录被删掉,则指向记录的指针称为“悬挂指针”,所指空间称为“垃圾”,也就是别人无法使用而又被空闲着。 (2) 插入方法 可以根据删除的方法而定,直接插入尾部,或插到空位置。 2. 变长记录 在文件中记录的长度有时是可以变化的,如一个文件中允许存在不同类型的记录,或允许记录可以变长的,以及记录中某些项可以变长等。 变长记录的表示有字节串形式和定长形式两种 (1) 变长记录的字节串表示形式 ①尾标志法 把每个记录看成连续的字节串,然后在每个记录的尾部附加 “ 记录尾标志符 ” (∧), 表明记录结束。图 5.1 的定长记录文件可以用图 5.3 的格式表示。 ② 记录长度法 记录的开始加一个记录长度的字段来实现,读取数据时以此作为记录结束与否的标志。 字节串表示形式缺点: 每条记录长度不一,被删除后的位置难于重新使用。 记录要增长很难 。 “分槽式页结构”:每块的开始设置一个“块首部”,包含以下信息:块中的记录数目,指向块中自由空间尾部的指针,登记每个记录近的开始位置和大小的信息。 (2) 变长记录的定长表示形式 1)预留空间技术 取所有记录中最长的一个记录的长度作为存储空间的记录长度,来存储变长记录。对于预留空间,仍如同定长格式的表格状。 缺点:如果每个记录的差别很大,就会造成大量空间的浪费。 例如图 5.3 的字节串表示形式可以用图 5.5 的预留空间技术实现。该方法一般在大多数记录的长度接近最大长度时才使用,否则使用时空间浪费很大。 2) 指针技术 解决记录长度差很大的方法,省去过多的空间浪费。 每个定长记录后面增加指针指向在上一方法中可以合并为同一记录的其他记录。 被指向的整体成为溢出块 5.1.2顺序文件组织 顺序文件一般最为常用的是按关键字的升序或降序排列,即每个记录增加一个指针字段,根据主键的大小用指针把记录链接起来
文档评论(0)