`

三大范式,小小理解

F# 
阅读更多

三大范式,小小理解

 

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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics