软考——数据库技术基础之二
范式
第一范式1NF:所有属性都不可以分割成两个或多个分量
第二范式2NF:当且仅当R是1NF,且每个非主属性都完全依赖主键(不存在部分依赖)时,R就是2NF
第三范式3NF:当且仅当R是3NF,且R中没有非主属性传递依赖于候选键时,R就是3NF。本质是主键要直接决定所有非主属性,不能通过非主属性间接决定。
BC范式BCNF:R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
模式分解
无损分解:分解后的关系模式能还原出原来的关系模式
有损分解:不能还原
事务管理
事务提交commit,事务回滚rollback
事务:由一系列操作组成,这些操作要么全做,要么全不做
特性:
- (操作)原子性:要么全做,要么全部做
- (数据)一致性:事务发生后数据是一致的,例如银行转账,不会存在A账户转出但是B账户没有收到的情况
- (执行)隔离性:任意事务的更新操作直到其成功提交的整个过程对其他事务都是不可见的,不同事务之间是隔离的,互不干涉
- (改变)持续性:事务操作的结果是持续性的
并发控制
概念:控制不同的事务控制不同的事务并发执行
- 丢失更新:1和2分别对数据A进行修改并写回,事务2会覆盖事务1的写回数据,丢失了事务1对A的更新
- 不可重复读:事务2读A的同时,事务1对A进行修改并写回,事务2重复读取的时候发现A数据有误
- 读脏数据:事务1对A修改后,事务2读A,然后事务1回滚,则事务2对数据A做的事是无效的,读了脏数据
三级封锁协议
一级封锁协议:事务修改数据R前需要先加X(排他)锁,事务结束才释放。解决丢失更新
二级封锁协议:一级基础上,事务T读数据R前对其加S(共享)锁,读完后释放S锁。解决丢失更新、读脏数据
三级封锁协议:一级基础上,事务T在读取数据R之前先对其加S锁,直到事务结束才释放。解决丢失更新、读脏数据、数据重复读
数据库故障
- 事务内部
- 系统
- 介质
- 计算机病毒
数据库备份
静态转储:冷备份,转储期间不允许对数据进行任何读取、修改
优点:快速、容易归档
缺点:某一时间点的恢复,不能做其他工作,不能按表或按用户恢复
动态转储:热备份,转储期间允许对数据库进行存取、修改。转储和用户事务可并发执行
优点:表空间或数据库文件级备份,数据库仍可使用,秒级恢复
缺点:不能出错,否则后果严重
完全备份:备份所有数据
差量备份:仅备份上一次完全备份后变化的数据
增量备份:备份上一次备份之后变化的数据
日志文件:DBMS把事务开始、事务结束以及数据库的插入、删除、修改每一次操作写入日志文件。
- 点赞
- 收藏
- 关注作者
评论(0)