MySql性能调优(三)之表的设计

一. 首先介绍几个概念:
1. 完全函数依赖:在属性集U上的关系模式R(U)中,如果X->Y,并且对于X的任何一个真子集X’,都有X’≠>Y,则Y对X完全函数依赖。

2. 传递函数依赖:在R(U)中,如果X->Y,Y->Z,则称Z对X的传递函数依赖。

二. 范式

   关系型数据库有6种范式:第一范式(1NF),第二范式(2NF),第三范式(3NF),巴德斯科范式(BCNF),第四范式(4NF),第五范式(5NF)。各种范式之间的联系:5NF∈4NF∈BCNF∈3NF∈2NF∈1NF

1.  第一范式(1NF):

数据库表中的字段都是单一属性的,不可再分。第一范式满足最低要求。

2.  第二范式(2NF)

对于R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。

3.  第三范式(3NF)

每一个非主属性既不依赖于码也不传递依赖于码,则R属于第三范式。

4.BCNF

   除本NF外的码,不存在其他决定因素,即无回路。

关系模式的规范化过程:


技术分享


总结:在开发程序时,设计的数据库最大的程度的遵循三范式,三范式在查询的时候会join很多表,导致查询效率降低,以至于有时候为了提高查询的效率可以适度的冗余,适度的反范式。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。