1.5 存储管理
页式存储组织
- 虚地址 = 页号 | 页内地址
- 页表 = 页号 | 块号
- 物理地址 = 块号 | 页内地址
- 访存两次:访问页表得到物理地址,根据物理地址得到数据
- 就是把用户程序的空间分成若干页,把内存空间分成若干块,块和页的大小一致,页表中存放的是页号对应的块号。
段式存储组织
- 虚地址 = 段号 | 段内地址
- 段表 = 段号 | 始址 | 段长
- 物理地址 = 始址 | 段内地址
- 访存两次:访问段表得到物理地址,根据物理地址得到数据
- 把用户的程序分成若干个不同大小的作业,内存空间也分配大小不同的大小段,将作业分配到段中。
段页式组织
- 虚地址 = 段号 | 页号 | 页内地址
- 段表 = 段号 | 页表长度 | 页表地址
- 页表 = 页号 | 块号
- 物理地址 = 块号 | 页内地址
- 访存三次:访问段表得到页表地址和大小,根据页号访问页表得到物理地址,根据物理地址得到数据
快表
- (Translation Look-aside Buffers - TLB,也叫关联存储器)
- 能够直接把逻辑页面映射为物理页面,不需要再去访问内存中的页表。先访问快表得到物理地址,然后直接访问物理地址得到数据,只需要访存一次。
页面置换算法
- OPT(最佳置换算法):最长时间内不在访问的页面。
- FIFO(先进先出算法):淘汰最早进入内存的页面,会出现抖动(分配了更多的资源效果却更低了)。
- LRU(least recently used,最近最久未使用):淘汰的页面是最近最久未使用的页面(逆向扫描最后一个出现的页面就淘汰,即刚刚访问的不会被淘汰出去)
- 习题:有些习题没有指明算法,但是有访问位和修改位。首先置换的是访问位为0的页面。
1.8 商业智能(BI)
- 使用的技术:
- 数据仓库:是一个面向主题的、集成的、相对稳定的、且随时间变化的数据集合、
- OLAP:联机分析处理(On-Line Analytical Processing),支持多维的概念
- 数据挖掘:挖掘事先不知道的。但又潜在有用的信息和知识的过程。
反规范化技术
- 增加冗余列:在多个表中保留相同的列,通过增加数据冗余减少或避免查询时的连接操作
- 增加派生列:在表中可以增加由本表或者其他表中数据计算生成的列,减少查询时的连接操作并避免计算或使用集合函数
- 重新组表:如果许多用户需要查看两个表连接出来的结果,则把这两个表重新组成一个表来减少连接操作提高性能
- 水平分割表:根据一列或多列数据的值,把数据放到多个独立的表中。
带来的问题:数据的重复存储,浪费磁盘空间;可能出现数据完整性的问题。
数据库备份与还原
- 数据备份
- 完全备份:备份所有数据
- 差量备份:仅备份上一次完全备份之后的数据变化
- 增量备份:备份上一次备份之后变化的数据
- 数据转存
- 静态存储(系统不运行)
- 动态存储(系统运行)
- 海量转存(全部数据)
- 增量转存(增量数据)
- 日志文件
- 针对数据库改变所做的记录,可以记录数据库的任何操作,并将记录结果保存在独立的文件中。
分布式数据库
分布透明性 -> 分片透明性:
- 水平分片
- 按记录来分,北京色数据存在北京,上海的数据存放在上海
- 垂直分片
- 将一个表中的若拆分成几组字段,每组字段存放在不同的物理位置
- 混合分片