# 数据库系统

1. 数据库设计阶段:数据将设计阶段
2. 关系代数:关系代数运算、关系代数与SQL结合考察
3. 规范化理论:候选关系式、范式、模式分解、其他
4. 并发控制:并发控制
5. 数据库扩展技术:分布式数据库、数据库分区、数据仓库与数据挖掘、联邦数据库、NoSQL、内存数据库、数据库性能优化、大数据
6. 数据备份与恢复:数据备份与恢复

# 数据库模式

# 三级模式-两层映射
  • 外模式(视图、用户模式、用户视图)->概念模式(DBA视图)->内模式(内部试图)
  • 外模式-概念模式映射 概念模式-内模式映射
# 视图
  • 数据库试图是一个虚拟表,其内容由查询定义。但是试图并没有真正存储这些数据,而是通过查询原始表动态生成所需要的数据
  • 优点:能简化用户操作、使用户能以多角度看待同一数据
  • 缺点:查询之后再展示效率比较低
# 数据库设计过程
  • 需求分析(数据流图、数据字典、需求说明书)
  • 概念结构设计(ER模型)
  • 逻辑结构设计(关系模式)
  • 物理设计

# ER模型

# 关键
  • 属性
  • 实体
  • 联系

# 关系代数

# 关系代数运算
  • 笛卡尔积
  • 投影
  • 选择
  • 自然连接

# 规范化理论

# 价值与用途
  • 非规范化的关系模式:数据冗余、更新异常、插入异常、删除异常
# 函数依赖
  • 部分函数依赖:多个元素的主键才有部分函数依赖
  • 传递依赖
#
  • 候选键
  • 主键:唯一标识元组的属性集合
  • 外键:其他关系的主键
# 范式
  • 1NF:属性值都是不可分的原子值
  • 2NF:消除非主属性对候选键的部分依赖
  • 3NF:消除非主属性对候选键的传值依赖
  • BCNF:消除主属性对候选键的部分和传递依赖,左侧决定因素必须包括候选码
# 无损分解
  • 保持函数依赖分解
  • 无损分解
# 反规范化
  • 由于规范化会使得表不断的拆分,从而导致数据表过多,会增加查询的工作量。
  • 技术手段:增加派生性冗余列、增加冗余列、重新组表、分割表(水平分割、垂直分割)

# 并发控制

# 事务的特性
  • 原子性
  • 一致性
  • 隔离型
  • 持续性
# 并发产生的问题
  • 丢失更新
  • 不可重复读
  • 脏数据
# 封锁协议
  • S锁:读锁、共享锁

  • X锁:写锁、排他锁、独占锁

  • 一级封锁协议:事务T在修改数据R前必须先对其加X锁,直到事务结束才释放。可防止丢失修改。

  • 二级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可防止读脏数据。

  • 三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改,还可防止读脏数据、防止数据重复读。

  • 两段锁协议:可串行化、可能发生死锁。

# 数据库完整性约束

# 约束
  • 实体完整性约束:主键唯一且为空
  • 参照完整性约束:外键,其他关键的主键,或者为空
  • 用户自定义完整性约束
  • 针对复杂的约束,系统提供了触发器机制,通过用户编程实现。

# 数据库安全性

  • 用户标识与坚定
  • 存取控制
  • 密码存储和传输
  • 视图的保护
  • 审计
# 数据备份
  • 冷备份:数据库在停止状态下,将数据库的文件全部备份下来
  • 热备份:数据库在运行状态下,将数据库的文件全部备份下来
  • 完全备份:备份所有数据
  • 差量备份:仅备份上一次完全备份之后变化的数据
  • 增量备份:备份上一次备份之后变化的数据
  • 影子拷贝:该策略假设在某一个时刻只有一个活动的事务,首先对数据库做副本(称为影子副本),并在磁盘上维护一个dp_pointer指针,指向数据库的当前副本。对于要执行写操作的数据项,数据库系统在磁盘上维护数据库的一个副本,所有的写操作都在数据库副本上执行,而保持原始数据库不变,如果在任一时刻操作不得不中止,系统仅需要删除新副本,原数据库副本没有受到任何影响。
  • 基于日志的延迟修改技术(deferred-modification technique)的设计与恢复过程。该技术通过在日志中记录所有对数据库的修改操作,将一个事务的所有写操作延迟到事务提交后才执行,日志中需要记录“事务开始”和“事务提交”时间,还需要记录数据项被事务修改后的新值,无需记录数据项被事务修改前的原始值。当系统发生故障时,如果某个事务已经开始,但没有提交,则该事务对数据项的修改尚未体现在数据库中,因此无需做任何恢复动作。

# 分布式数据库

# 分片透明性
  • 分片透明性
  • 位置透明性
  • 局部数据模型透明性
# 分布式数据库管理系统DDBMS-组成
  • LDBMS(局部数据库管理系统)
  • GDBMS(全局数据库管理系统)
  • 全局数据字典
  • 通信管理Cm
# 分布式数据库管理系统-结构
  • 全局控制集中的DDBMS
  • 全局控制分散的DDBMS
  • 全局控制部分分散的DDBMS
# 关系数据库与NoSQL数据库对比
-- 关系数据库模式 --
并发支持 支持并发、效率低 并发性能高
存储与查询 关系表方式存储、SQL查询 海量数据存储、查询效率高
扩展方式 向上扩展 向外扩展
索引方式 B树、哈希等 键值索引
应用领域 面向通用领域 特定应用领域
# NoSQL
类型 eg
键值 redis
列存储数据库 HBase
文档型数据库 MongoDB
图形数据库 Neo4j

# 数据仓库与数据挖掘

上次更新: 7/27/2022, 6:03:55 PM