一直是似懂非懂,今天似乎搞明白了,當然也希望有人幫我指正。
這有一文,說得不錯:https://zhidao.baidu.com/question/624751186930899444.html
首先我們明確符合3NF的,必然符合2NF;符合2NF,也符合1NF;三者是一個包含關系。所以我認為重點是如何界定符合2NF,但不符合3NF的情形。
先來看看這個關系
R(學號,姓名,性別,年齡,所在系的編號,所在系的名稱)
在這個關系中,主碼是(學號),各個非主屬性對主碼的依賴關系有:學號→姓名,學號→性別,學號→年齡,學號→所在系編號,
另外還存在依賴關系:所在系的編號→所在系的名稱,即所在系名稱對主碼(學號)存在傳遞依賴,所以屬於2NF。
2NF是關系中存在傳遞依賴,但不存在部分依賴的關系,3NF是關系中既不存在部分依賴,也不存在傳遞依賴的關系。
可以分割為兩個關系,以消除傳遞依賴,使其符合3NF:
R1(學號,姓名,性別,年齡,所在系的編號),R2(所在系的編號,所在系的名稱)
那么什么叫部分依賴關系呢?
看這個關系
R(課程號,學生編號,姓名,性別,考試成績,課程名)
在這個關系中,主碼是(課程號,學生編號),各大非主屬性對主碼的依賴關系有:(課程號,學生編號)→考試成績,同時存在部分依賴關系學生編號→姓名,學生編號→性別,課程號→課程名
所以以上關系不屬於2NF,只能算是1NF。部分依賴關系是指非主屬性只依賴於部分主碼。