顺序索引
搜索码
记录的一个或多个属性
聚集索引/主索引
包含记录的文件按照搜索码指定的顺序排序,有聚集索引的文件称为索引顺序文件
非聚集索引/辅助索引
搜索码指定的顺序与文件记录的顺序不同
索引项/索引记录
由一个搜索码值和指向搜索码值对应的记录的指针的集合构成
稠密索引
每个搜索码值都有一个索引项,稠密聚集索引中每个索引项包含搜索码值和指向第一个具有搜索码值的记录,稠密稀疏索引中每个索引项包含指向所有具有搜索码值的记录
稀疏索引
只为搜索码的某些值建立索引,稀疏聚集索引中每个索引项包含搜索码值和指向第一个具有搜索码的记录,不存在稀疏非聚集索引
多级索引
索引的更新
- 插入
- 稠密索引:如果是新的搜索码值则加索引加记录;否则如果是聚集索引则加在具有同样搜索码值的记录之后,非聚集索引则加指针加记录
- 稀疏索引:假设索引为一个块保存一个索引项,则建立新块时将块中最小记录的搜索码值加入索引
- 删除
- 稠密索引:如果是唯一记录则删索引删记录;如果是多个指针则删指针删记录,如果是单个指针且是第一条记录则删除记录指针指向下一个
- 稀疏索引:如果不包含索引则只删记录;如果包含索引,如果是唯一一条记录则删记录使索引指向下一个记录,如果下一个记录已经有索引则删除索引,如果不是唯一一条记录则删除,是第一个则指针移向下一个,否则直接删记录
B+树索引
- n指一个节点的指针数目,值的数目为n-1
- 非叶节点要有n/2的上界至n个指针
- 叶节点要有n-1/2的上界至n-1个值
- 根节点指针树要大于等于2
- 高为以n/2的上界为底叶节点数目的对数
- 父节点中每个指针指向的子节点的值的集合大于等于指针左边的值小于指针右边的值
- 如果有重复的值则上述条件为小于等于
静态、动态散列
有范围查询时顺序索引,无范围查询时用散列