物理存储介质
- 将不同性价比的存储器组织在一起,满足高速度、大容量、低价格需求。
- CPU与内存直接交换信息,按存储单元(存储字)进行访问
- 外存按存储块进行访问,其信息需先装入内存,才能被CPU处理
访问磁盘比访问内存慢了10的四次方倍。
文件在磁盘上的存储体系:文件分配表FAT—目录(文件夹)—磁盘块(簇)
磁盘的结构与特性
- 磁盘由8个盘-16个盘面-磁道-扇区组成
- 磁盘的读写单位:簇/块(连续的若干个扇区)
- 磁盘读写时间:寻道时间+旋转时间+传输时间
- 物理存取算法考虑的关键:
- 降低I/O次数
- 降低排队等待时间
- 降低寻道/旋转延迟时间
(同一磁道连续存储/同一柱面不同磁道并行块存储/多个磁盘并行块存储)
查询实现的基本思想
RAID技术:
并行读取多个磁盘——拆分文件(比特级拆分/块级拆分)
可靠性:奇偶校验与纠错数据库表与磁盘块的映射——通过索引实现。
磁盘块管理包括读写磁盘块(数据被组织成一个个磁盘块,块上是01串)
- 内存缓冲区管理包括对于内存空间的分配管理,以及调入调出内存页的策略管理,即调用磁盘块的读写函数。
- 文件管理:数据库表和内存页的映射通过索引实现。
记录与表在磁盘上的存储
数据库记录在磁盘上的存储:
定长记录——一条记录有固定长度的字节,按字节数区分记录。
变长记录——加入标志/指针隔开记录的属性值。记录可以跨块存储和非跨块存储
非跨块存储——浪费一些存储空间,但磁盘块之间无关联可并行
跨块存储(用指针连接)——节省一些存储空间,但磁盘块之间有关联需串行。表所占磁盘块的分配方法
连续分配:扩展困难问题
链接分配:数据块中包含指针,访问速度问题
按簇分配:簇是若干连续的磁盘块,簇之间靠指针连接。
索引分配:索引块中存放指向实际数据块的指针
数据库的文件组织方法
四种
| * | 特点 | 插入方法 | 删除方法 | 优点 | 缺点 | 改进措施 |
|---|---|---|---|---|---|---|
| 无序记录文件 | 记录可存储于任意空闲位置 | 插入到尾部;插入到有“删除标记”的空间 | 直接删除;标记“删除标记” | 更新效率高 | 检索效率低;增删频繁造成空间浪费,因此需要周期性重组数据库 | |
| 有序记录文件 | 记录按某属性(组)的顺序插入 | 插入到有“删除标记”的空间 | 查找然后删除 | 检索效率高(按存储排序的属性即排序字段检索时),可以采用折半查找法 | 更新效率低,因为更新时要移动其他记录 | 预留空间以放置新插入的元祖,称为溢出文件,是无序的。因此需要 周期性重组数据库 |
| 散列文件 | 按某属性的值依据一个散列函数计算存放位置(桶号) | 计算桶号然后插入;插入到溢出桶 | 查找然后删除 | 检索和更新效率都有提高 | 桶满会溢出 | 链接法处理溢出,预留溢出桶 |
| 聚簇文件 | 将具有相同或相似属性的记录存放于连续的磁盘簇块中 | 查找然后删除 | 检索和更新效率都有提高 |