基本概念
输入顺序文件( entry-sequenced file )
按照记录进入系统的顺序存储记录
- 输入顺序文件相当于一个磁盘中未排序的线性表
- 因此不支持高效率的检索
主码
主码( primary key ) 是数据库中的每条记录的唯一标识
- 例如,公司职员信息的记录的主码可以是职 员的身份证号码
- 如果只有主码,不便于各种灵活检索
辅码
- 辅码( secondary key ) 是数据库中可以出现重复值的码
- 辅码索引把一个辅码值与具有这个辅码值的每一条记录的主码值关联起来
- 大多数检索都是利用辅码索引来完成的
索引
索引( indexing ) 是把一个关键码与它对应的数据记录的位置相关联的过程
- (关键码,指针)对,即( key, pointer )
- 指针指向主要数据库文件(即“主文件”)中的完整记录
索引文件( index file ) 是用于记录这种联系的文件组织结
- 索引技术是组织大型数据库的一种重要技术
- 高效率的检索
- 插入、更新、删除
稠密索引 vs 稀疏索引
- 稠密索引:对 每个记录建立一个索引项
- 主文件不按照关键码的顺序排列
- 稀疏索引:对一组 记录建立一个索引项
- 记录按照关键码的顺序存放
- 可以把记录分成多个组(块)
- 索引指针指向的这一组记录在磁盘中的起始位置
线性索引
线性索引文件
- 按照关键码的顺序进行排序
- 文件中的指针指向存储在磁盘上的文件记录起始位置或者主索引中主码的起始位置
线性索引的问题
- 线性索引太大,存储在磁盘中
- 在一次检索过程中可能多次访问磁盘,从而影响检索的效率
- 使用二级线性索引
- 更新线性索引
- 在数据库中插入或者删除记录时
二级线性索引
- 例如,磁盘块的大小是 1024 字节,每对 (关键码,指针)索引对需要 8 个字节1024 / 8