CB決定CC部分依賴于B第一范式定義:如果關系R中所有屬性的值域都是單純域,那么關系模式R是第一范式的那么符合第一模式的特點就有1)有主關鍵字2)主鍵不能為空,3)主鍵不能重復,4)字段不可以再分例如:StudyNo|Name|Sex|Contact20040901johnMaleEmail:kkkk@ee.net,phone:22245620040901maryfamale" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

第一范式,第二范式,第三范式

系統 2481 0

第一范式

存在非主屬性對碼的部分依賴關系 R(A,B,C) AB是碼 C是非主屬性 B-->C B決定C C部分依賴于B

第一范式

定義:如果關系R 中所有屬性的值域都是單純域,那么關系模式R是第一范式的

那么符合第一模式的特點就有

1)有主關鍵字

2)主鍵不能為空,

3)主鍵不能重復,

4)字段不可以再分

例如:

?StudyNo?? |?? Name?? |?? Sex?? |?? Contact

20040901????? john???????? Male????? Email:kkkk@ee.net,phone:222456

20040901????? mary???????? famale??? email:kkk@fff.net phone:123455

以上的表就不符合,第一范式:主鍵重復(實際中數據庫不允許重復的),而且Contact字段可以再分

所以變更為正確的是

?StudyNo?? |?? Name?? |?? Sex?? |????? Email???????? |????? Phone

20040901????? john???????? Male?????? kkkk@ee.net ?????? 222456

20040902???? mary????????? famale????? kkk@fff.net ????? 123455

?

第二范式

存在非主屬性對碼的傳遞性依賴 R(A,B,C) A是碼 A -->B ,B-->C

定義:如果關系模式R是第一范式的,而且關系中每一個非主屬性不部分依賴于主鍵,稱R是第二范式的。

所以第二范式的主要任務就是

滿足第一范式的前提下,消除部分函數依賴。

StudyNo?? |?? Name?? |?? Sex?? |???????? Email???????? |????? Phone??? |?? ClassNo? | ClassAddress

01????????????????? john??????? Male?????? kkkk@ee.net ???? 222456????? 200401??????????? A樓2

01?????????????????? mary?????? famale??? kkk@fff.net ?????? 123455????? 200402??????????? A樓3

這個表完全滿足于第一范式,

主鍵由StudyNo和ClassNo組成,這樣才能定位到指定行

但是,ClassAddress部分依賴于關鍵字(ClassNo-〉ClassAddress),

所以要變為兩個表

表一

StudyNo?? |?? Name?? |?? Sex?? |????? Email???????? |????? Phone |?? ClassNo

????? 01??????????? john???????? Male?????? kkkk@ee.net ? 222456?? 200401?????

????? 01?????????? mary???????? famale??? kkk@fff.net ??? 123455????? 200402????

表二

?ClassNo? | ClassAddress

?200401????? A樓2

?200402????? A樓3


第三范式

不存在非主屬性對碼的傳遞性依賴以及部分性依賴 ,
StudyNo?? |?? Name?? |?? Sex?? |????? Email???????? |????? bounsLevel?? |?? bouns

20040901????? john???????? Male?????? kkkk@ee.net ?? 優秀??????????????????? $1000

20040902???? mary???????? famale??? kkk@fff.net ?????? 良???????????????????????? $600

這個完全滿足了第二范式,但是bounsLevel和bouns存在傳遞依賴

更改為:

StudyNo?? |?? Name?? |?? Sex?? |????? Email???????? |????? bouunsNo

20040901????? john???????? Male?????? kkkk@ee.net ?? 1

20040902???? mary???????? famale??? kkk@fff.net ?????? 2

bounsNo?? |?? bounsLevel?? |?? bouns

1?????????????????? 優秀??????????????? $1000

?2???????????????? 良?????????????????? $600

這里我比較喜歡用bounsNo作為主鍵,

基于兩個原因

1)不要用字符作為主鍵??赡苡腥苏f:如果我的等級一開始就用數值就代替呢?

2)但是如果等級名稱更改了,不叫 1,2 ,3或優、良,這樣就可以方便更改,所以我一般優先使用與業務無關的字段作為關鍵字。

?

一般滿足前三個范式就可以避免數據冗余。

第一范式,第二范式,第三范式


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 收藏| 淅川县| 武功县| 墨脱县| 宁安市| 德惠市| 玉环县| 襄城县| 盐池县| 彭山县| 安仁县| 左云县| 郑州市| 邻水| 新安县| 德保县| 饶河县| 忻城县| 通渭县| 舒城县| 盐边县| 晋江市| 温州市| 公安县| 陆河县| 镇远县| 文化| 海淀区| 怀仁县| 阜宁县| 汽车| 西吉县| 巨野县| 北安市| 乐都县| 灵台县| 蓝山县| 香港| 平陆县| 澄迈县| 龙井市|