日期:2014-05-16  浏览次数:20488 次

三大范式,小小理解

三大范式,小小理解

?

  • 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--删除科目时,把选这么课的学生信息都删了

?