计算机系统存储体系

数据库存储与检索问题

两个基本问题?

  • 如何高效的存储?-- 数据组织和索引
  • 如何快速的检索?-- 查询实现与查询优化

数据库组织基础-- 存储体系

操作系统如何管理磁盘和数据

操作系统对数据组织:FAT-目录(文件夹)-磁盘块/簇
FAT(文件分配表-File Allocation Table)
一个磁盘块/簇可以是一个扇区或者多个扇区

缓冲区的管理

  • 一条记录的地址 = 存储单元地址 = 内存地址 = 页面 : 页面偏移量
  • 页面 = 块
  • 内存页面的分配:申请内存,操作系统进行分配
  • 内存页面置换:内存中要访问的数据不存在,需要从磁盘中置换时,操作系统中有学过交换策略如LRU

磁盘的结构和特性

磁盘以及磁盘容量

盘面:磁道:扇区
磁盘的读写单位:Sector -> 簇/块Block:连续的扇区

磁盘数据访问

物理存取算法考虑关键:

  1. 降低I/O次数
  2. 降低排队等待时间
  3. 降低寻道/旋转延迟时间

DBMS数据存储与查询实现的基本思想

数据存储的映射示意


首先数据库逻辑层中数据存储是表和表记录呈现,而数据库物理层的数据存储是以磁盘块的形式,磁盘块中存放记录数据,表记录数据是通过索引和磁盘块进行映射的,索引的每一项都有指向一个磁盘块的指针,而 操作系统中的FAT表,每一个文件都对应一块磁盘块,当要添加记录的时候,利用操作系统的FAT表先占用磁盘块,接着根据索引将记录写到磁盘块中。
当要查询记录时,根据索引找到对应的磁盘块,然后将磁盘块加载到内存(数据库缓冲区DB Buffer)当中,数据库缓冲区和磁盘存在存在映射关系,由内存页面-磁盘块表来管理,而记录和数据库缓冲区存在映射关系,由记录-指针表来管理,当数据库缓冲区中满了,操作系统会根据替换磁盘块。

数据存储与查询实现的基本示意框架

数据库-表所占磁盘分配方法

  • 连续存储:数据块分配在连续的磁盘块上(缺点:当后续扩展(插入新纪录)困难)
  • 链接分配:数据库中包含下一个数据库的指针(访问速度慢)
  • 按簇分配:就是若干个连续的磁盘块,簇之间按指针连接
  • 索引分配:索引块中存放指向实际数据块的指针

文件的组织方法

  • 无序组织:无序记录文件(堆文件)
    记录可以存储在任意的空间,磁盘上上记录存储是无序的,跟新的效率高,但是检索的效率可能很低。

    对于数据插入又两种选择,一种是插入到文件的尾部(也就是数据最后面),一种是插入到已经被删除记录的位置,前提是记录空间大小要不大于被删除记录空间大小。

    对于记录频繁更新会造成空间浪费,所以需要有周期性的数据库重组,也就是回收那些被删除记录的空间。

  • 有序组织:有序记录文件
    插入的记录能够按照某个属性值有序的存储,这样的话检索效率可能高。
    用来存储排序的属性通常被称为排序字段,通常排序字段使用关系中的主码(表中主键),所以又称排序码。

    有序文件的更新效率可能很低,因为在插入的时候,需要移动其他记录,因此,采取的方法是保存一个临时的无序文件(溢出文件),用来存放插入的记录,目的是保持主文件依然是有序的,但是如果溢出文件的记录过多时,有序文件的检索效率高的特点就消失了,所以也需要周期性的数据库重组。

  • 散列文件
    可以把记录按照某属性或者属性值,根据一个散列函数计算应该存放的位置:桶。检索和更新的效率都有一定提高。 散列字段通常是关系中的主码,所以又称散列码。

    散列文件存在不同记录可能放在同一个桶中,此时需要在桶内顺序检索出某一记录。

  • 聚簇文件
    将具有相同的或者相似的属性值记录存放在连续的磁盘中
    多表聚簇:将若干个相关的表存储在一个文件中可以提高多表情况下的查询速度。

数据库系统——数据库物理存储相关推荐

  1. 题10 能给出数据库物理存储结构和物理存取方法的是什么?

    考查对数据库系统的认识 问:     能给出数据库物理存储结构和物理存取方法的是什么?     a.内模式     b.外模式     c.概念模式     d.逻辑模式      解析:     求 ...

  2. oracle实验报告2:: Oracle数据库物理存储结构管理(含实验小结)

    目录 实验目的 实验设备及器材 实验内容 实验步骤 实验过程 实验小结 实验目的 1.熟悉Oracle数据库物理存储结构: 2.掌握Oracle数据库数据文件的管理: 3.掌握Oracle数据库控制文 ...

  3. Oracle数据库物理存储结构管理

    1.实验目的 (1)掌握Oracle数据库数据文件的管理. (2)掌握Oracle数据库控制文件的管理. (3)掌握Oracle数据库重做日志文件的管理. (4)掌握Oracle数据库归档管理. 2. ...

  4. Oracle数据库物理存储结构管理遇到的问题与解决

    问题一:当我创建一个重做日志文件放入重做日志文件组中的时候,查询数据字典发现新创建的重做日志文件的状态为"不合法". 解决方案:      通过查阅相关资料了解到 新建的重做日志文 ...

  5. 属于oracle的物理存储结构,说明 Oracle 数据库物理存储结构的组成及其功能。

    [多选题]各类型汽车的转向桥结构基本相同,组成主要包括? ( ) [单选题]亚当与夏娃赤身露体便拿什么树的叶子为自己编作裙子? [多选题]烘焙专用油脂主要包括?( ). [单选题]对创业活动的目标及实 ...

  6. 【数据库考试】数据库是存储在计算机内结构化的数据的集合

    (1)(数据库)是存储在计算机内结构化的数据的集合 (2)下述关于数据系统正确的描述是(数据库系统减少了数据冗余). (3)数据库(DB).与数据库系统(DBS)和数据库管理系统(DBMS)之间的关系 ...

  7. 查看数据库、表、索引的物理存储情况

    在管理.维护数据库时,经常需要查看数据库文件.日志文件所占用的磁盘空间,以及磁盘还剩下的磁盘空间,你可以通过下面几种方面 查看数据库文件详细情况: 1: 是通过远程连接(或VPN)连接到数据库服务器, ...

  8. oracle存储查询出来的值_技术分享|浅析ORACLE数据库物理体系结构及其对应优化策略...

    张志国 合肥科技研发中心 Oracle数据库服务器有两个主要的组成部分:数据库和实例(instance).Oracle数据库用于存储和检索信息,是数据的集合.Oracle实例是指数据库服务器的内存及相 ...

  9. 索引视图是否物理存储在数据库中以及使用索引视图的一些见解

    索引视图是否物理存储在数据库中以及使用索引视图的一些见解 前言 这个话题我本来是写在文章里没有写在随笔里的,不过赶脚不写在随笔里其他人就看不到了,因为小弟对视图的认识不深 希望写在随笔里让大家也讨论一 ...

最新文章

  1. 史上最简洁的UITableView Sections 展示包含NSDicionary 的NSArray
  2. Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
  3. sqli-lab(16)
  4. mysql数据库入门教程(10):标识列和事务
  5. VTK:网格之Triangulate
  6. webbrowser设置为相应的IE版本
  7. 服务器3个w目录文件夹,第 4 章 目录服务器条目 (Sun Java System Directory Server Enterprise Edition 6.2 管理指南)...
  8. 攻城狮危险:波士顿动力机器狗去福特当工程师了!
  9. 网络工程师需要具备哪些素质或专业技术
  10. Leetcode--191. 位1的个数
  11. 1亿人点赞的晚会,如何做技术沉淀?
  12. python计算两个日期的差
  13. poj2752Seek the Name, Seek the Fame【kmp next数组应用】
  14. 【五级流水线CPU】—— 3. 逻辑、移位与空指令 + 数据冒险RAM解决
  15. 配置Log4j(很详细)1
  16. 2020-11-30 03_空域图像处理 笔记
  17. 再续上一篇:如果哪天沃尔玛也“.CN”了
  18. 怎么把kux格式转换成mp4?完美转换优酷kux格式
  19. 【​观察】“数字广东”背后的力量 腾讯云创新政务服务新模式
  20. (笔记)Mac下耳机左右声道不平衡(左边小右边大或者右边大左边小)的解决方法

热门文章

  1. Ubuntu下安装拳皇97
  2. 【STC单片机学习】第十四课:SPI通信-实时时钟DS1302
  3. cookie清空Java_java清除及设置cookie代码
  4. [IOS]SMS获取验证手机验证码
  5. java 制作简易日历_如何用Java制作一个简易日历
  6. Android APP性能及专项测试(学习笔记)
  7. 非CS专业的人如何学才能够像CS专业一样
  8. 机器学习——KMeans聚类
  9. iOS 调用打印机
  10. openGauss WDR Snapshot生成性能报告详细解读