软考——数据库技术基础之二

举报
翟文彪 发表于 2022/01/29 21:07:02 2022/01/29
【摘要】 范式第一范式1NF:所有属性都不可以分割成两个或多个分量第二范式2NF:当且仅当R是1NF,且每个非主属性都完全依赖主键(不存在部分依赖)时,R就是2NF第三范式3NF:当且仅当R是3NF,且R中没有非主属性传递依赖于候选键时,R就是3NF。本质是主键要直接决定所有非主属性,不能通过非主属性间接决定。BC范式BCNF:R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。模式...

范式

第一范式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把事务开始、事务结束以及数据库的插入、删除、修改每一次操作写入日志文件。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。