抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > mysql的依赖_MySQL 依赖关系/部分依赖关系/间接依赖关系

mysql的依赖_MySQL 依赖关系/部分依赖关系/间接依赖关系

时间:2022-03-06 15:45:17

相关推荐

前几天总结范式,看到了几个网站的信息,把依赖关系总结的不错,参考的网址会放在后面,大家自主学习~现在综合一下,加上自己的理解

依赖或函数依赖:

在下面这个学生信息表中,student id这一列可以作为主键,因为每一个ID号都可以唯一读取表中其他列的信息:

例如通过id号10和11,可以从表中读取信息,信息是唯一的~

dependency也被称为功能性依赖:Funational Dependency (感谢维基百科)/wiki/%E5%87%BD%E6%95%B0%E4%BE%9D%E8%B5%96​

部分依赖:

并不是所有的表格信息,可以完全依赖于一组数据就可以读取出完整信息。

结合上面的学生信息表,我们建立另外一个学科信息表和得分信息表:

在上面的的得分信息表中,Studentid和学科id一起可以查询学生具体科目的分数。得分表格中的主键,由student_id和subject_id共同组成(又叫做composite key)。

但是表格中的老师信息,只由subjectid决定,和studentid无关。这就是部分依赖关系。表格中的一列属性仅有部分主键决定。

如何去除部分依赖关系,因为这不符合2NL的规则要求:

在这个例子中,直接将teacher信息加到决定其信息的表格即可(即加到subject表格)

传递依存关系:

继续上面的三个表格:学生信息表,学科信息表,得分表:

并在得分表中加入两列,考试名字和总得分:

其中,examname 取决于主键studentid和subjectid. total marks由exam name 决定。不同的考试类型,总分会发生变化。在这个表格中,exam name 不是主键,但是却决定了total marks. 这就是传递依赖。

去除传递依赖的方法很简单,拆分表格。把exam name 和 total marks 拿出来组成新表,加一列exam-id :

This is Transitive Dependency. When a non-prime attribute depends on other non-prime attributes rather than depending upon the prime attributes or primary key.

参考网站(前面总结NL范式有提到,这里再次详细说明一下):Second Normal Form (2NF) of Database Normalization​Third Normal Form (3NF)​

如果觉得《mysql的依赖_MySQL 依赖关系/部分依赖关系/间接依赖关系》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。