數(shù)據(jù)庫(kù)系統(tǒng)課后習(xí)題_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)課后習(xí)題_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)課后習(xí)題_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)課后習(xí)題_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)課后習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、山東科技大學(xué) 信息學(xué)院 數(shù)據(jù)庫(kù)教學(xué)團(tuán)隊(duì)崔賓閣副教授http:/ 訪問(wèn)密碼 4be4供應(yīng)商表:S(SNO, SNAME, STATUS, CITY);零件表:P(PNO, PNAME, COLOR, WEIGHT);工程項(xiàng)目表:J(JNO, JNAME, CITY);供應(yīng)情況表:SPJ(SNO, PNO, JNO, QTY);(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)JNO。(1)求供應(yīng)工程J

2、1零件的供應(yīng)商號(hào)碼SNO; 關(guān)系代數(shù): ALPHA:GET W (SPJ.SNO): SPJ.JNO = J1(2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO; 關(guān)系代數(shù): ALPHA:GET W (SPJ.SNO): SPJ.JNO = J1 SPJ.PNO=P1(3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)碼SNO; 關(guān)系代數(shù): ALPHA:RANGE P PX GET W (SPJ.SNO): SPJ.JNO = J1 PX(PX.PNO=SPJ.PNO PX.COLOR=紅)(4)求沒(méi)有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO; 關(guān)系代數(shù): ALPHA語(yǔ)言:RANGE S SXRANGE P

3、 PXRANGE SPJ SPJX GET W (J.JNO): SPJX( SPJX.JNO=J.JNO SX(SX.SNO=SPJX.SNO SX.CITY=天津) PX(PX.PNO=SPJX.PNO PX.COLOR=紅) ) (5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)JNO。 關(guān)系代數(shù): ALPHA語(yǔ)言:RANGE SPJ SPJXRANGE SPJ SPJYRANGE P PX GET W (J.JNO): PX( SPJX(SPJX.SNO=S1 SPJX.PNO=PX.PNO) SPJY(SPJY.JNO=J.JNO SPJY.PNO=PX.PNO) )(4) SELE

4、CT S.*,T.* FROM S,T WHERE S.C=T.C(5) SELECT S.*,T.* FROM S,T WHERE AE(6) SELECT S.C,S.D,T.*FROM S,T(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)JNO。創(chuàng)建供應(yīng)商表S: CREATE TABLE S (SNO CHAR(2) PRIMARY KEY,SNAME VARCHAR(10),STATUS

5、 CHAR(2),CITY VARCHAR(10) );創(chuàng)建零件表P: CREATE TABLE P (PNO CHAR(2) PRIMARY KEY,PNAME VARCHAR(10),COLOR CHAR(2),WEIGHT INT );創(chuàng)建工程項(xiàng)目表J: CREATE TABLE J (JNO CHAR(2) PRIMARY KEY,JNAME VARCHAR(10),CITY VARCHAR(10) );創(chuàng)建供應(yīng)情況表SPJ: CREATE TABLE SPJ(SNO CHAR(2),PNO CHAR(2),JNO CHAR(2),QTY INT,PRIMARY KEY (SNO, P

6、NO, JNO),FOREIGN KEY (SNO) REFERENCES S(SNO),FOREIGN KEY (PNO) REFERENCES P(PNO),FOREIGN KEY (JNO) REFERENCES J(JNO) );(1)求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼SNO; SELECT SNO FROM S WHERE JNO = J1(2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO; SELECT SNO FROM S WHERE JNO = J1 AND PNO = P1第(3)-(5)題的答案參照“SQL難題解疑”。(1)查詢所有供應(yīng)商的姓名和所在城市; SELECT SNAME

7、, CITY FROM S(2)查詢所有零件的名稱(chēng)、顏色和重量; SELECT PNAME, COLOR, WEIGHT FROM P(3)查詢使用供應(yīng)商S1所供應(yīng)零件的工程號(hào)碼; SELECT JNO FROM SPJ WHERE SNO=S1(4)查詢工程項(xiàng)目J2使用的零件的名稱(chēng)及其數(shù)量; SELECT PNAME, QTY FROM SPJ, P WHERE SPJ.PNO=P.PNO AND SPJ.JNO=J2(5)找出上海廠商供應(yīng)的所有零件號(hào)碼; SELECT DISTINCT PNO FROM SPJ, S WHERE SPJ.SNO=S.SNO AND S.CITY=上海(6)

8、找出使用上海產(chǎn)的零件的工程名稱(chēng); SELECT DISTINCT JNAME FROM SPJ, S, J WHERE SPJ.SNO=S.SNO AND SPJ.JNO=J.JNO AND S.CITY=上海(7)找出沒(méi)有使用天津產(chǎn)的零件的工程號(hào)碼; SELECT JNO FROM J WHERE JNO NOT IN (SELECT JNOFROM SPJ, SWHERE SPJ.SNO = S.SNO AND S.CITY = 天津 )(8)把全部紅色零件的顏色改成藍(lán)色; UPDATE P SET COLOR=藍(lán) WHERE COLOR=紅(9)將供應(yīng)商S5供給工程J4的零件P6改成由供

9、應(yīng)商S3供應(yīng),請(qǐng)做必要的修改; UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P6(10)從供應(yīng)商關(guān)系中刪除S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄; DELETE FROM SPJ WHERE SNO=S2; DELETE FROM S WHERE SNO=S2;(11)將(S2, J6, P4, 200)插入SPJ表中。 INSERT INTO SPJ(SNO,JNO,PNO,QTY) VALUES(S2,J6,P4,200);請(qǐng)為“三建”工程項(xiàng)目建立一個(gè)供應(yīng)情況的視圖,包括供應(yīng)商代碼(SNO)、零件代碼(PNO)、供應(yīng)數(shù)量

10、(QTY)。 CREATE VIEW SANJIAN_SPJ(SNO,PNO,QTY) AS SELECT SNO,PNO,QTY FROM SPJ, J WHERE SPJ.JNO=J.JNO AND J.JNAME=三建針對(duì)該視圖完成下列查詢:(1)找出“三建”工程項(xiàng)目使用的各種零件代碼及其數(shù)量;1. SELECT PNO, QTY FROM SANJIAN_SPJ;2. SELECT PNO, SUM(QTY) AS QTY FROM SANJIAN_SPJ GROUP BY PNO;(2)找出供應(yīng)商S1的供應(yīng)情況。 SELECT * FROM SANJIAN_SPJ WHERE SNO

11、=S1(1)授予用戶U1對(duì)兩個(gè)表的所有權(quán)限,并可給其他用戶授權(quán)。 GRANT ALL PRIVILEGES ON TABLE 學(xué)生, 班級(jí) TO U1 WITH GRANT OPTION(2)授予用戶U2對(duì)學(xué)生表具有查詢權(quán)限,對(duì)家庭住址具有更新權(quán)限。 GRANT SELECT, UPDATE(家庭住址) ON TABLE 學(xué)生 TO U2(3)將對(duì)班級(jí)表的查詢權(quán)限授予所有用戶。 GRANT SELECT ON TABLE 班級(jí) TO PUBLIC(4)將對(duì)學(xué)生表的查詢、更新權(quán)限授予角色R1。 GRANT SELECT, UPDATE ON TABLE 學(xué)生 TO R1(5)將角色R1授予用戶U

12、1,U1可繼續(xù)授權(quán)給其他用戶。 GRANT R1 TO U1 WITH ADMIN OPTION(1)用戶王明對(duì)兩個(gè)表有SELECT權(quán)限。 GRANT SELECT ON TABLE 部門(mén), 職工 TO 王明(2)用戶李勇對(duì)兩個(gè)表有INSERT和DELETE權(quán)限。 GRANT INSERT, DELETE ON TABLE 部門(mén), 職工 TO 李勇(3)每個(gè)職工只對(duì)自己的記錄有SELECT權(quán)限。 無(wú)答案,僅僅使用GRANT語(yǔ)句無(wú)法做到(4)用戶劉星對(duì)職工表有SELECT權(quán)限,對(duì)工資字段有更新權(quán)限。 GRANT SELECT, UPDATE(工資) ON TABLE 職工 TO 劉星(5)用戶張

13、新具有修改這兩個(gè)表的結(jié)構(gòu)的權(quán)限。 GRANT ALTER ON TABLE 職工, 部門(mén) TO 張新(6)用戶周平具有對(duì)這兩個(gè)表的所有權(quán)限(讀、插、改、刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)限; GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE 職工, 部門(mén) TO 周平 WITH GRANT OPTION(7)用戶楊蘭具有查詢每個(gè)部門(mén)職工的最高工資、最低工資、平均工資的權(quán)限,他不能查看每個(gè)人的工資; CREATE VIEW 部門(mén)工資統(tǒng)計(jì)(部門(mén)號(hào), 部門(mén)名, 最高工資, 最低工資, 平均工資) AS SELECT 部門(mén).部門(mén)號(hào), 部門(mén)名, MAX(工資),

14、MIN(工資), AVG(工資) FROM 部門(mén), 職工 WHERE 部門(mén).部門(mén)號(hào) = 職工.部門(mén)號(hào) GROUP BY 部門(mén).部門(mén)號(hào), 部門(mén)名 GRANT SELECT ON 部門(mén)工資統(tǒng)計(jì) TO 楊蘭假設(shè)有下面兩個(gè)關(guān)系模式:職工(職工號(hào),姓名,年齡,職務(wù),工資,部門(mén)號(hào)),其中職工號(hào)為主碼;部門(mén)(部門(mén)號(hào),部門(mén)名,經(jīng)理名,電話),部門(mén)號(hào)為主碼。用SQL語(yǔ)言定義這兩個(gè)關(guān)系模式,要求:1)定義每個(gè)關(guān)系模式的主碼;2)定義參照完整性約束;3)定義職工年齡不得超過(guò)60歲。CREATE TABLE 部門(mén)(部門(mén)號(hào) CHAR(4) PRIMARY KEY,部門(mén)名 VARCHAR(40),經(jīng)理名 VARCHAR(

15、10),電話 VARCHAR(11);CREATE TABLE 職工(職工號(hào) CHAR(10) PRIMARY KEY,姓名 VARCHAR(10),年齡 INT CHECK(年齡 =SELECT COUNT(*)FROM (SELECT * FROM MaleUNIONSELECT * FROM Female)AS Guest ); 學(xué)生(學(xué)號(hào),姓名,出生年月,系名,班號(hào),宿舍區(qū)) 班級(jí)(班號(hào),專(zhuān)業(yè)名,系名,人數(shù),入校年份) 系(系名,洗好,系辦公室地點(diǎn),人數(shù)) 學(xué)會(huì)(學(xué)會(huì)名,成立年份,地點(diǎn),人數(shù))函數(shù)依賴(lài): 學(xué)號(hào)姓名,學(xué)號(hào)出生年月,學(xué)號(hào)系名,學(xué)號(hào)班號(hào),學(xué)號(hào)宿舍區(qū)。 班號(hào)專(zhuān)業(yè)名,班號(hào)系名,班

16、號(hào)人數(shù),班號(hào)入校年份。 系名系號(hào),系號(hào)系名,系名辦公地點(diǎn),系名人數(shù)。 學(xué)會(huì)名成立年份,學(xué)會(huì)名地點(diǎn),學(xué)會(huì)名人數(shù)。 專(zhuān)業(yè)名系名,(專(zhuān)業(yè)名,入校年份)班號(hào), 系名宿舍區(qū),(學(xué)號(hào),學(xué)會(huì)名)入會(huì)年份學(xué)生關(guān)系模式的極小函數(shù)依賴(lài)集為: 學(xué)號(hào)姓名,學(xué)號(hào)出生年月,學(xué)號(hào)班號(hào),班號(hào)系名,系名宿舍區(qū)。 學(xué)號(hào)班號(hào),班號(hào)系名, 存在學(xué)號(hào)系名的傳遞函數(shù)依賴(lài)。 學(xué)號(hào)系名,系名宿舍區(qū), 存在學(xué)號(hào)宿舍區(qū)的傳遞函數(shù)依賴(lài)。 班號(hào)系名,系名宿舍區(qū), 存在班號(hào)宿舍區(qū)的傳遞函數(shù)依賴(lài)。候選碼:學(xué)號(hào),外部碼:班號(hào),系名。班級(jí)關(guān)系模式的極小函數(shù)依賴(lài)集為: 班號(hào)專(zhuān)業(yè)名,班號(hào)系名,班號(hào)人數(shù),班號(hào)入校年份,專(zhuān)業(yè)名系名,(專(zhuān)業(yè)名,入校年份)班號(hào)。 班號(hào)

17、專(zhuān)業(yè)名,專(zhuān)業(yè)名系名, 存在班號(hào)系名的傳遞函數(shù)依賴(lài)。候選碼:班號(hào),(專(zhuān)業(yè)名,入校年份),外部碼:系名。系關(guān)系模式的極小函數(shù)依賴(lài)集為: 系名系號(hào),系號(hào)系名,系名辦公地點(diǎn),系名人數(shù)。 不存在傳遞函數(shù)依賴(lài)。候選碼:系名,系號(hào),無(wú)外部碼。學(xué)會(huì)關(guān)系模式的極小函數(shù)依賴(lài)集為: 學(xué)會(huì)名成立年份,學(xué)會(huì)名地點(diǎn),學(xué)會(huì)名人數(shù)。 不存在傳遞函數(shù)依賴(lài)。候選碼:學(xué)會(huì)名,無(wú)外部碼。試由ArmStrong公理系統(tǒng)推導(dǎo)出下面三條推理規(guī)則:(1)合并規(guī)則:若X Y,X Z,則有X YZ;設(shè)R的任一關(guān)系r中任意的兩個(gè)元組t、s:若tX = sX,由X Y,可得tY = sY;由X Z,可得tZ = sZ;因?yàn)閠Y = sY,tZ =

18、sZ,所以tYZ = sYZ。所以X YZ成立,合并規(guī)則得證。(2)偽傳遞規(guī)則:若X Y,WYZ,則有XWZ;設(shè)R的任一關(guān)系r中任意的兩個(gè)元組t、s:若tXW = sXW,則有tX = sX,tW = sW; 由X Y,可得tY = sY;因?yàn)閠W = sW,tY=sY ,所以tWY=sWY。由WYZ,可得tZ = sZ;所以XWZ成立,偽傳遞規(guī)則得證。(3)分解規(guī)則:XY,Z Y,有XZ。設(shè)R的任一關(guān)系r中任意的兩個(gè)元組t、s:若tX = sX,由X Y,可得tY = sY;由Z Y,可得tZ = sZ;所以XZ成立,分解規(guī)則得證。假設(shè)有關(guān)系模式R(A, B, C, D, E),回答下面問(wèn)題

19、: (1)若A是R的候選碼,具有函數(shù)依賴(lài)BCDE,那么在什么條件下R是BCNF? 當(dāng)屬性組BC也是關(guān)系模式R的候選碼時(shí),R是BCNF。此時(shí)有:A BC,BC A成立。 (2)如果存在函數(shù)依賴(lài)A B,BC D,DE A,列出R的所有碼。 R的候選碼包括:ACE,BCE,CDE。 (3)如果(2)中的函數(shù)依賴(lài)成立,R屬于3NF還是BCNF? 因?yàn)椴淮嬖趥鬟f函數(shù)依賴(lài),所以R屬于3NF。因?yàn)槊總€(gè)函數(shù)依賴(lài)的決定因素都不包含碼,所以R不屬于BCNF。(1)任何一個(gè)二目關(guān)系是屬于3NF的。(2)任何一個(gè)二目關(guān)系是屬于BCNF的。(3)任何一個(gè)二目關(guān)系是屬于4NF的。(4)當(dāng)且僅當(dāng)函數(shù)依賴(lài)AB在R上成立,關(guān)系

20、R(A, B, C)等于其投影R1(A, B)和R2(A, C)的連接。X(5)若R.AR.B, R.BR.C,則R.AR.C 。(6)若R.AR.B, R.AR.C,則R.AR.(B, C) 。(7)若R.BR.A, R.CR.A,則R.(B, C)R.A。(8)若R.(B, C)R.A,則R.BR.A, R.CR.A。X(1)如果R是BCNF關(guān)系模式,則R是3NF關(guān)系模式,反之則不然。 證明RBCNF,則R3NF(反證法) 假設(shè)RBCNF,但R3NF。根據(jù)3NF的定義,可以得出: R中存在碼X,屬性組Y和非主屬性Z,YX,ZY,使得XY,YZ成立。 YX, Y不是R的候選碼。(R的任一候選

21、碼都能夠完全函數(shù)確定R的每個(gè)屬性) R中存在函數(shù)依賴(lài)YZ,ZY,而Y不包含碼, RBCNF,與已知RBCNF矛盾,故假設(shè)不成立,R3NF。(2)如果R是3NF關(guān)系模式,則R一定是2NF關(guān)系模式。 證明:反證法。 假設(shè)R3NF,但R2NF。根據(jù)2NF的定義,可以得出: R中存在非主屬性Z部分函數(shù)依賴(lài)于候選碼X,即 根據(jù)部分函數(shù)依賴(lài)的定義,R中存在X的真子集X X,使得X Z成立。 R中存在碼X,屬性組X及非主屬性Z, X X,ZX ,使得XX , XZ成立, R3NF,與已知R3NF矛盾,故假設(shè)不成立,R2NF。已知關(guān)系模式R中,U = A, B, C, D, E, G,F(xiàn)=ABC, CA, B

22、CD, ACDB, DEG, BEC, CGBD, CEAG,求屬性組BD關(guān)于函數(shù)依賴(lài)集F的閉包(BD)F+,并判斷BDAC是否屬于F+。 令X(0)=AB; 計(jì)算X(1):逐一掃描F集合中的各個(gè)函數(shù)依賴(lài),找左部為A、B或AB的函數(shù)依賴(lài),得到一個(gè):ABC。于是X(1)=ABC=ABC。 因?yàn)閄(0) X(1),再找出左部為ABC子集的那些函數(shù)依賴(lài),得到:CA, BCD。于是X(2)=ABCAD=ABCD。 因?yàn)閄(1) X(2),再找出左部為ABCD子集的那些函數(shù)依賴(lài),得到: ACDB, DEG。于是X(3)=ABCDBEG=ABCDEG。 因?yàn)閄(3)已等于全部屬性集合U,所以(BD)F+

23、=ABCDEG。 AC (BD)F+, BDAC屬于F+。已知關(guān)系模式R中,U=A, B, C, D, E, F=ABC, DE, CD,R的第一個(gè)分解為:R1(A, B, C),R2(C, D, E),第二個(gè)分解為:R1(A, B),R2(A, C, D, E)。判斷這兩個(gè)分解是否具有無(wú)損連接性。 針對(duì)第一個(gè)分解,構(gòu)造初始表,如下圖所示。 使用ABC:因?yàn)閮蓚€(gè)元組第一列的分量不相同,所以表不改變。 使用DE :因?yàn)閮蓚€(gè)元組第四列的分量不相同,所以表不改變。 由CD,可以把b14改成a4。 再次使用DE :可以把b15改成a5。 表中第一行已經(jīng)全部變成a,所以此分解具有無(wú)損連接性。A AB B

24、C CD DE ER R1 1a1a2a3b14b15R R2 2b21b22a3a4a5a4a5已知關(guān)系模式R中,U=A, B, C, D, E, F=ABC, DE, CD,R的第一個(gè)分解為:R1(A, B, C),R2(C, D, E),第二個(gè)分解為:R1(A, B),R2(A, C, D, E)。判斷這兩個(gè)分解是否具有無(wú)損連接性。 針對(duì)第二個(gè)分解,構(gòu)造初始表,如下圖所示。 由ABC,可以把b22改成a2,把b13改成a3。 表中第二行已經(jīng)全部變成a,所以此分解具有無(wú)損連接性。A AB BC CD DE ER R1 1a1a2b13b14b15R R2 2a1b22a3a4a5a2a3系

25、包含班級(jí)包含學(xué)生包含教研室包含教員選修課程指導(dǎo)學(xué)校中有若干系,每個(gè)系有若干班級(jí)和教研室,每個(gè)教研室有若干教員,其中有的教授和副教授每人各帶若干研究生,每個(gè)班有若干學(xué)生,每個(gè)學(xué)生選修若干課程,每門(mén)課可以由若干學(xué)生選修。請(qǐng)用E-R圖畫(huà)出此學(xué)校的概念模型。1111nnnnnnm1教員學(xué)生選修課程nm教授副教授研究生本科生指導(dǎo)指導(dǎo)系包含班級(jí)包含教研室11nn包含包含1n1n擴(kuò)展的E-R圖11nn產(chǎn)品組成零件存放倉(cāng)庫(kù)制成原材料某工廠生產(chǎn)若干產(chǎn)品,每種產(chǎn)品由不同的零件組成,有的零件可用在不同的產(chǎn)品上。這些零件由不同的原材料制成,不同零件所用的材料可以相同。這些零件按照所屬的不同產(chǎn)品分別放在倉(cāng)庫(kù)中,原材料按

26、照類(lèi)別放在若干倉(cāng)庫(kù)中。請(qǐng)用E-R圖畫(huà)出此工廠產(chǎn)品、零件、材料、倉(cāng)庫(kù)的概念模型。mnnm存放mnm1試把習(xí)題7和習(xí)題8中的E-R圖轉(zhuǎn)換為關(guān)系模型。 習(xí)題7:關(guān)系模式 系(系號(hào),系名,); 班級(jí)(班號(hào),班名,系號(hào),); 教研室(教研室號(hào),教研室名,系號(hào),); 教員(教員號(hào),教員名,職稱(chēng),教研室號(hào),); 研究生(研究生號(hào),研究生名,教員號(hào),); 學(xué)生(學(xué)號(hào),姓名,班號(hào),); 課程(課程號(hào),課程名,先修課,學(xué)分); 選修(學(xué)號(hào),課程號(hào),成績(jī)); 實(shí)體的主碼用下劃線標(biāo)出,實(shí)體的外碼用深紅色字體標(biāo)出。試把習(xí)題7和習(xí)題8中的E-R圖轉(zhuǎn)換為關(guān)系模型。 習(xí)題8:關(guān)系模式 產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名,); 零件(零件號(hào)

27、,零件名,); 組成(產(chǎn)品號(hào),零件號(hào),數(shù)量); 原材料(材料號(hào),材料名,倉(cāng)庫(kù)號(hào)); 制成(零件號(hào),材料號(hào),數(shù)量); 倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),倉(cāng)庫(kù)名,); 零件存放(零件號(hào),倉(cāng)庫(kù)號(hào),數(shù)量); 實(shí)體的主碼用下劃線標(biāo)出,實(shí)體的外碼用深紅色字體標(biāo)出。使用嵌入式SQL對(duì)學(xué)生-課程數(shù)據(jù)庫(kù)中的表完成下述功能: (1)查詢某一門(mén)課程的信息。要查詢的課程由用戶在程序運(yùn)行過(guò)程中指定,放在主變量中。 (2)查詢選修某一門(mén)課程的選課信息,要查詢的課程號(hào)由用戶在程序運(yùn)行過(guò)程中指定,放在主變量中,然后根據(jù)用戶的要求修改其中某些記錄的成績(jī)字段。答案參照“嵌入式SQL.c”文件。對(duì)學(xué)生課程數(shù)據(jù)庫(kù)編寫(xiě)存儲(chǔ)過(guò)程,完成下述功能:(1)統(tǒng)計(jì)離

28、散數(shù)學(xué)的成績(jī)分布情況,即按照各分?jǐn)?shù)段統(tǒng)計(jì)人數(shù)。 CREATE PROCEDURE GradeStatistics(outA INT, outB INT, outC INT, outD INT, outE INT) BEGIN SELECT COUNT(*) INTO outA FROM SC, Course WHERE SC.Cno=Course.Cno AND Cname=離散數(shù)學(xué) AND Grade=90 AND Grade=90 AND Grade=100 END假設(shè)關(guān)系R(A, B)和S(B, C, D)的數(shù)據(jù)分布情況如下:R有20 000個(gè)元組,S有1200個(gè)元組,一個(gè)塊能裝40個(gè)R

29、的元組,能裝30個(gè)S的元組,估算下列操作需要多少次磁盤(pán)塊讀寫(xiě)。(1)R上沒(méi)有索引,SELECT *FROM R;500塊(2)R中A為主碼,A有3層B+樹(shù)索引,SELECT * FROM R WHERE A = 10;3+1=4塊(3)嵌套循環(huán)連接 ;因?yàn)椴恢纼?nèi)存緩沖區(qū)的塊數(shù)K和存放連接結(jié)果的塊因子Mrs,所以此題無(wú)解。對(duì)學(xué)生課程數(shù)據(jù)庫(kù),查詢信息系學(xué)生選修了的所有課程名稱(chēng)。 SELECT Cname FROM Student, Course, SC WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND Student.Sdept = I

30、S試畫(huà)出用關(guān)系代數(shù)表示的語(yǔ)法樹(shù),并用關(guān)系代數(shù)表達(dá)式優(yōu)化算法對(duì)原始的語(yǔ)法樹(shù)進(jìn)行優(yōu)化處理,畫(huà)出優(yōu)化后的標(biāo)準(zhǔn)語(yǔ)法樹(shù)。關(guān)系代數(shù)語(yǔ)法樹(shù)優(yōu)化 選擇與選擇的交換 選擇與笛卡爾積的交換 選擇與選擇的交換 選擇與笛卡爾積的交換關(guān)系代數(shù)語(yǔ)法樹(shù)優(yōu)化 投影與選擇操作的交換 投影與笛卡爾積的分配 投影與選擇操作的交換 投影與笛卡爾積的分配 選擇與笛卡爾積的組合說(shuō)明下列查詢語(yǔ)句的一種較優(yōu)的處理方法 (1)SELECT * FROM Teacher WHERE Tsex=女 最優(yōu)策略:全表掃描 (2)SELECT * FROM Department WHERE Dno301 最優(yōu)策略:全表掃描 (3)SELECT * FR

31、OM Work WHERE Year2000 最優(yōu)策略:全表掃描 (4)SELECT * FROM Work WHERE Year 2000 AND Salary 5000 最優(yōu)策略:利用Year屬性上的B+樹(shù)索引 (5)SELECT * FROM Work WHERE Year 2000 AND Salary 5000 畫(huà)出查詢語(yǔ)法樹(shù)及用關(guān)系代數(shù)表示的語(yǔ)法樹(shù),并對(duì)關(guān)系代數(shù)語(yǔ)法樹(shù)進(jìn)行優(yōu)化,畫(huà)出優(yōu)化后的語(yǔ)法樹(shù)。查詢語(yǔ)法樹(shù)初始的關(guān)系代數(shù)語(yǔ)法樹(shù)優(yōu)化后的關(guān)系代數(shù)語(yǔ)法樹(shù)考慮下圖所示的日志記錄:序號(hào)序號(hào)日志日志序號(hào)序號(hào)日志日志1T1:開(kāi)始8T3:開(kāi)始2T1:寫(xiě)A,A=109T3:寫(xiě)A,A=83T2:開(kāi)始1

32、0T2:回滾4T2:寫(xiě)B(tài),B=911T3:寫(xiě)B(tài),B=75T1:寫(xiě)C,C=1112T4:開(kāi)始6T1:提交13T3:提交7T2:寫(xiě)C,C=1314T4:寫(xiě)C,C=12(1)如果系統(tǒng)故障發(fā)生在14之后,說(shuō)明那些事務(wù)需要重做,那些事務(wù)需要回滾。T1和T3需要重做,T4需要回滾;(2)如果系統(tǒng)故障發(fā)生在10之后呢?T1需要重做,T3需要回滾;(3)如果系統(tǒng)故障發(fā)生在9之后呢?T1需要重做,T2和T3需要回滾;(4)如果系統(tǒng)故障發(fā)生在7之后呢?T1需要重做,T2需要回滾。假設(shè)開(kāi)始時(shí)A、B、C的值都是0;(1)如果系統(tǒng)故障發(fā)生在14之后,寫(xiě)出系統(tǒng)恢復(fù)后A、B、C的值。A = 8,B = 7,C = 11;(2)如果系統(tǒng)故障發(fā)生在12之后呢?A = 10,B = 0,C = 11;(3)如果系統(tǒng)故障發(fā)生在10之后呢?A = 10,B = 0,C = 11;(4)如果系統(tǒng)故障發(fā)生在9之后呢?A = 10,B = 0,C = 11;(5)如果系統(tǒng)故障發(fā)生在7之后呢?A = 10,B = 0,C = 11;(6)如果系統(tǒng)故障發(fā)生在5之后呢?A = 0,B = 0,C = 0。T1SLock AY=A=0Unlock AXLock AA=Y+2寫(xiě)回A(=2)Unlock AT2SLock A等待等待等待Y=A=2Unlock AXLock AA=Y*2寫(xiě)回A(=4)Unlock AT3SLock

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論