软件设计师 – 函数依赖 和 范式

文章目录

  • 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进行处理,非常感谢!

上一篇 2021年3月23日
下一篇 2021年3月23日

相关推荐