DBMS的数据操作算法、查询优化处理方法和事务处理算法与数据库的物理存储结构密切相关。
数据库存储设备:
flash memory 闪存
magnetic disk 磁盘存储器
optical disk 光盘
magnetic tapes 磁带
这里的联机存储和脱机存储?
磁盘存储器:磁盘组、磁道、扇区、柱面。
随机存取;所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。相对的,读取或写入顺序访问(SequentialAccess)存储设备中的信息时,其所需要的时间与位置就会有关系(如磁带)。
以扇区为单位进行读写;主存与磁盘交换信息必须以磁盘块为单位,磁盘块由一个或多个扇区组成。
磁盘块地址由:柱面号;面号(一个盘片=两个盘面);扇区号 组成
进行磁盘读写时,主存中必须有与磁盘块容量相匹配的缓冲区。
磁盘读写代价由:寻找时间、旋转延迟、传输时间组成。其中大部分时间花在寻找和延迟上。注意旋转延迟指定的是磁盘块
最小化磁盘读写次数
LRU(最近最少使用)least recently used
FIFO(先进先出)
立即丢弃策略
RAID redundant 多余的
使用奇偶校验的方法恢复数据。
同时还可以起到“并行读写”的方法:
磁盘文件:
数据项——文件记录(数据项集合) 对应于一个关系元组
第三种方法只适用于定长,不然不知道最后一个记录的实力会不会太大了装不下
文件存储方法:
文件难扩充,因为要求连续存储空间。
参照数组和链表。
query处理高效
Hash文件:
简单HASN方法:
解决桶溢出问题: 多重Hash方法、链接法
h:散列键->i(桶编号) 可以当“主键”理解~
动态HASH方法:
可拓展HASH方法:
索引文件:
按结构分类:稀疏索引、稠密索引、多级索引。
按索引域特点分类索引:主索引、聚集索引、辅助索引
主索引只保留磁盘块块首指针,为稀疏索引。
第二个要加1,因为要从
B+-树文件索引:
不能保持树的平衡,检索较高级别叶节点性能低下;
删除操作可能使树的某些节点接近于空,浪费磁盘存储空间。
定义. 秩为D的B+树定义如下:
叶子节点中最多存D-1条记录和一个数据指针Pnext。D为秩。
注意使用的是D/2向上取整哦
整个树都加深了一级。
D/2向下取整,内节点下溢处理使用D/2向上取整。
最后那个145已经没了。只有一个孩子节点,要它没用。
只有叶子上的节点索引了数据文件。
代价分析:
B+树的查找效率怎么样呢?
这里,给定叶子节点的数量,我们希望树尽量的高,所以根节点用最少的儿子数量让树先增长一层,然后再算下面的高度。
在D足够大时不考虑取整符号。可以算出来h是θ(logD(N))的。
多维索引:
(留存一下老师上课的笔记)
后面他还拓展的讲了一下LSM Tree和BulkLoading。(拓展了解)