事务
什么是事务
满足ACID的一组操作叫做事务
事务的四大特性
- 原子性(Atomicity):事务的操作一气呵成,要么全部提交,要么全部失败
- 一致性(Consistency):数据库在事务执行前后保持一致性状态。
- 隔离性(Isolation):一个事务在完成之前,其他事务不可见
- 持久性(Durability):一个事务提交后的修改会永远保存
数据库并发控制
数据库为什么需要并发控制
- 丢失修改:T1修改,T2修改,T2覆盖了T1的修改
- 读脏数据:T1修改,T2读,T1回滚,T2读,T2读取到修改失败的数据
- 不可重复读:T2读,T1改,T2读,两次读取数据不同
数据库并发控制的解决办法
封锁
封锁
数据库有几种锁
- 读锁(Shared),S锁。如果加了S锁,其他事务能继续加S锁。
- 写锁(Exclusive),X锁。如果加了X锁,其他事务不能继续加任何锁。
关系数据库设计理论
属性A对属性B完全函数依赖,就是通过属性B能确定属性A
数据库范式的定义及区别
数据库的四大范式
- 第一范式:属性不可再分(原子性)
- 第二范式:在第一范式的基础上,非主属性对主属性完全函数依赖。
- 第三范式:在第二范式的基础上,非主属性无传递函数依赖。
- BCNF:在第三范式的基础上,消除主属性对主键的部分依赖和传递依赖
码(key)和属性
候选码:唯一决定 主码:候选码选一个 主属性:所有候选码的属性
数据库的主键和外键
数据库中实体的关系
- 一对一
- 一对多
- 多对多
ER图三要素(Entity-Relationship)
实体,联系,属性
数据库三大模式
- 外模式(用户模式)
- 概念模式
- 内模式
数据库完整性
- 域完整性:保证列输入的有效性。比如是否允许空值。
- 实体完整性:保证表中的行唯一。
- 参照完整性:保证主键和外键的参照关系。保证表的一致性修改。
数据库的数据模型
- 层次模型:树
- 网状模型:图
- 关系模型:二维表
常用数据库
mysql,oracle
文件系统和数据库对数据库的管理有什么区别
- 管理对象不同,一个是文件,一个是数据
- 储存数据的方式不同,文件存放在外存中,数据由数据库统一存储。