存储体系 DBMS读取、存取磁盘上的数据 磁盘结构特性 宏观实现查询、微观算法 数据库以表、记录访问数据,内存以磁盘块存储数据
如何高效率存储?——数据组织与索引 如何快速检索?——查询实现和查询优化
数据库存储体系 大多数情况下,数据库保存在磁盘上,讲内容读入到缓冲区被CPU处理
磁盘块的组织: 第一个磁盘块在目录中保存; 操作系统 把文件按照文件块存储在磁盘块上;
内存管理(主存) (1)一条记录的地址=存储单元地址=内存地址=页面:页面内偏移量 (2)页面=块
磁盘块:由若干个连续的扇区构成 磁盘块的读取:旋转+移动
RAID技术: A——并行读取多个磁盘👉数据拆分 (1)比特级拆分 (2)(文件)块级拆分 B——可靠性:奇偶校验与纠错 (1)扇区/块读写校验 (2)磁盘间读写校验
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200704073418931.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzAxMTk2,size_16,color_FFFFFF ,t_70#pic_center)
插入/删除时可能会造成大规模移动—— 采用溢出文件,新插入的内容存储进溢出文件(无序)。
当溢出文件过大时,将溢出文件插入到主文件中,恢复文件的有序性
散列文件(增删改): 根据记录的某属性或属性(散列字段,大多数情况下为关系的主码)的值,根据散列函数得到的值来计算存储位置:桶号检索效率和更新效率都有一定性的提高
问题: (1)桶满溢出:溢出桶,通过指针不断扩展
聚簇文件 聚簇:将具有相同或相似属性值的记录 存放于连续的磁盘簇块中 多表聚簇:将相互关联的TABLE存储于一个文件中有时可大幅度提高查询速度
逻辑层:
所有表空间的组合存储容量就是数据库的存储容量表空间: (1)系统表空间——数据字典信息 (2) 用户表空间一个表空间由一个或多个操作文件构成,操作系统文件仅起到占位作用操作系统下看数据库,可以看到文件,看不到表空间,只有进入到Oracle系统才能看到操作系统文件:占位磁盘块一个文件可以存储一个表或多个表,一个表可以存储在一个文件或多个文件中 文件和表没有直接作用物理存储层: 7. 数据块是最小的IO单位,相当于页(扇区) 8. 盘区是特定数量的连续数据块,相当于簇。这里的盘区可以动态变化 9. 段是由特定数据结构的盘区:数据段、索引段、临时段