Project 3

turnin code: db.proj3

延續自Project 2,請將程式命名為decompose.c。此程式的輸入檔與isBCNF.c的輸入相同,且同樣使用redirect方式輸入到程式中。此程式取得輸入後,必須判定此relation是否符合BCNF(Boyce-Code Normal Form),如果不符合BCNF,請對此relation做decompose,再判斷切割後的兩個relation是否符合BCNF,延續上述步驟,直至所有切割後的relations都符合BCNF為止。此程式的輸入檔格式如下:

此程式的執行結果可參考如下:

[11:19 user@ws proj3] cat in.1
R(ABCDEFGH)
4
A->C
D->E
AD->H
BCF->H
[11:19 user@ws proj3] ./a.out < in.1
R1(BCFH)
R2(DE)
R3(AC)
R4(ABDFG)

註:在輸出結果部份,表格的名稱請延用原輸入的表格名稱,但在其後加上一個數字流水號即可。意即R(ABCDEFGH)可切割為R1, R2, …, RN等表格。批改時,我們不會針對表格的流水號進行檢查,你只需要確保不同表格具有不同名稱即可。