MySQL之三大范式!
MySQL之三大范式!
月伴飞鱼第一范式
确保每列保持原子性:也就是列都是不可再分。
举例说明:
在上面表中 家庭信息和学历信息不满足原子性要求,不满足第一范式,进行调整如下:
第二范式
首先满足第一范式,并且表中非主键列不存在对主键的部分依赖。
- 第二范式要求每个表只描述一件事情。
数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关。
举例说明:
在上述表中,同一个订单号可以包括不同产品号,因此主键必须是订单号、产品号联合组成。
产品号、产品数量、产品价格与订单号、产品号都相关,但是订单金额 订单时间、订单人仅与订单号相关,与产品号无关。
因此不满足第二范式要求进行调整如下分成两张表。
第三范式
确保每列都和主键列直接相关,而不是间接相关。
- 满足第二范式,并且表中的列不存在对主键列的传递依赖。
举例说明:
上表所有属性完全依赖于学号,满足第二范式,但是班主任性别、班主任年龄直接依赖于班主任姓名,并非主键学号。
进行调整如下。