前三范式概述

来源:互联网 发布:制作台历的软件 编辑:程序博客网 时间:2024/05/18 01:41

1,MySQL优化包含的内容,由上到下重要性降低。

l  数据库(表)设计合理,表的设计要符合3NF,有时我们需要适当的逆范式。

l  SQL语句优化。

l  数据的配置。

l  适当硬件配置和操作系统。

2,第一范式1NF。

1NF是对属性原子性的约束,要求属性具有原子性,不可以再分解(只要是关系型数据库都满足1NF)

3,第二范式2NF。

在满足1NF的基础上,2NF要求记录具有唯一性,也就是说,一行记录不能出现完全相同的两次。

通常的设计手法是设计一个主键。可以使复合主键,可以是单主键。

4,第三范式3NF。

在满足2NF的基础上,对字段冗余型的约束,即任何字段不能由其他字段派生出来。

例如,如果在学生表中有班级名称的字段,而又有一张班级表,班级表中也有班级名称,那么我们不可以在学生表中直接填写班级名称,要通过关联班级表来派生出班级名称,即如果一个表的一个字段可以从另一个表中获取,那么就要通过外键的形式从别的表中获取过来,这样才满足3NF。

5,但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。

逆范式:根据具体需要,将满足范式的表结构适当的降低范式的规则,使之性能更高。

6,冗余规则:一对多时,应该尽可能将逆范式的内容放在1的那边。

比如,单位信息和学生活动是一对多的关系,单位信息有单位名称字段,学生活动也有单位信息字段,按照范式来讲,学生活动的单位信息字段的值应该引用单位信息中单位名称的值,但是这样做一旦修改单位信息表中的单位名称,要一起将学生活动表中的单位名称改掉,所以这里的单位信息应该在两边都存,就产生了冗余,这是为了效率更高的冗余,所以范式不是必须遵循的,适当的时候要逆范式。

原创粉丝点击