文章目录
- 1.函数依赖:
-
- 1.0.前提范例:
- 1.1.函数依赖定义:
- 1.2. 部分依赖
- 1.3. 完全依赖
- 2.范式
-
- 2.1. 码、候选码、主码
- 2.2.主属性和非主属性
- 2.3.第一范式(1NF)
- 2.4.第二范式(2NF)
- 2.5.第三范式(3NF)
- 2.6.BC范式(BCNF)
- 3.函数依赖推导规则(todo,没看懂)
1.函数依赖:
1.0.前提范例:
教育局管理系统中学生表:
学生id,可以唯一确定一条学生信息;
身份证 ,可以唯一确定一条学生信息;
学 +学校id,可以唯一确定一条学生信息(同一学校内的学 是唯一的);
1.1.函数依赖定义:
函数 y = f(m),如果每个x都有唯一y值与之对应,
那么称:m决定y,或y依赖于m,
写作:m -> y,画作:
1.3. 完全依赖
函数 y = f(m,n),如果确定的m和n,都有唯一y值与之对应,
那么称:(m,n)决定y,或y完全依赖于(m,n),
写作:(m,n) -> y ,画作:
2.1. 码、候选码、主码
码、候选码、主码的说明
对应在数据库中的每一条数据中:
码:能唯一确定一条数据的一个属性或一组属性(可以包含冗余属性);
候选码:能唯一确定一条数据的一个属性或一组属性(消除冗余属性);
主码:主码是唯一的,从候选码中选出一个作为主码;
2.2.主属性和非主属性
主属性:在候选码中的属性;
非主属性:不在候选码中的属性;
2.3.第一范式(1NF)
每个属性都是不可分割的原子值;
2.4.第二范式(2NF)
消除非主属性对候选键的部分依赖;
问题:学生表中,(学校id,学 )是一个候选键,但是 ,学校名称部份依赖(学校id,学 ),所以就不符合2NF。
解决方法:把(学校id,学校名称)单独抽取成一个学校表,就符合2NF了。
2.5.第三范式(3NF)
消除非主属性对候选键的传递依赖
问题:学生表中,学生id 是一个候选键,有学校姓名 传递依赖 学生id,不符合3NF
解决方法:把(学校id,学校名称)单独抽取成一个学校表,就符合3NF了。
2.6.BC范式(BCNF)
消除主属性对候选键的传递依赖(列出关系中所有的函数依赖,依赖左侧都是候选键)
3.函数依赖推导规则(todo,没看懂)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!