事务
参考:https://cyc2018.github.io/CS-Notes/#/notes/数据库系统原理?id=未提交读(read-uncommitted)
4个特性
原子性、隔离性、一致性、持久性
由并发导致的4个问题
丢失修改、脏读、不可重复读(侧重修改)、幻影读(侧重增加/删除)
锁
读写锁、意向锁,
封锁协议:一级、二级、三级
两阶段加锁协议
4个隔离级别
未提交读、提交读、可重复读、可串行化
索引
B树、B+树
参考:https://www.cnblogs.com/vincently/p/4526560.html
B树:内部节点也存储内容
B+树:内部节点只作为索引,再叶子节点存储信息,而且相邻叶子相连
三大范式
函数依赖:
记 A->B 表示 A 函数决定 B,也可以说 B 函数依赖于 A。
如果 {A1,A2,… ,An} 是关系的一个或多个属性的集合,该集合函数决定了关系的其它所有属性并且是最小的,那么该集合就称为键码。
对于 A->B,如果能找到 A 的真子集 A’,使得 A’-> B,那么 A->B 就是部分函数依赖,否则就是完全函数依赖。
对于 A->B,B->C,则 A->C 是一个传递函数依赖
- 第一范式:属性不可分
- 每个非主属性完全函数依赖于主码
- 非主属性不传递函数依赖