上海交通大学 研究生 工业数据库与数据挖掘课件 第四章第一节
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章
数据库存储管理
如果它的兄弟节点不能接纳该节点的其他值 重新分配这两个节点中的数据值 修改父节点对应的指针 如果根节点在修改后,只有一个子节点,将该子节点作 为根节点,整个树的深度-1
第四章
数据库存储管理
第四章
数据库存储管理
第四章
数据库存储管理
B树索引 搜索码的值仅出现一次; 叶节点:
非叶节点
IBM 磁盘参数
B Btt C Ebt M R S T block size 2400 bytes block transfer time 0.8ms Blocks per cylinder 600 effective block tran time 0.84ms minimum seek time 3ms average rotational latency 8.3ms average seek time 16ms speed 3000bytes/ms
第四章
数据库存储管理
索引 (Indexing) 提高数据获取速度。 搜索码 用来在文件中进行查询的属性或属性集 索引文件 搜索码+指针
第四章
评价: 访问方式; 访问时间; 插入时间; 删除时间; 空间开销
数据库存储管理
第四章
数据库存储管理
顺序索引 索引依据搜索码顺序存储。 主索引(Primary index): 在顺序存储的文件中,以这个顺序属性为搜索码建立的 索引。 聚集索引(clustering index) 存储位置依据索引进行。
第四章
数据库存储管理
一般为遍历从根节点到叶节点的一条路径。长度不超过
B+树的节点非常大,一般是一个磁盘块。 假设一个块为4096, 磁盘指针为8字节,搜索码32个字节, n =100,当搜索范围为 1百万,这样搜索一个数据大约 log50(1 000 000) =4 而对于二叉树,log2(1 000 000) =20
第四章
数据库存储管理
数据存储介质 高速缓存(Cache):快速数据读写、操作系统管理; 主存储器(内存):存储指令、数据;容易丢失; 磁盘(辅存):用于长期联机数据存储的介质; 光存储、磁带存储(脱机存储):大容量存储、备份
第四章
数据库存储管理
第四章
数据库存储管理
存储介质:磁盘 需要加载到内存进行处理; 以“块”方式进行数据存取; 块的大小相同,512-8192字节直接; 每次访问磁盘,至少存取一个物理块;
第四章
优点:
数据库存储管理
节点减少; 可能的搜索路径减少; 缺点: 非叶节点长度增加;需要换入换出可能性增加; 更新复杂
第四章
聚集索引:
数据库存储管理
数据存储依据索引的键值。每个表仅能包含一个聚集索引。 表中如果没有任何聚集索引,数据存储以堆 heap 的方式。
非聚集索引:
索引的指针(row locator)指向堆位置,或者聚集索引的索 引位置。
第四章
数据库存储管理
多级索引 如果索引过大,处理开销增大。可能需要换入换出。 需要建立索引的索引文件。 将索引文件看成数据文件;
第四章
数据库存储管理
第四章
数据库存储管理
索引的更新 删除: 删除记录,如果搜索码在索引文件唯一,删除索引。 对于稠密索引,类似删除记录;对于稀疏索引,用下一搜索码 替代。如下一搜索码在索引文件中,删除。 插入: 对于稠密索引,搜索码不在索引文件中,加入; 对于稀疏索引,一般索引为一个块,若有新块增加,加 入新的索引。
第四章
数据库存储管理
第四章
增加搜索码“Clearview”
数据库存储管理
第四章
删除
数据库存储管理
找到删除记录,删除,并删除指针桶中的指针。 如果桶为空,从叶节点中删除搜索码+指针; 若删除后,叶节点的个数小于[n-1/2],需要删除 这个节点 如果它的兄弟节点可以接纳其它值,
将这两个节点和并; 删除该节点 从父节点中删除指向该节点的数据对 若父节点的个数小于[n/2],合并父节点, 递推
第四章
数据库存储管理
缓存处理(Buffer manager) 读取提前(Prefetching) 写入采用延迟写(Delayed Write) 替换策略:最近最少使用least recently used (LRU)
操作系统利用过去的块访问来预言未来的块访问, 假定最近被访问的块最有可能再次被访问。
被钉住的块
限制此块数据回写到磁盘,禁止释放。
第四章
读出
数据库存储管理
写入
第四章
数据库存储管理
文件组织 定长记录 每条记录的包含的属性数据长度一定(n字节)。 一个文件存储一种关系的数据; 存储: 第i个记录:存放在n*(i-1)位置,可能跨块。 更新(删除第i个记录) 1) 后续记录前移; 2)最后记录替代
顺序读10Blocks 时间= s+r+10*ebt = 16+8.3+10*0.84=32.7ms; 随机读10Blocks 时间= 10*(s+r+ebt) = 10*(16+8.3+0.84) = 10*25.1 = 251ms
第四章
数据库存储管理
缓存处理(Buffer manager) 磁盘的存取速度比内存慢许多,系统在内存中提供若干 与物理块大小相同的缓存块。 对于磁盘的读写操作以及系统的读写处理可以并行进行。
第四章
数据库存储管理
辅助索引 当需要依据其它属性进行搜索。 搜索码包含所有键值。 指针并不指向文件,每个指针指向包含文件指针的桶 (bucket) 辅助索引必须是稠密的
第四章
数据库存储管理
第四章
数据库存储管理
主索引:稠密索引(数据依据主键排列) 稀疏索引,数据不依赖于主键排列
次索引:稠密索引 聚集索引 :数据依据索引存储 非聚集索引
第四章
文件组织 空闲指针方法
数据库存储管理
第四章
采用定长方式
数据库存储管理
第四章
采用定长方式
数据库存储管理
第四章
数据库存储管理
文件组织 变长记录 一个文件包含多个关系记录; 记录是变长度的。如客户--帐户关系(1-N)
Leabharlann Baidu
第四章
数据库存储管理
使用分槽的页结构: 采用块头:记录个数,空闲的尾地址,包含记录位置、大小的数组。 记录分配、删除方式
第四章
动态索引: B+树索引文件
数据库存储管理
第四章
数据库存储管理
B+树索引文件 顺序索引文件在增大后,性能下降。 B+树索引实际是多级索引,采用平衡树结构。 树的节点如下: 包含n-1个搜索码Ki和n个指针Pi。 Pi指向搜索码Ki的一个文件记录或指针桶。
第四章
特点:
数据库存储管理
从根节点到叶节点的路径长度相同。 每个非根/叶节点包含[n/2]—n 个子节点 每个叶节点包含[n-1/2]-n-1个值 根节点至少包含2个子节点,如果根节点为叶节点,可 以包含0—n-1值。
根节点 指针可以小于[n/2] 至少有2个
第四章
数据库存储管理
第四章
1 2 3
数据库存储管理
叶节点包含2-4个值;(n-1)/2 - (n-1) 非根、叶节点包含3-5个子树 n/2 - n 根节点至少2个子树。
第四章
数据库存储管理
查询 查找所有搜索码为k的记录 从根节点开始 查找最小的搜索码 > k 如果存在,假设为Ki, 则沿Pi 指向的子节点查找, 如果不存在,即k> Km-1,则沿Pm指向的子节点查找。 如果子节点不是叶节点,重复上述过程 如果子节点是叶节点,若Ki = k, 则Pi指向记录或 记录桶。
第四章
数据库存储管理
插入 搜索,找到叶节点 如果搜索码在叶节点,将记录放入文件,指针放入指针桶。 如果搜索码不在叶节点中,并且叶节点有房间: 记录放入文件, 在空闲房间放入搜索码; 创建指针桶,放入指针。
第四章
数据库存储管理
如果没有空闲房间, 进行叶节点分解,将前[n/2]放入原来节点,剩余放入新增 加节点。 假设新的节点为p, k为p中的最小值,插入(k,p)到分裂节 点的父节点上。如果父节点也满了,重复上述过程对父节点进 行分裂。 上述过程进行到没有节点分裂为止,最坏结果为根节点分 裂,则表明B+树深度+1;
第四章
数据库存储管理
稠密索引:Dense Index Files 每个搜索码的值均在索引记录中。
第四章
数据库存储管理
稀疏索引:Sparse Index Files 索引记录仅包含部分搜索码的值。
在索引文件中找到小于等于记录搜索码中最大的项。沿该指针指向的记录开 始查找。 (依赖条件:数据存储依据一定的顺序)
第四章
数据库存储管理
叶节点结构: Pi 指向搜索码为Ki的文件记录或文件记录桶(桶中的所 有记录的搜索码为Ki), (对于搜索码不是主码) 对于Li 和 Lj 为叶节点 , 如果 i< j , Li的所有搜索码的值 小于Lj 的所有搜索码的值。 Pn指向下一个叶节点。
第四章
数据库存储管理
非叶节点 叶节点的多级稀疏索引。 在P1指针指向的子树上的所有搜索码 < K1 2<= i <= n-1 , Pi指向的所有子树有 Ki-1 <=S < Ki (Pm)指针指向的子树上的所有搜索码 >= Km-1