很多人都陷入先入為主的思維,因?yàn)橐婚_始教科書上給的圖片就是三范式包含在二范式里面锦积,又說是二范式去除了傳遞依賴就是三范式芒帕,所以結(jié)論顯而易見巴拉巴拉。
但是三范式的定義是 R如果是一范式丰介,那么R中不存在這樣的碼X背蟆,屬性組Y以及非主屬性Z(Z不屬于Y)使得X->Y,Y->Z成立哮幢,Y不依賴于Z带膀,則稱R屬于三范式
整個(gè)定義里面并沒有關(guān)鍵的二范式中提到的 部分依賴問題,那到底怎么證明呢家浇?
顯然 我們假設(shè) R是三范式但是不是二范式來反證:
如果R是三范式本砰,既滿足定義,但是不滿足二范式钢悲,我們?cè)O(shè)R中屬性為為 primarykey1点额,primarykey2,normal莺琳,其中依賴關(guān)系只有primarykey1->normal还棱,那么主碼應(yīng)該是(key1,key2),既有(key1,key2)->key1惭等,key1->normal珍手,(key1,key2)->normal,我想到這里聰明的你已經(jīng)看出來哪里不對(duì)了辞做,因?yàn)檫@與定義中的X->Y琳要,Y->Z 且 Y不依賴于Z 和 Z不屬于Y都不沖突,即R中存在這樣的關(guān)系秤茅,這與R是三范式矛盾稚补,因此得出R如果是三范式,一定是二范式的結(jié)論框喳,證明完畢课幕。
由此可以得出厦坛,如果在不考慮平凡依賴關(guān)系的情況下,非主屬性不存在間接依賴(傳遞依賴)乍惊,就一定不存在部分依賴杜秸。
當(dāng)然了,主屬性依然可能存在部分依賴的問題润绎,不過那就是BCNF范式的事情了撬碟。