資料庫關系分解
㈠ 資料庫系統系統原理,關系模式方面問題
Q1:問第三題具體是該如何實現的?
A1:第三題可採用保持函數依賴的分解演算法。
Q2:第三題問題將R分解成等價的3NF,是不是說R分解出來的所有關系模式都必須是3NF的?
A2:可以說模式分解後的關系模式一定是3NF的,其中:
1.保持函數依賴的分解一定是3NF,但不一定是BCNF。
2.既保持函數依賴又有無損連接性的分解一定是3NF,但不一定是BCNF。
3.具有無損連接性的分解,一定可達到4NF。
Q3:第一範式,第二範式都能理解,那麼第三範式是在第二範式的基礎上,增加了什麼條件?
A3:第三範式是在第一模式的基礎上,消除了每一個非主屬性與碼的傳遞依賴,比如X→Y,Y→Z,這里就是Z傳遞依賴於X。
Q4:以R1(Sno, Cno, G)為例,由於(Sno,Cno)-->G,但是並不能確定G就一定不能決定(Sno,Cno),所以R1就是第三範式。這樣理解對不對?
A4:以R1(Sno, Cno, G)為例,由於(Sno,Cno)-->G,這里只有(Sno,Cno)決定G這一個函數依賴,此例G完全依賴於(Sno,Cno),並不存在傳遞依賴,決定因素也只有碼(Sno,Cno)一個,所以R1是BCNF範式,自然也是第三範式。(ps:4NF多值依賴這一塊我還在理解,如果僅僅R(Sno,Cno,G),F={(Sno,Cno)-->G}這個條件的話我認為是屬於4NF的,等我理解了再來補答~)
㈡ 資料庫 分解成3NF範式
1:
R((職工號,日期)->日營業額,職工號->部門名,部門名->經理)
候選碼:職工號,日期,部門名
2,因為R集合中存在傳遞函數依賴,會產生冗餘數據,所以不是3NF
3NF如下:
R1(職工號,日期,日營業額)
R2(職工號,部門名)
R3(部門名,部門經理)
㈢ 資料庫 關系模式 BC → D, C → AF, AB → CE 如何分解成BCNF
我們先來推斷一下碼;
c->af====>c->a,c->f
ab->ce===>ab->c,ab->e
這樣我們得到:ab->a,ab->c,ab->f,ab->e
又因為
bc->d,ab->c
我們是不是能得到ab->d呢,答案是肯定的。所以呢ab作為碼就可以了。
根據BCNF定義,可分為:
R1 {A,B,C,E}
R1 {A,B,D,F},如果不對,歡迎指正。