1. 数据库系统

[toc]

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

1.1. 数据库模式

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

1.2. ER模型

关键
  • 属性
  • 实体
  • 联系

1.3. 关系代数

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

1.4. 规范化理论

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

1.5. 并发控制

事务的特性
  • 原子性
  • 一致性
  • 隔离型
  • 持续性
并发产生的问题
  • 丢失更新
  • 不可重复读
  • 脏数据
封锁协议
  • S锁:读锁、共享锁
  • X锁:写锁、排他锁、独占锁
  • 一级封锁协议:事务T在修改数据R前必须先对其加X锁,直到事务结束才释放。可防止丢失修改。
  • 二级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可防止读脏数据。
  • 三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改,还可防止读脏数据、防止数据重复读。

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

1.6. 数据库完整性约束

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

1.7. 数据库安全性

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

1.8. 分布式数据库

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

1.9. 数据仓库与数据挖掘

lisahust all right reserved,powered by Gitbook该文件最后修改时间: 2021-10-01 18:13:08

results matching ""

    No results matching ""