数据库的物理存储体系

来源:互联网 发布:java银行项目经验 编辑:程序博客网 时间:2024/06/04 20:01

物理存储介质

  • 将不同性价比的存储器组织在一起,满足高速度、大容量、低价格需求。
  • CPU与内存直接交换信息,按存储单元(存储字)进行访问
  • 外存按存储块进行访问,其信息需先装入内存,才能被CPU处理

啦啦啦

  • 访问磁盘比访问内存慢了10的四次方倍。

  • 文件在磁盘上的存储体系:文件分配表FAT—目录(文件夹)—磁盘块(簇)


磁盘的结构与特性

  • 磁盘由8个盘-16个盘面-磁道-扇区组成
  • 磁盘的读写单位:簇/块(连续的若干个扇区)
  • 磁盘读写时间:寻道时间+旋转时间+传输时间
  • 物理存取算法考虑的关键:
    • 降低I/O次数
    • 降低排队等待时间
    • 降低寻道/旋转延迟时间
      (同一磁道连续存储/同一柱面不同磁道并行块存储/多个磁盘并行块存储)

查询实现的基本思想

  • RAID技术:
    并行读取多个磁盘——拆分文件(比特级拆分/块级拆分)
    可靠性:奇偶校验与纠错

  • 数据库表与磁盘块的映射——通过索引实现。

  • 磁盘块管理包括读写磁盘块(数据被组织成一个个磁盘块,块上是01串)

  • 内存缓冲区管理包括对于内存空间的分配管理,以及调入调出内存页的策略管理,即调用磁盘块的读写函数。
  • 文件管理:数据库表和内存页的映射通过索引实现。

记录与表在磁盘上的存储

  • 数据库记录在磁盘上的存储:
    定长记录——一条记录有固定长度的字节,按字节数区分记录。
    变长记录——加入标志/指针隔开记录的属性值。

  • 记录可以跨块存储和非跨块存储
    非跨块存储——浪费一些存储空间,但磁盘块之间无关联可并行
    跨块存储(用指针连接)——节省一些存储空间,但磁盘块之间有关联需串行。

  • 表所占磁盘块的分配方法
    连续分配:扩展困难问题
    链接分配:数据块中包含指针,访问速度问题
    按簇分配:簇是若干连续的磁盘块,簇之间靠指针连接。
    索引分配:索引块中存放指向实际数据块的指针


数据库的文件组织方法

四种

* 特点 插入方法 删除方法 优点 缺点 改进措施 无序记录文件 记录可存储于任意空闲位置 插入到尾部;插入到有“删除标记”的空间 直接删除;标记“删除标记” 更新效率高 检索效率低;增删频繁造成空间浪费,因此需要周期性重组数据库 有序记录文件 记录按某属性(组)的顺序插入 插入到有“删除标记”的空间 查找然后删除 检索效率高(按存储排序的属性即排序字段检索时),可以采用折半查找法 更新效率低,因为更新时要移动其他记录 预留空间以放置新插入的元祖,称为溢出文件,是无序的。因此需要 周期性重组数据库 散列文件 按某属性的值依据一个散列函数计算存放位置(桶号) 计算桶号然后插入;插入到溢出桶 查找然后删除 检索和更新效率都有提高 桶满会溢出 链接法处理溢出,预留溢出桶 聚簇文件 将具有相同或相似属性的记录存放于连续的磁盘簇块中 查找然后删除 检索和更新效率都有提高
原创粉丝点击