赞
踩
1.第一范式(1NF)
原子性:强调的是列的原子性,即数据库中每一列的字段都是单一属性,不可再分的。并且这个单一属性必须是由基本的数据类型所构成的,如整数、字符串等。
users表
上面表中address字段,可以按照省、市、区进行分割,因此不满足第一范式。
解决办法:将一个字段分割成多个字段
2.第二范式(2NF)
依赖性:在满足1NF的基础上再满足依赖性的两个约束:一张表必须有一个主键;非主键类必须完全依赖于主键。
用户表users
上面表中uid可以作为users表的主键,username,password,tel都依赖于uid,但是 role字段不依赖于uid.解决办法:将一张表拆分成多张表
用户表users
角色表 roles
拆分完成后,将关联关系放在多方上。
3.第三范式(3NF) 在满足2NF的基础上,另外再满足一个条件:非主键列必须直接依赖于主键,不能存在传递依赖。
选课表 sc
sname,cname,tname,credit,score都不依赖于scid,因此,要进行表的拆分。
选课表 sc
学生表students
课程表class
老师表teacher
多对多的解决办法: 创建一张新表:T_C
E-R图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。