延續自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等表格。批改時,我們不會針對表格的流水號進行檢查,你只需要確保不同表格具有不同名稱即可。