文章目录
- 1.数据库记录到磁盘的映射
- 2.数据库记录在磁盘上的存储
- 3.数据库-表所占磁盘块的分配方法
1.数据库记录到磁盘的映射
如何把数据库中的记录映射到磁盘中
- 数据库概念与磁盘相关概念的映射示意
一个表如何确定他的磁盘块,这就是存储模式;
DBMS是表与磁盘块的映射,OS是文件与磁盘块的映射;
2.数据库记录在磁盘上的存储
数据库中记录的区分及记录内属性值的区分
定长记录与变长记录
- 一条记录如何存储在磁盘上?存储在磁盘上如何区别这是一条记录?
- 数据库记录在磁盘上的存储可以分为:定长记录,变长记录(靠分隔符区分开始与结束)
eg:定长记录:每43个字节区分一条记录,然后在此基础上确定属性值,每个属性值都有固定的长度;
变长记录:Oracle有可变长字符串,可长可短,每条记录或属性中加一些标志(指针)来区分; - 一个典型磁盘块的eg
每个磁盘块都有一个块头,块头中包括:记录的个数,每条记录存放的位置(指针,通过指针知道读写的位置将其读写出来);
若记录的空间不够怎么办?Oracle会留一些可扩展的空间;
记录是非跨快存储还是跨快存储(靠指针)
3.数据库-表所占磁盘块的分配方法
连续分配: 数据块被分配到连续的磁盘块上(会存在扩展困难问题)
链接分配: 数据块中包含指向下一数据块的指针(访问速度问题)
按簇分配: 按簇分配,簇是若干连续的磁盘块,簇之间靠指针连接;
- 簇有时也称片段Segment或盘区extent
索引分配: 索引块中存放指向实际数据块的指针