三大范式,小小理解
- 1NF:数据库中的表格是不可切分的 :MetaData
例子:
lucy is a girl,his birth date is 1988-1-1 --数据库中的表示:lucy,f,1989-1-1
- 2NF:消除完全依赖
例子:
t(stu_id(primary key),name,age,source,credit,score_mark)
1.张三,15,计算机,4,优秀
id--->credit不存在依赖关系
处理后:
t1(stu_id,name,age)
t2(score,credit)
t3(stu_id,score,score_mark)
- 3NF:消除传递依赖
例子:
t(stu_id,name,age,dept,dept_address,dept_phone_no)
1.三,15,数学系,理工楼,139
2.四,15,数学系,理工楼,139
stu_id-->dept--->dept_address,dept_phone_no
处理后:
t1(stu_id,name,age,dept)
t2(dept,dept_address,dept_phone_no)
补充:
范式的发展一般是为了解决
a)冗余
b)update insert delete 异常
说明:
t(stu_id(primary key),name,age,source,credit,score_mark)
1.张三,15,计算机,4,优秀
小解:a)刚开学,学生选课的信息都是空,造成数据冗余
b)insert--当新增一个科目时,不能进行插入
update--当更新科目学分时,所有选这门课的学生信息都得改一遍
delete--删除科目时,把选这么课的学生信息都删了