共计 967 个字符,预计需要花费 3 分钟才能阅读完成。
数据库系统概论 – 关系数据实践
函数依赖:若在一张表中,在属性(或属性组)X 的值确定的状况下,必然能确定属性 Y 的值,那么就能够说 Y 函数依赖于 X,写作 X -> Y,如:(学号) -> (学生), (班级, 名称) -> (学生)
局部函数依赖:设 X, Y 是关系 R 的两个属性汇合,存在 X -> Y,若 X’是 X 的真子集,存在 X’-> Y,则称 Y 局部函数依赖于 X,如:通过 AB 能得出 C,通过 A 也能得出 C,通过 B 也能得出 C,那么说 C 局部依赖于 AB
齐全函数依赖:设 X, Y 是关系 R 的两个属性汇合,X’是 X 的真子集,存在 X -> Y,但对每一个 X’都有 X’!-> Y,则称 Y 齐全函数依赖于 X,如:通过 AB 能得出 C,然而 A, B 独自得不出 C,那么说 C 齐全依赖于 AB
传递函数依赖:如果 X 函数依赖于 Y,且 Y 函数依赖于 Z,则称 Z 对 X 传递函数依赖
范式
关系数据库中的关系要满足肯定要求,满足不同水平要求为不同范式,满足高等级的范式必满足低等级的范式,范式阶数越高冗余度越低,查问效率越低
一个低一级范式的关系模式通过 模式合成 能够转换为若干个高一级范式的关系模式的汇合,这个过程称为 规范化
关系模式可能存在以下问题:
- 数据冗余:每个学生都有一个系名称,则会存在多份,造成数据冗余
- 更新异样:当系名称须要更新时,须要把所有系名称都进行更新,可能会导致不统一
- 插入异样:如果一个系刚成立没有学生,无奈把这个系及其系主任信息存入数据库
- 删除异常:如果学生毕业,删除学生的同时会失落系名称等信息
1NF
每一个重量必须都是 不可再分 的数据项,保障每列属性是原子性,是关系型数据库的根本要求
表中每一个字段都须要是惟一的,不可再分的
2NF
每一个非主属性 齐全函数依赖 与任何一个候选码,保障每列属性和主键间接相干
一张表就是一个独立的对象,一张表只表白一个实体
3NF
非主键属性既不 传递依赖 与码,也不 局部依赖 与码,保障每列和主键间接相干而不是间接相干
非主键外的所有字段必须互不依赖,实体中的属性不能是其它实体中的非主属性
BCNF
在 3NF 的根底上只有 一个候选码 ,或者每个候选码都是 单属性,该关系就达到了 BCNF
对于第三范式的优化,打消了主属性对于候选码的局部依赖或传递依赖
4NF
限度关系模式的属性之间不容许有 非平庸且非函数依赖 的多值依赖
要求把同一表内的多对多关系删除,打消表中多值依赖
反范式
数据库表中减少冗余字段晋升查问效率,性能比标准更重要