数据库
一、 设计E-R图并将E-R图转换为关系模式
二、关系代数计算
三、SQL语句
1.数据查询DQL
- 查询(select)视图/表
- group by <列名> [having <条件表达式>]
- order by <列名> [ASC(默认)/DESC]
- 连接查询
- 嵌套查询
2.数据定义DDL
3.数据操纵DML
2.数据控制DCL
四、表、索引、视图、触发器
五、数据库保护
1.完整性约束
2.存取控制
- grant 权限 on 对象类型 对象名 to 用户
- revoke 权限 on 对象类型 对象名 on 用户
3.事务管理技术
(1)并发控制
-
若不进行并发控制会发生:丢失修改、不可重复读、读“脏”数据
-
并发控制方式:封锁(排它锁、共享锁)
-
封锁后可能会出现的问题以及相应的解决方法:
-
活锁:先来先服务策略
-
死锁:预防——一次封锁法、顺序封锁法;诊断——超时法、等待图法;解除——撤销处理死锁代价最小的事务
-
遵守两段锁协议 —>并发调度的可串性(前是后的充分条件,而不是必要条件,前的范围小,后的范围大)
(2)数据库恢复
-
数据库故障种类及恢复策略
-
事务故障:利用日志文件撤销已对数据库进行的修改,系统自动完成
-
系统故障:撤销故障发生时未完成的事务,重做已完成的事务,系统重启时完成
-
介质故障:重新安装数据库,重做已完成的事务
-
计算机病毒
-
数据库备份的分类
-
故障恢复的实现技术
-
数据转储
-
登记日志文件
六、规范化理论
- 为规范化产生的问题:数据冗余、更新异常、插入异常、删除异常
- 规范化理论
- 第一范式:关系模式每一列都不可再分;
- 第二范式:基于第一范式,非主属性对码完全函数依赖;(消除了非主属性对码的部分函数依赖)
- 第三范式:基于第二范式,不存在非主属性对码传递函数依赖;(消除了非主属性对码的传递函数依赖)
- BC范式:基于第三范式,消除了主属性对码的部分和传递函数依赖
- 解题方法
- 求闭包/候选码、主属性
① 函数依赖中只在左边出现的属性一定包含在候选码中;
②只在右边出现的属性一定不包含在候选码中;
③ 外部属性(函数依赖中未出现的属性)一定包含在任何候选码中;
④ 其他属性依次与①+③的属性组合,求①+③属性、组合属性的闭包,若属性组合闭包=所有属性集合,则该属性组合为候选码 - 判断范式
- 分解
口诀:
保函依赖分解题,先求最小依赖集。
依赖两侧未出现,分成子集放一边,剩余依赖变子集。
若要连接成无损,再添候选做子集。
https://www.renrendoc.com/paper/240707923.html
https://blog.csdn.net/sumaliqinghua/article/details/86246762
- 一些概念
- 元组—行;属性—列
- 码(可以区别一个元组)>候选码(可以唯一标识一个元组的最小属性集合/一个元素组合能推出关系中所有的元素)>主码(从候选码中挑选的唯一)
- 主属性:候选码中所有元素的并集
七、数据库设计
1.需求分析
数据字典
2.概念结构设计
E-R图
3.逻辑结构设计
关系模型、范化
4.物理结构设计
存储结构、存取方法
5.数据库实施
SQL语言
6.数据库的运行和维护
转储、恢复