資料庫系統實現答案
看你問卷問題個數,如果個數教少,那就每個問題作為一個欄位,根據每個問題答案類型設置欄位類型。如果問題較多,建議每個問題作為一條數據,設置一個問卷ID,標識該問題屬於哪一份問卷,然後根據需要,設計欄位,例如問題,答案,欄位類型都可以是varchar類型,單選/多選的話可以存儲成json或者數組都可以,不過數組的話,存取過程需要數組和字元串相互轉化
2. 資料庫系統概論課後題答案
9.答:(1)首先畫出一些重的函數依賴,所有這些函數依賴都是根據習題的文字說明和語義假設導出。 語義假設如下:
1)一個職工不能同時成為多個部門的領導人; 2)一個職工不能同在在多個部門就職; 3) 一個職工不能同時參加多個生產項目;
4) 一個職工不能同時在兩個不同的辦公室辦公; 5) 一個職工不能同時擁有兩部或兩部以上的電話;
AREA
DBUDGET
OFF#DEPT#MGR_EMP#
PHONE#EMP#PROJ#PBUDGET#
JOBTITLE
DATE
SALARY
6)一個生產項目不能同時分配給多個部門; 7)一個辦公室不能同時分配給多個部門;
8)部門號、職工號、項目號、辦公室號及電話號碼是全局惟一的。 (2)先按照圖5。12設計一組關系模式,它們都是屬於INF的。 DEPT(DEPT#,DBUDGET,MGR_EMP#桐賀銷) PRIMARY KEY(DEPT#)
DEPT#和MGR_EMP#都是候選碼,把DEPT#作為主碼。
F={DEPT#→DBUDGET,DEPT#→MGR_EMP#,MGR_EMP#→DEPT#} EMPI(EMP#,DEPT#,PROJ#,OFF#,PHONE# PRIMARY KEY (EMP#)
F={EMP#→DEPT#,EMP#→PROJ#,EMP#→OFF#,EMP#→PHONE#,PHONE#→OFF#,OFF#→DEPT#,PROJ#→DEPT#} JOB(EMP#,JOBTITLE)
PRIMARY KEY(EMP#,JOBTITLE)
F={EMP#局游,JOBTITLE→EMP#,EMP#,JOBTITLE→JOBTITLE} SALHIST(EMP#,JOBTITLE,DATE,SALARY) PRIMARY KEY (EMP#,DATE)
F={EMP#,DATE→JOBTITLE,EMP#,DATE→SALARY} PROJ(PROJ#,DEPT#,PBUDGET) PRIMARY KEY (PROJ#)
F={PROJ#→DEPT#,PROJ#→PBUDGET} OFFICE(OFF#,DEPT#,AREA) PRIMARY KEY (OFF#)
F={OFF#→DEPT#,OFF#→AREA} PHONE(PHONE#,OFF#) PRIMARY KEY (PHONE#)
F={PHQNE#→OFF#}
(3)現在來分析一下這7個關系模式,發現:SALHIST(EMP#,DATE,JOBTITLE,SALARY)的屬性包含了JOB(EMP#,JOBTLTLE)的屬性,所以JOB(EMP#,JOBTITLE)可以消去。
EMP1中OFF#和DEPT#都傳遞函數依賴於主碼(EMP#)。OFF#通過PHONE#,DEPT#通過PROJ#或OFF#(然後通過拍陵PHONE#)傳遞依賴於{EMP#},所以可以把EMP1(EMP#,DEPT#,PROJ#,OFF#,PHONE#)分解成下面4個3NF的關系模式: EMP(EMP#,PROJ#,PHONE#) PRIMARY KEY (EMP#) X(PHONE#,OFF#)
PRIMARY KEY(PHONE#) Y(PROJ#,DEPT#)
PRIMARY KEY(PROJ#) Z(OFF#,DEPT#) PRIMARY KEY(OFF#)
然而,X就是PHONE,Y是PROJ的投影,Z是OFFICE的投影,所以X、Y、Z都可以消去。
最後可以得到下面6個關系模式,所有這些關系模式都是屬於3NF的,進一步發現他們也是BCNF的。
DEPT(DEPT#,DBUDGET,MGR_EMP#) PRIMARY KEY(MGR_EMP#) EMP(EMP#,PROJ#,PHONE#) PRIMARY KEY(EMP#)
SALHIST(EMP#,DATE,JOBTITLE,SALARY) PRIMARY KEY (EMR#)
PROJ(PROJ#,DEPT#,PBUDGET) PRIMARY KEY(PROJ#)
OFFICE(OFF#,DEPT#,AREA) PRIMARY KEY(OFF#) PHONE(PHONE#,OFF#)
PRIMARY KEY(PHONE#)
10.答:其語義假設如下:
(1)任何兩個顧客的收貨地址都不相同; (2)每一個訂單都有一個惟一的訂單號碼。
(3)每個訂單的訂單細則在這個訂單里有一個惟一的編號。 函數依賴圖如下:
ADDRESSADDRESS
QTYORD
ORD#
DISCOUNT
CREDLIM
BAL
CUST#
QTYOUTDANGER
PLANT#QTYOH
ITEM#DESCNLINE#
相應的BCNF關系模式如下:
CUST(CUST#,BAL,CREDLIM,DISCOUNT) PRIMARY KEY(CUST#) SHIPTO(ADDRESS,CUST#) PRIMARY KEY(ADDRESS)
ORDHEAD(ORD#,ADDRESS,DATE) PRIMARY KEY(ORD#)
ORDLINE(ORD#,LINE#,ITEM#,QTYORD,QTYOUT) PRIMARY KEY (ORD#,LINE#) ITEM(ITEM#,DESCN)
PRIMARY KEY(ITEM#)
IP(ITEM#,PLANT#,QTYOH,DANGER) PRIMARY KEY (ITEM#,PLANT#)