数据结构系列11——索引(Indexes)中的概念
为什么要有索引?
因为当数据量极其大的时候,查找、检索、修改就变得很困难,因此需要借助索引来提升效率
为了方便后续的学习,要先学习几个概念
概念1:输入顺序文件(entry-sequenced file )
顾名思义就是按照数据的写入顺序进行记录,基本上就是数据越多,这个文件就越大
并且这个文件的‘顺序’指的是‘写入顺序’,因此数据并没有按照数据特性进行排序(相当于就是乱序)
综上所述:这种寻找方式很坑。。。。
概念2:主码
主码是数据库中数据的唯一标识(优点)
单单靠主码进行检索的话效率不高,也不够灵活(缺点)
概念3:辅码
辅码是数据库中可以出现重复值的码
辅码索引把一个辅码值与具有这个辅码值的每一条记录的主码值关联起来
大多数检索都是利用辅码索引来完成的
概念4:索引(indexing )
是把一个关键码与它对应的数据记录的位置相关联的过程
概念5:索引文件(index file )
用于记录‘关键码对应记录位置’这种联系的文件组织结构
索引文件的记录是二元组(key,pointer)
将每个关键码和一个指针关联,指针指向主要数据库文件(也称为“主文件”)中的完整记录
索引文件并不需要重新排列记录在磁盘中的顺序(不必重排主文件)
一个数据库可能有多个相关的索引文件,每个索引文件往往支持一个主码或辅码字段,这为检索时的灵活性提供了保障
这样我们就可以通过该索引文件高效灵活地访问我们想要的数据了
概念6:稠密索引
如果数据库文件中的记录不按照关键码的顺序排列时(比如按照加入的顺序排列),那么我们需要对每一个记录建立一个索引项,这样建立的索引被称为稠密索引(dense index )
概念7:稀疏索引
对一组记录建立一个索引项,这种索引称之为稀疏索引(spare index )
当记录在磁盘中是按照关键码的顺序存放,可以把记录分成多个组(块),稀疏索引索引项的指针指向的是这一组记录在磁盘中的起始位置