软考-3.2关系代数-函数依赖-范式
前言
内容:
- 关系代数
- 函数依赖
- 键与约束
- 范式
中论
关系代数
并(∪):两张表中所有记录数合并,相同记录只显示一次
交(∩):两张表中相同的记录数
差(S1-S2):s1表中有但s2表中没有的记录
笛卡尔积(S1×S2):S1中每条记录依次和S2中的所有记录组合成一条记录,最终形成一张S1+S2个属性列,S1*S2个记录数
投影(π):根据条件选择某关系模式中的某列
选择(σ):根据条件选择某关系模式中的某条记录
自然连接(∞):显示两表全部的属性列,相同属性列只显示一次;显示属性相同且值相同的记录。
函数依赖
给定一个X,能唯一确定一个Y,则称X确定Y;或者Y依赖于X。
- 部分函数依赖:A确定C,(A,B)也能确定C,则称部分函数依赖。(A,B)的一部分能确定C
- 传递函数依赖:A和B不等价时,A可以确定B,B确定C,则A确定C,则成为传递函数依赖。
键与约束
超键:能唯一标识此表属性的组合
候选键:超键中去掉冗余的属性,剩余的属性就是候选键
主键:任选一个候选键,即可作为主键
外键:其他表中的主键
主属性(码):候选键内的属性为主属性,其他属性为非主属性
实体完整性约束:主键约束。主键值不能为空,也不能重复
参照完整性约束:外键约束。外键必须是其他表中已经存在的主键的值或者空。
用户自定义完整性约束:自定义表达式约束
范式
第一范式(1NF)
关系中的每一个分量必须是一个不可分的数据项。即表中不允许有更小的表。
第二范式(2NF)
如果关系R属于1NF,且每一个非主属性完全函数依赖于任何一个候选码,则R属于2NF。即表中每一个非主属性不会依赖复合主键中的某一列。
第三范式(3NF)
在满足1NF的基础上,表中不存在非主属性对主属性的传递依赖。
BC范式(BCNF)
在第三范式的基础上,进一步消除主属性对码的部分函数依赖和传递依赖。即每个依赖的左边决定因素都必然包含候选键。
2NF、3NF都是非主属性对主属性
BCNF是主属性对主属性
后记
不够真诚是危险的,太过真诚是致命的。
——————王尔德
评论