數(shù)據(jù)庫(kù)概論必考經(jīng)典例題課后重點(diǎn)答案_第1頁(yè)
數(shù)據(jù)庫(kù)概論必考經(jīng)典例題課后重點(diǎn)答案_第2頁(yè)
數(shù)據(jù)庫(kù)概論必考經(jīng)典例題課后重點(diǎn)答案_第3頁(yè)
數(shù)據(jù)庫(kù)概論必考經(jīng)典例題課后重點(diǎn)答案_第4頁(yè)
數(shù)據(jù)庫(kù)概論必考經(jīng)典例題課后重點(diǎn)答案_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、13.用用SQL語(yǔ)句建立第二章習(xí)題語(yǔ)句建立第二章習(xí)題5中的四個(gè)表:中的四個(gè)表: 供應(yīng)商關(guān)系:S(SNO,SNAME,STATUS,CITY) 零件關(guān)系:P(PNO,PNAME,COLOR,WEIGHT) 工程項(xiàng)目關(guān)系:J(JNO,JNAME,CITY) 供應(yīng)情況關(guān)系:SPJ(SNO,PNO,JNO,QTY)2 定義的關(guān)系S有四個(gè)屬性,分別是供應(yīng)商號(hào)(SNO)、供應(yīng)商名(SNAME)、狀態(tài)(STATUS)和所在城市(CITY),屬性的類(lèi)型都是字符型,長(zhǎng)度分別是4、20、10和20個(gè)字符。主鍵是供應(yīng)商編號(hào)SNO。在SQL中允許屬性值為空值,當(dāng)規(guī)定某一屬性值不能為空值時(shí),就要在定義該屬性時(shí)寫(xiě)上保留字

2、“NOT NULL”。本例中,規(guī)定供應(yīng)商號(hào)和供應(yīng)商名不能取空值。由于已規(guī)定供應(yīng)商號(hào)為主碼,所以對(duì)屬性SNO的定義中的“NOT NULL”可以省略不寫(xiě)。 CREATE TABLE S (SNO CHAR(4) NOT NULL, SNAME CHAR(20) NOT NULL, STATUS CHAR(10), CITY CHAR(20), PRIMARY KEY (SNO);); 3CREATE TABLE P (PNO CHAR(4) NOT NULL, PNAME CHAR(20) NOT NULL, COLOR CHAR(8), WEIGHT SMALLINT, PRIMARY KEY(

3、PNO);CREATE TABLE J (JNO CHAR(4) NOT NULL, JNAME CHAR(20), CITY CHAR(20), PRIMARY KEY(JNO);CREATE TABLE SPJ (SNO CHAR(4) NOT NULL, PNO CHAR(4) NOT NULL, JNO CHAR(4) NOT NULL, QTY SMALLINT, PRIMARY KEY (SNO,PNO,JNO), FOREIGN KEY (SNO) REFERENCES S(SNO), FOREIGN KEY (PNO) REFERENCES P(PNO), FOREIGN KE

4、Y (JNO) REFERENCES J(JNO); 4 4.針對(duì)上題中建立的四個(gè)表試用SQL語(yǔ)言完成第二章習(xí)題5中的查詢(xún) 1)求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼SNO; 2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO; 3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)SNO; 4)求沒(méi)有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO; 5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)JNO51)求供應(yīng)工程求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼零件的供應(yīng)商號(hào)碼SNO; SELECT DISTINCT SNO FROM SPJ WHERE JNO=SELECT DISTINCT SNO FROM SPJ WHERE JNO

5、=J1J1; ; SELECT SELECT子句后面的子句后面的DISTINCTDISTINCT表示要在結(jié)果中去掉重復(fù)的供應(yīng)商編號(hào)表示要在結(jié)果中去掉重復(fù)的供應(yīng)商編號(hào)SNOSNO。一個(gè)供應(yīng)商可以為一個(gè)工程一個(gè)供應(yīng)商可以為一個(gè)工程J1J1提供多種零件。提供多種零件。 2)求供應(yīng)工程求供應(yīng)工程J1零件零件P1的供應(yīng)商號(hào)碼的供應(yīng)商號(hào)碼SNO; SELECT SNO FROM SPJ SELECT SNO FROM SPJ WHERE JNO= WHERE JNO=J1J1 AND PNO= AND PNO=P1P1; ;3)求供應(yīng)工程求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)零件為紅色的供應(yīng)商號(hào)SNO; SE

6、LECT DISTINCT SNO FROM SPJ SELECT DISTINCT SNO FROM SPJ WHERE JNO= WHERE JNO=J1J1 AND PNO IN AND PNO IN (SELECT PNO (SELECT PNO FROM P FROM P WHERE COLOR= WHERE COLOR=紅紅); ;6 4)求沒(méi)有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)求沒(méi)有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO; 常見(jiàn)錯(cuò)誤:常見(jiàn)錯(cuò)誤: SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM S,SPJ,P WHERE S

7、PJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY=天津AND P.COLOR=紅); 當(dāng)從單個(gè)表中查詢(xún)時(shí)當(dāng)從單個(gè)表中查詢(xún)時(shí),目標(biāo)目標(biāo)列表達(dá)式用列表達(dá)式用* ,若為多表必須用若為多表必須用表名表名.*正確寫(xiě)法SELECT JNO FROM JWHERE NOT EXISTS (SELECT S.*,SPJ.*,P.* FROM S,SPJ,P WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY=天津 AND P.COLOR=紅)74)求沒(méi)有使用天

8、津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)求沒(méi)有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO; SELECT JNO FROM J WHERE JNO NOT IN (SELECT JNO FROM S,SPJ,P WHERE S.SNO=SPJ.SNO AND SPJ.PNO=P.PNO AND S.CITY=天津 AND P.COLOR=紅); SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ.JNO=J.JNO AND SPJ.SNO IN (SELECT SNO FROM S WHERE S.CITY=天津) AND SP

9、J.PNO IN (SELECT PNO FROM P WHERE P.COLOR=紅)85)求至少用了供應(yīng)商求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)所供應(yīng)的全部零件的工程號(hào)JNOSELECT DISTINCT JNOFROM SPJ SPJ1WHERE NOT EXISTS (SELECT * FROM SPJ SPJ2 WHERE SNO=S1 AND NOT EXISTS PNO= ALL (SELECT * FROM SPJ SPJ3 WHERE PNO=SPJ2.PNO AND JNO=SPJ1.JNO) )95)求至少用了供應(yīng)商求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)所供應(yīng)

10、的全部零件的工程號(hào)JNO 第一種理解:SELECT DISTINCT JNO FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY.SNO=S1 AND NOT EXISTS (SELECT * FROM SPJ SPJZ WHERE SPJZ.JNO=SPJX.JNO AND SPJZ.PNO=SPJY.PNO AND SPJZ.SNO=SPJY.SNO); 查詢(xún)結(jié)果: 第二種理解:SELECT DISTINCT JNO FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM S

11、PJ SPJY WHERE SPJY.SNO=S1 AND NOT EXISTS (SELECT * FROM SPJ SPJZ WHERE SPJZ.JNO=SPJX.JNO AND SPJZ.PNO=SPJY.PNO); 查詢(xún)結(jié)果:J4SPJZ.SNO=S1SPJZ.SNO=S1105.針對(duì)習(xí)題針對(duì)習(xí)題3中的四個(gè)表試用中的四個(gè)表試用SQL語(yǔ)言完成以下各項(xiàng)操作語(yǔ)言完成以下各項(xiàng)操作1)找出所有供應(yīng)商的姓名和所在城市2)找出所有零件的名稱(chēng)、顏色、重量3)找出使用供應(yīng)商S1所供應(yīng)零件的工程號(hào)碼4)找出工程項(xiàng)目J2使用的各種零件的名稱(chēng)及其數(shù)量5)找出上海廠(chǎng)商供應(yīng)的所有零件號(hào)碼6)找出使用上海產(chǎn)的零件

12、的工程名稱(chēng)7)找出沒(méi)有使用天津產(chǎn)的零件的工程號(hào)碼8)把全部紅色零件的顏色改成藍(lán)色9)有S5供給J4的零件P6改為由S3供應(yīng),請(qǐng)作必要的修改10)從供應(yīng)商關(guān)系中刪除S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄11)請(qǐng)將(S2,J6,P4,200)插入供應(yīng)情況關(guān)系111)找出所有供應(yīng)商的姓名和所在城市找出所有供應(yīng)商的姓名和所在城市 SELECT SNAME, CITY FROM S;2)找出所有零件的名稱(chēng)、顏色、重量找出所有零件的名稱(chēng)、顏色、重量 SELECT PNAME, COLOR, WEIGHT FROM P;3)找出使用供應(yīng)商找出使用供應(yīng)商S1所供應(yīng)零件的工程號(hào)碼所供應(yīng)零件的工程號(hào)碼 SE

13、LECT DISTINCT JNO FROM SPJ WHERE SNO=S1;12 4)找出工程項(xiàng)目找出工程項(xiàng)目J2使用的各種零件的名稱(chēng)及其數(shù)量使用的各種零件的名稱(chēng)及其數(shù)量 SELECT PNAME, QTY FROM P, SPJ WHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2; 135)找出上海廠(chǎng)商供應(yīng)的所有零件號(hào)碼找出上海廠(chǎng)商供應(yīng)的所有零件號(hào)碼 SELECT DISTINCT PNO FROM S, SPJ WHERE S.SNO=SPJ.SNO AND S.CITY=上海; SELECT DISTINCT PNO FROM SPJ WHERE SNO IN (S

14、ELECT SNO FROM S WHERE S.CITY=上海);6)找出使用上海產(chǎn)的零件的工程名稱(chēng) SELECT JNAME FROM S, SPJ, J WHERE S.SNO=SPJ.SNO AND J.JNO=SPJ.JNO AND S.CITY=上海 ;147)找出沒(méi)有使用天津產(chǎn)的零件的工程號(hào)碼找出沒(méi)有使用天津產(chǎn)的零件的工程號(hào)碼SELECT JNOFROM JWHERE JNO NOT IN (SELECT JNO FROM SPJ, S WHERE S.SNO=SPJ.SNO AND S.CITY=天津);SELECT JNOFROM JWHERE NOT EXISTS (SEL

15、ECT * FROM SPJ WHERE JNO=J.JNO AND SNO IN (SELECT SNO FROM S WHERE S.CITY=天津);SELECT JNOFROM JWHERE NOT EXISTS (SELECT SPJ.*, S.* FROM SPJ, S WHERE JNO=J.JNO AND SNO=S.SNO AND S.CITY=天津;158)把全部紅色零件的顏色改成藍(lán)色把全部紅色零件的顏色改成藍(lán)色 UPDATE PSET COLOR=藍(lán) WHERE COLOR=紅; 9)由由S5供給供給J4的零件的零件P6改為由改為由S3供應(yīng),請(qǐng)作必要的修改供應(yīng),請(qǐng)作必要的

16、修改 UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P610)從供應(yīng)商關(guān)系中刪除從供應(yīng)商關(guān)系中刪除S2的記錄,并從供應(yīng)情況關(guān)系中刪除的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄相應(yīng)的記錄 DELETE FROM S WHERE SNO=S2; DELETE FROM SPJ WHERE SNO=S211)請(qǐng)將請(qǐng)將(S2,J6,P4,200)插入供應(yīng)情況關(guān)系插入供應(yīng)情況關(guān)系 INSERT INTO SPJ VALUES(S2,P4,J6,200)常見(jiàn)錯(cuò)誤:INSERT INTO SPJ VALUES(S2,J6,P4,200)16 11.

17、請(qǐng)為三建工程項(xiàng)目建立一個(gè)供應(yīng)情況的視圖SANJIAN_SPJ,包括供應(yīng)商代碼(SNO)、零件代碼(PNO)、供應(yīng)數(shù)量(QTY)。針對(duì)該視圖完成下列查詢(xún): 1)找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量。 2)找出供應(yīng)商S1的供應(yīng)情況。17創(chuàng)建視圖: CREATE VIEW SANJIAN_SPJ AS SELECT SNO,PNO,QTY FROM SPJ, J WHERE SPJ.JNO=J.JNO AND J.JNAME=三建;1)找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量。 SELECT PNO, SUM(QTY) SELECT PNO, QTY FROM SANJIAN_SPJ FRO

18、M SANJIAN_SPJ; GROUP BY PNO;2)找出供應(yīng)商S1的供應(yīng)情況。 SELECT * FROM SANJIAN_SPJ WHERE SNO=S118數(shù)據(jù)庫(kù)設(shè)計(jì)方法數(shù)據(jù)庫(kù)設(shè)計(jì)方法 1)基本設(shè)計(jì)法基本設(shè)計(jì)法 分五步進(jìn)行:分五步進(jìn)行: a. 創(chuàng)建用戶(hù)視圖創(chuàng)建用戶(hù)視圖 b. 匯總用戶(hù)視圖,得出全局?jǐn)?shù)據(jù)視圖,即概念模型。匯總用戶(hù)視圖,得出全局?jǐn)?shù)據(jù)視圖,即概念模型。 c. 修改概念模型。修改概念模型。 d. 轉(zhuǎn)換并定義概念模型,轉(zhuǎn)換成轉(zhuǎn)換并定義概念模型,轉(zhuǎn)換成DBMS的數(shù)據(jù)模型。的數(shù)據(jù)模型。 e. 設(shè)計(jì)優(yōu)化物理模型,即存儲(chǔ)策略。設(shè)計(jì)優(yōu)化物理模型,即存儲(chǔ)策略。 19例如1n 關(guān)系模式關(guān)系

19、模式R(C,T,H,R,S,G), F=CT, CSG, HTR, HRC, HSR, 則則=CT,CHR,HRT,CSG,HSR為一個(gè)為一個(gè)3NF的既的既具有無(wú)損聯(lián)接性又具有函數(shù)依賴(lài)保持性的分解。具有無(wú)損聯(lián)接性又具有函數(shù)依賴(lài)保持性的分解。R的碼是的碼是HS。20例如例如2關(guān)系模式關(guān)系模式R(A,B,C,D,E), F=AD,ED,DB, BCD, DCA, 則則=ED, BCD, ACD為一為一個(gè)個(gè)3NF的具有函數(shù)依賴(lài)保持性的分解。的具有函數(shù)依賴(lài)保持性的分解。由于由于R的碼是的碼是CE,則,則=ED, BCD, ACD,CE為為一個(gè)一個(gè)3NF的既具有無(wú)損聯(lián)接性又具有函數(shù)依賴(lài)的既具有無(wú)損聯(lián)接性

20、又具有函數(shù)依賴(lài)保持性的分解。保持性的分解。21例如例如3關(guān)系模式關(guān)系模式R(C,S,Z), F=CSZ,ZC, 則則R屬于屬于3NF,可以分解為具有無(wú)損聯(lián)接性的,可以分解為具有無(wú)損聯(lián)接性的BCNF,而不可能分解成具有函數(shù)依賴(lài)保持性的而不可能分解成具有函數(shù)依賴(lài)保持性的BCNF。當(dāng)分解為當(dāng)分解為=SZ, CZ,則它為一個(gè),則它為一個(gè)BCNF的具的具有無(wú)損聯(lián)接性的分解。有無(wú)損聯(lián)接性的分解。22例如例如4關(guān)系模式關(guān)系模式R(T,Q,P,C,S,Z), F=TQ, TP, TC, TS, PCSZ, ZP, ZC, 試分解試分解R屬于屬于3NF既具有無(wú)損聯(lián)接性又具有函數(shù)依賴(lài)保既具有無(wú)損聯(lián)接性又具有函數(shù)依

21、賴(lài)保持性。從題目可知碼是持性。從題目可知碼是T。根據(jù)相同左部原則可分解為根據(jù)相同左部原則可分解為=TQPCS, PCSZ, ZPC,由于,由于ZPC包含于包含于PCSZ中,所以分解為中,所以分解為=TQPCS, PCSZ。而而R1=T,Q,P,C,S屬于屬于BCNF。但但R2=P,C,S,Z不屬于不屬于BCNF;再繼續(xù)分解成;再繼續(xù)分解成SZ, PCZ后,則屬于后,則屬于BCNF。23例如例如5關(guān)系模式關(guān)系模式R(S,C,G,T,D), F=SCG, CT, TD, 試分解成試分解成BCNF。從題目可知碼是。從題目可知碼是SC。首先從關(guān)系首先從關(guān)系R中分出中分出TD,即,即R1(S,C,G,T

22、), R2(T,D)。再?gòu)脑購(gòu)腞1中分出中分出CT,即,即R3(C,T),R4(S,C,G)。R2,R3,R4都屬于都屬于BCNF,分解完成。,分解完成。24習(xí)題:求候選碼,轉(zhuǎn)換3NF,BCNFn 1、設(shè)有關(guān)系模式、設(shè)有關(guān)系模式R(O, I, S, Q, B, D),其中,其中F=SD, IB, ISQ, BO。 n 2、設(shè)有關(guān)系模式、設(shè)有關(guān)系模式R(A, B, C, D),其中,其中 F=AC, CA, BAC,DAC, BDA。n 3、設(shè)有關(guān)系模式、設(shè)有關(guān)系模式R(A, B, C, D, E),其中,其中F=AD, ED, DB, BCD, DCA。n 4、設(shè)有關(guān)系模式、設(shè)有關(guān)系模式R(A

23、, B, C, D, E, F),其中,其中F=AB, CF, EA, CED。25習(xí)題:習(xí)題:求候選碼,轉(zhuǎn)換成求候選碼,轉(zhuǎn)換成BCNF5、設(shè)有關(guān)系模式、設(shè)有關(guān)系模式R(學(xué)號(hào)學(xué)號(hào), 課程號(hào)課程號(hào), 學(xué)分學(xué)分, 成績(jī)成績(jī), 獎(jiǎng)學(xué)金獎(jiǎng)學(xué)金),其中,其中F=課程號(hào)課程號(hào)學(xué)分學(xué)分, 成績(jī)成績(jī)獎(jiǎng)學(xué)獎(jiǎng)學(xué)金金, (學(xué)號(hào)學(xué)號(hào),課程號(hào)課程號(hào))成績(jī)成績(jī)。 6、設(shè)有關(guān)系模式、設(shè)有關(guān)系模式R(學(xué)生學(xué)生, 課程課程, 教師教師),其中,其中 F=教師教師課程課程, (學(xué)生學(xué)生, 課程課程)教師教師。26習(xí)題答案n 1、KEY=ISn 2、KEY=BDn 3、KEY=CEn 4、KEY=CEn 5、KEY=(學(xué)號(hào),課程號(hào)

24、)n 6、KEY=(學(xué)生,課程);R1(學(xué)生,教師),R2(教師,課程)27例如n R(A,B,C),F=AB,CB。當(dāng)。當(dāng)1=AB,AC時(shí),它具有無(wú)時(shí),它具有無(wú)損聯(lián)接性,但不具有依賴(lài)保持性。當(dāng)損聯(lián)接性,但不具有依賴(lài)保持性。當(dāng) 2=AB,BC時(shí),它具有依賴(lài)保持性,但不具有無(wú)損聯(lián)接時(shí),它具有依賴(lài)保持性,但不具有無(wú)損聯(lián)接性。性。n 然而當(dāng)然而當(dāng)3=AB,AC,BC時(shí),它既具有依賴(lài)保持性,又具有時(shí),它既具有依賴(lài)保持性,又具有無(wú)損聯(lián)接性。無(wú)損聯(lián)接性。28依賴(lài)保持n 設(shè)關(guān)系模式設(shè)關(guān)系模式R的一個(gè)分解為的一個(gè)分解為 =R1,R2,., Rk,F(xiàn)是是R的依的依賴(lài)集。如果賴(lài)集。如果F等價(jià)于等價(jià)于R1(F) R

25、2(F) . Rk(F),則,則稱(chēng)分解稱(chēng)分解具有依賴(lài)保持性。具有依賴(lài)保持性。n 一個(gè)無(wú)損聯(lián)接分解不一定具有依賴(lài)保持性;一個(gè)無(wú)損聯(lián)接分解不一定具有依賴(lài)保持性;n 同樣一個(gè)依賴(lài)保持分解不一定具有無(wú)損聯(lián)接。同樣一個(gè)依賴(lài)保持分解不一定具有無(wú)損聯(lián)接。29模式分解n 若要求分解保持函數(shù)依賴(lài),那么模式分解總可以達(dá)到若要求分解保持函數(shù)依賴(lài),那么模式分解總可以達(dá)到3NF,但不一定能達(dá)到但不一定能達(dá)到BCNF。n 若要求分解既保持函數(shù)依賴(lài),又具有無(wú)損聯(lián)接性,那么模若要求分解既保持函數(shù)依賴(lài),又具有無(wú)損聯(lián)接性,那么模式分解可以達(dá)到式分解可以達(dá)到3NF,但不一定能達(dá)到,但不一定能達(dá)到BCNF。n 若要求分解既具有無(wú)損聯(lián)

26、接性,那么模式分解一定可以達(dá)若要求分解既具有無(wú)損聯(lián)接性,那么模式分解一定可以達(dá)到到4NF。30求下列最高屬于第幾范式求下列最高屬于第幾范式1.設(shè)設(shè)R(A,B,C,D), F= BD,ABC。2.設(shè)設(shè)R(A,B,C,D,E), F=ABCE,EAB,CD。3.設(shè)設(shè)R(A,B,C,D), F=BD,DB,ABC。4.設(shè)設(shè)R(A,B,C),F=AB,BA,AC。5.設(shè)設(shè)R(A,B,C),F=AB,BA,CA。6.設(shè)設(shè)R(A,B,C,D), F= AC,DB。7.設(shè)設(shè)R(A,B,C,D), F= AC,CDB。31答案答案1、Key=AB, R1NF2、Key=AB或或E, R2NF3、Key=AB或

27、或AD, R3NF 4、Key=A或或B, RBCNF 5、Key=C, R3NF6、Key=AD, R1NF7、Key=AD, R1NF 32BCNF定義定義若若R1NF,若,若XY且且Y X時(shí)時(shí)X必含有碼。必含有碼。例如:由于例如:由于(SNO,CNO)G,滿(mǎn)足,滿(mǎn)足BCNF的定的定義,所以義,所以SC屬于屬于BCNF。當(dāng)當(dāng)S-L分解成分解成SD(SNO,SDEPT)和和DL(SDEPT, SLOC)后的情形如下。后的情形如下。對(duì)于對(duì)于SD的函數(shù)依賴(lài)的函數(shù)依賴(lài)SNOSDEPT,所以它的,所以它的碼是碼是SNO,所以,所以SD屬于屬于BCNF。對(duì)于對(duì)于DL的函數(shù)依賴(lài)的函數(shù)依賴(lài) SDEPTSL

28、OC,所以它,所以它的碼是的碼是SDEPT,所以,所以DL屬于屬于BCNF。333NF定義定義若若R1NF,且每一個(gè)非主屬性既不部分函數(shù),且每一個(gè)非主屬性既不部分函數(shù)依賴(lài)于碼也不傳遞函數(shù)依賴(lài)于碼。依賴(lài)于碼也不傳遞函數(shù)依賴(lài)于碼。例如:當(dāng)把例如:當(dāng)把S-L-C分解成分解成SC(SNO,CNO,G)和和 S-L(SNO,SDEPT,SLOC)后。后。由于由于(SNO,CNO)G,滿(mǎn)足,滿(mǎn)足3NF的定義,所以的定義,所以SC屬于屬于3NF。而而S-L中候選碼是中候選碼是SNO,但,但 SDEPTSLOC; SNOSDEPT,即,即非主屬性非主屬性SLOC傳遞依賴(lài)于傳遞依賴(lài)于碼,所以碼,所以S-L不屬于

29、不屬于3NF。342NF定義定義若若R1NF,且每一個(gè)非主屬性完全函數(shù)依賴(lài),且每一個(gè)非主屬性完全函數(shù)依賴(lài)于碼。于碼。例如:例如:S-L-C(SNO,SDEPT,SLOC,CNO,G),這,這里里SNO表示學(xué)號(hào),表示學(xué)號(hào),SDEPT表示系名,表示系名,SLOC表表示樓號(hào),示樓號(hào),CNO表示課程號(hào),表示課程號(hào),G表示成績(jī)。表示成績(jī)。 函數(shù)依賴(lài)有函數(shù)依賴(lài)有: (SNO,CNO)G; SDEPTSLOC; SNOSDEPT。 所以候選碼是所以候選碼是(SNO,CNO)。而。而非主屬性非主屬性SDEPT和和SLOC都是部分函數(shù)依賴(lài)于碼,所以都是部分函數(shù)依賴(lài)于碼,所以S-L-C不不屬于屬于2NF,但屬于,

30、但屬于1NF。35習(xí)題習(xí)題設(shè)設(shè)R(A,B,C), r為為R的一個(gè)值,的一個(gè)值,r=ab1c1,ab2c2, ab1c2,ab2c1。 問(wèn)問(wèn)1. r 滿(mǎn)足條件滿(mǎn)足條件AB嗎?為什么?嗎?為什么? 2. 如果在如果在r中任取一三個(gè)元組的子集,這些中任取一三個(gè)元組的子集,這些子集滿(mǎn)足條件子集滿(mǎn)足條件AB嗎?為什么?嗎?為什么?1. r 滿(mǎn)足條件滿(mǎn)足條件AB。2. 不滿(mǎn)足條件不滿(mǎn)足條件AB。36求關(guān)鍵字n 1.設(shè)設(shè)R(A,B,C,D,E,P), F= AD,ED,DB, BCD,CDA。n 2.設(shè)設(shè)R(O,I,S,Q,B,D), F=SD,DS,IB,BI, BO, OB。n 3.設(shè)設(shè)R(X,Y,Z,

31、W), F=WY,YW,XWY, ZWY, XZW。n 4.設(shè)設(shè)R(O,I,S,Q,B,D),F=SD,IB,BO,OQ, QI。n 5.設(shè)設(shè)R(O,I,S,Q,B,D),F=IB,BO,IQ,SD。37答案n 1、CEPn 2、QSI,QSO,QSB, QDB,QDI,QDOn 3、XZn 4、SI,SQ,SB,SOn 5、IS38四大定理n 定理定理1:設(shè):設(shè)K為為R中的屬性或?qū)傩越M合,若中的屬性或?qū)傩越M合,若K是是L或或N類(lèi),則類(lèi),則K必為必為R的任一候選關(guān)鍵字成員。即是主屬的任一候選關(guān)鍵字成員。即是主屬性。性。n 定理定理2:設(shè):設(shè)X為為R中的屬性或?qū)傩越M合,若中的屬性或?qū)傩越M合,若X

32、是是R類(lèi),則類(lèi),則X不在任何候選關(guān)鍵字中。即是非主屬性。不在任何候選關(guān)鍵字中。即是非主屬性。n 定理定理3:若:若K是是L類(lèi),且類(lèi),且K+包含包含R的全部屬性,則的全部屬性,則K必為必為R的唯一候選關(guān)鍵字。的唯一候選關(guān)鍵字。n 定理定理4:若:若K是是L和和N類(lèi)屬性組合,且類(lèi)屬性組合,且K+包含包含R的全部屬的全部屬性,則性,則K必為必為R的唯一候選關(guān)鍵字。的唯一候選關(guān)鍵字。39快速求解關(guān)鍵字n 給定關(guān)系模式給定關(guān)系模式R(A1,A2,.,An)和函數(shù)依賴(lài)集和函數(shù)依賴(lài)集F,可將其屬性,可將其屬性分為四類(lèi):分為四類(lèi):n 1、僅僅出現(xiàn)在、僅僅出現(xiàn)在F的函數(shù)依賴(lài)左部的屬性稱(chēng)的函數(shù)依賴(lài)左部的屬性稱(chēng)L類(lèi);類(lèi);n 2、僅僅出現(xiàn)在、僅僅出現(xiàn)在F的函數(shù)依賴(lài)右部的屬性稱(chēng)的函數(shù)依賴(lài)右部的屬性稱(chēng)R類(lèi);類(lèi);n 3、在、在F的函數(shù)依賴(lài)左右均未出現(xiàn)的屬性稱(chēng)的函數(shù)依賴(lài)左右均未出現(xiàn)的屬性稱(chēng)N類(lèi);類(lèi);n 4、在、在F的函數(shù)依賴(lài)左右均出現(xiàn)的屬性稱(chēng)的函數(shù)依賴(lài)左右均出現(xiàn)的屬性稱(chēng)LR類(lèi)。類(lèi)。40nStudent(Sno,Sname,Sex,Bdate,Hei

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論