如:Y=2X : y的值依赖于x
如学生表:
编号(唯一标识) |
姓名 |
性别 |
年龄 |
班级(外键) |
1 |
|
|
|
|
2 |
|
|
|
|
3 |
|
|
|
|
超键消除了多余的属性,成为候选键。上面如果编号+姓名是超键,那么编号就是候选键
1NF 包含 2NF 包含3NF 包含 BCNF
不满足,教授和副教授必须单独两列才能满足1NF
SNO,CNO ->GRADE CNO->CREDIT
数据冗余
插入异常:无法插入新的记录 cno和credit ,还没有学生修新的课程(没有sno)。
Credit部分依赖主键(sno,cno)的。
保持函数依赖的分解:
SNO ->SNAME SNO->DNO SNO->DNAME SNO->LOCATION
DNO->DNAME DNO->LOCATION
无损分解:
实体完整性约束对应主键约束
参照完整性约束对应外键约束
用户自定义完整性约束:比如年龄要求必须0-150岁之间。
并发产生的问题:
针对上面的解决办法:
S锁:读锁(共享锁)
X锁:写锁(独占锁)
加锁,却带来死锁问题
逻辑结构设计->关系模式:即用范式化的方法来规范
物理设计:针对不同的数据库,设计真正的表
完全备份、增量备份、差异备份(针对上次完全备份后的备份)
LDBMS 局部的数据库管理系统
GDBMS 全局的数据库管理系统
OLTP 联机事务处理 (比如超市的收银系统)
OLAP 联机分析处理 (比如超市的出入库管理分析系统)