数据库期末复习之重点知识
Posted Dodo·D·Caster
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库期末复习之重点知识相关的知识,希望对你有一定的参考价值。
虽然写了这么个东西,但是本作者并不能保证什么,考试内容的一切解释权归老师所有
附录:PPT内标红的内容,这个是不是重点见仁见智吧
数据库期末复习之重点知识
1
数据库(DB)
- 定义
- 是长期存储在计算机内、有组织的、可共享的大量数据的集合。
- 基本特征
- 数据按一定的数据模式组织、描述和储存
- 可为各种用户共享
- 冗余度较小
- 数据独立性较高
- 易扩展
数据库管理系统(DBMS)
- 含义
- 位于用户与操作系统之间的一层数据管理软件
- 是基础软件,是一个大型复杂的软件系统
- 用途:
- 科学地组织和存储数据、高效地获取和维护数据
- 主要功能
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能
- 其他功能
数据管理技术的发展过程
- 人工管理阶段
- 文件系统阶段
- 数据库系统阶段
数据库系统
-
特点
- 数据的整体结构化
- 最主要特征之一
- 数据的共享性高、冗余度低且易扩充
- 多用户、多应用
- 数据独立性高
- 物理独立性+逻辑独立性
- 数据由数据库管理系统统一管理和控制
- 数据的整体结构化
-
三级模式结构
-
模式
-
外模式
-
内模式
-
-
二级映射
- 外模式/模式
- 模式/内模式
数据模型组成三要素
- 数据结构
- 数据操作
- 数据的完整性约束条件
常用模型
- 层次模型:树形结构
- 网状模型:允许多个/无双亲结点+复合联系
- 关系模型:二维表(表:关系、行:元组、列:属性、主码、域、分量、关系模式)
2
选择、投影、连接运算
除法运算
- 计算 例2.9
- 含义 例2.10
重点例2.12 - 2.13
3
各类SQL语句
由EXISTS引出的子查询,其目标列通常都用*,因为带EXISTS的子查询只返回真值或者假值,给出列名无实际意义。
WITH CHECK OPTION 当查询条件中的属性包含在视图的属性中时,如果想要增删改的语句符合定义该视图时查询的条件,那么就要加上这句话
4
数据库的不安全因素
- 非授权用户对数据库的恶意存取和破坏
- 数据库中重要或敏感的数据被泄露
- 安全环境的脆弱性
安全技术
- 用户身份识别
- 静态口令鉴别
- 静态密码
- 动态口令鉴别
- 短信密码、动态令牌
- 生物特征鉴别
- 智能卡鉴别
- 静态口令鉴别
- 存取控制
- 自主存取控制
- 强制存取控制
- 关于强存的规则上写下读可以参考这篇博客:https://blog.csdn.net/guoyp2126/article/details/115382855
- 审计
- 数据加密
授权、回收
创建用户
CREATE USER <username> [WITH] [DBA|RESOURCE|CONNCET];
角色:权限的集合
5
实体完整性
- 定义主码,主码值唯一
- 检测唯一:全表扫描、索引(B+树)
参照完整性
- 定义外码
- 增删改都可能破坏完整性
- 解决:拒绝执行(NO ACTION)、级联(CASCADE)、设置空值
用户定义的完整性
- 属性上限制
- NOT NULL:不允许空值
- UNIQUE:列值唯一
- CHECK短语
- 元组上限制
断言
- 例5.19 5.20
6
函数依赖 X→Y / Y=f(X)
- X确定 Y即唯一确定
- 各种函数依赖(平凡的、非平凡的、部分、完全)
规范化
-
1NF
-
2NF
- R ∈ 1 N F R\\in 1NF R∈1NF,且每一个非主属性完全依赖于任何一个候选码
-
3NF
- R中不存在这样的码X,属性组Y以及非属性组Z,使得X→Y,Y→Z成立
- 没有任何非主属性对码传递依赖或部分依赖
-
BCNF
-
X→Y(非平凡的)时X必含有码
-
每个决定因素(X→Y中的X )必包含码
-
例6.8
多值依赖
- 课程C 教师T 参考书B
- C→T
-
-
4NF
- R的每个非平凡多值依赖X→→Y都含有候选码
- 限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖
-
5NF
7
数据库设计
-
需求分析
-
概念结构设计
-
E-R图
- 冲突:属性冲突、命名冲突、结构冲突
鸭鸭图是重点
-
-
逻辑结构设计
- 关系模式
-
物理结构设计
- 评价:存储空间、存取时间、维护代价
-
数据库实施
-
数据库运行和维护
8
嵌入式
- SQL通信区
- 主变量
- 输入主变量
- 输出主变量
- 游标
- 数据缓冲区,存放SQL语句的执行结果
不用游标的SQL语句
- INTO WHERE HAVING短语的条件表达式中均可使用主变量
- 空值自动变负值
- 多条记录则程序出错
使用游标
- 多条记录
动态SQL
过程化SQL
- 块类型
- 命名块
- 编译后保存在数据库中,可被反复调用,运行速度较快,过程和函数是命名块
- 匿名块
- 每次执行都要进行编译,不能被存储到数据库中,也不能在其他过程化SQL块中被调用
- 命名块
存储过程
- 由过程化SQL语言书写的过程,经编译和优化后存储在数据库服务器中,使用时只要调用即可
ODBC工作过程
- 配置数据源-定义句柄和变量
- 初始化环境
- 建立连接
- 初始化语句句柄
- 执行SQL语句
- 处理结果集并执行预编译后的语句
- 中止处理
9
查询处理
- 查询分析
- 词法分析+语法分析
- 查询检查
- 语义检查
- 查询优化
- 代数优化
- 查询数的启发式优化
- 选择运算尽可能先做
- 把投影运算和选择运算同时进行
- 把投影同其前或后的双目运算结合起来
- 把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算
- 找出公共子表达式
- 查询数的启发式优化
- 物理优化
- 基于规则的启发式优化
- 基于代价估算的优化
- 两者结合的优化方法·
- 代数优化
- 查询执行
- 选择操作
- 全表扫描算法
- 索引扫描算法
- 连接操作
- 嵌套循环算法
- 排序-合并算法
- 索引连接算法
- hash join算法
- 选择操作
10
事务
- ACID特性
- 原子性
- 操作要么都做,要么都不做
- 一致性
- 执行结果必须是使数据库从一个一致性状态变到另一个一致性状态
- 隔离性
- 一个事务的执行不能被其他事务干扰
- 持续性
- 一个事务一旦提交,它对数据库的改变是永久性的
- 原子性
故障
- 事务内部故障
- 非预期的,不能由应用程序处理
- 恢复操作:事务撤销(UNDO)
- 系统故障
- 造成系统停止运转的任何事件,使得系统需要重启
- 恢复操作:撤销未完成的事务,重做(REDO)已提交的错误
- 介质故障
- 恢复方法:重装数据库然后重做已完成的任务
- 计算机病毒
恢复的实现技术
- 数据转储:也就是重装后备副本
- 静态转储
- 动态转储:转储和用户事务并发执行
- 日志文件
- 登记内容
- 各个事务的开始、结束、所有更新操作
- 记录内容
- 事务标识、操作类型、操作对象、更新前数据的旧值、更新后数据的新值
- 登记原则
- 登记次序按照事务发生次序
- 先写日志文件,后写数据库
- 登记内容
检查点
- 记录内容
- 建立检查点时刻所有正在执行的事务清单
- 这些事务最近一个日志记录的地址
- 恢复
- 检查点之前提交:不重做
- 检查点之前开始执行,故障之前提交:重做
- 检查点之后/之前开始执行,故障点时未完成:撤销
- 检查点之后开始执行,故障之前提交:重做
数据库镜像
11
并发操作问题
- 丢失修改
- T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果
- 不可重复读
- 事务T1读取数据后,事务T2执行更新操作,使得T1无法再现前一次读取结果
- 读“脏”数据
- 事务T1修改某一数据并将其写回磁盘,时间T2读取同一数据后,T1由于某种原因被撤销,这时被T1修改过的数据恢复原值,T2督导的数据就与数据库中的数据不一致
锁
- 共享锁(S锁)
- 其他锁只能加S锁
- 只读
- 排他锁(X锁)
- 读+写
- 其他锁不能加锁
一级封锁协议
- 事务T在修改数据R之前必须对其加X锁,知道事务结束才释放
- 防止丢失修改
二级封锁协议
- 一级封锁+事务T在读取数据R之前必须对其加S锁,读完后立即释放S锁
- 防止丢失修改+读“脏”数据
三级封锁协议
- 一级封锁+事务T在读取数据R之前必须先对其加S锁,直到事务结束后才释放
- 防止丢失修改+读“脏”数据+不可重复读
活锁
- 解决:先来先服务
死锁
- 解决
- 一次封锁法
- 顺序封锁法
- 诊断和解除
- 超时法
- 等待图法
可串行性:并行结果和串行一样
两段锁协议
- 第一阶段:获得封锁
- 第二阶段:释放封锁
封锁粒度:逻辑单元、物理单元、属性值、属性值集合、元组等等
- 多粒度封锁
- 显示封锁
- 隐式封锁
- 意向锁
- IS锁
- IX锁
- SIX锁
附录
3
3.2 学生-课程数据库 - P19
3.3 数据定义
3.4 数据查询
3.6 空值的处理 - P203
5
5.2 参照完整性 - P20
5.3 用户定义的完整性 - P33
5.4 完整性约束命名子句 - P46
5.6 断言 - P53
5.7 触发器 - P58
5.8 小结 - P74
7
7.2 需求分析 - P29
7.3 概念结构设计 - P50
7.5 物理结构设计 - P125
7.6 数据库的实施和维护 - P155
7.7 小结 - P174
8
8.3 存储过程和函数 - P72
8.4 ODBC编程 - P89
10
10.2 数据库恢复概述 - P17
10.3 故障的种类 - P20
10.4 恢复的实现技术 - P35
10.5 恢复策略 - P60
10.6 具有检查点的恢复技术 - P75
10.7 数据库镜像 - P88
11
11.2 封锁 - P24
11.3 封锁协议 - P31
11.4 活锁和死锁 - P41
11.5 并发调度的可串行性 - P63
11.6 两段锁协议 - P79
11.7 封锁的粒度 - P87
11.9 小结 - P110
以上是关于数据库期末复习之重点知识的主要内容,如果未能解决你的问题,请参考以下文章