數(shù)據(jù)庫習(xí)題作業(yè)【教學(xué)作業(yè)】
《數(shù)據(jù)庫習(xí)題作業(yè)【教學(xué)作業(yè)】》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫習(xí)題作業(yè)【教學(xué)作業(yè)】(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 數(shù)據(jù)庫習(xí)題作業(yè)重點(第2-3-4章) 2.6 設(shè)有關(guān)系R和S: R A B C S A B C 3 6 7 3 4 5 2 5 7 7 2 3 7 2 3 4 4 3 計算R∪S,R-S,R∩S,R×S,π3,2(S),σB<’5’(R),R 2<2 S, R S。 解: R∪S A B C R-S A B C R∩S A B C 3 6 7 3 6 7 7 2 3 2 5 7 2 5 7 7 2 3 4 4 3 4
2、 4 3 3 4 5 R×S R.A R.B R.C S.A S.B S.C π3,2(S) C B 3 6 7 3 4 5 5 4 3 6 7 7 2 3 3 2 2 5 7 3 4 5 2 5 7 7 2 3 7 2 3 3 4 5 7 2 3 7 2 3 4 4 3 3 4 5 4 4 3 7 2 3 2<2 σB<’5’(R) A B C R?S R.A R.B R.C S.A
3、S.B S.C
7 2 3 7 2 3 3 4 5
4 4 3
R?S A B C
7 2 3
2.7 設(shè)有關(guān)系R和S:
R A B S B C
a b b c
c b e a
d e b d
B 4、 σF(U)×V (F為某個條件)
⑸ πL(U)-V (其中L為某屬性集)
解:
操作
最小元組數(shù)
最大元組數(shù)
⑴ U∩V
0
min(m,n)
⑵ U∪V
max(m,n)
m+n
⑶ U?V
0
m×n
⑷σF(U)×V
0
m×n
⑸πL(U)-V
0
m
2.17 設(shè)有三個關(guān)系:
T(T#,TNMAE,TITLE)
C(C#,CNAME,T#)
S(S#,SNAME,AGE,SEX)
SC(S#,C#,SCORE)
試用關(guān)系代數(shù)表達(dá)式表示下列查詢語句:
① 檢索年齡小于17歲的女學(xué)生的學(xué)號和姓名。
② 5、檢索男學(xué)生所學(xué)課程的課程號和課程名。
③ 檢索男學(xué)生所學(xué)課程的任課教師的工號和姓名。
④ 檢索至少選修兩門課的學(xué)生學(xué)號。
⑤ 檢索至少有學(xué)號為S2和S4學(xué)生選修的課程的課程號。
⑥ 檢索WANG同學(xué)不學(xué)的課程的課程號。
⑦ 檢索全部學(xué)生都選修的課程的課程號與課程名。
⑧ 檢索選修課程包含LIU老師所授全部課程的學(xué)生學(xué)號。
解:⑴ πS#,SNAME(σAGE<’17’ ∧SEX=’F’(S))
⑵ Πc#,CNAME(σSEX='M'(S?SC?C))
⑶ ΠT#,TNAME(σSEX='M'(S?SC?C?T))
⑷ π1(σ1=4 ∧ 2≠5(SC×SC))
⑸ π2 6、(σ1=’S2’ ∧4=’S4’∧ 2=5(SC×SC))
⑹ πC#(C)-πC#(σSNAME='WANG'(S?SC))
⑺ πC#,CNAME(C?(πS#,C#(SC)÷πS#(S)))
⑻ πS#,C#(SC)÷πC#(σTNAME='LIU'(C?T))
2.21 在教學(xué)數(shù)據(jù)庫的關(guān)系S、SC、C、T中,用戶有一查詢語句:檢索女同學(xué)選修課程的課程名和任課教師名。
① 試寫出該查詢的關(guān)系代數(shù)表達(dá)式。
② 畫出查詢表達(dá)式的語法樹。
③ 使用啟發(fā)式優(yōu)化算法,對語法樹進(jìn)行優(yōu)化,并畫出優(yōu)化后的語法樹。
解:
【3.2】設(shè)教學(xué)數(shù)據(jù)庫中有4個關(guān) 7、系:
教師關(guān)系 T(T#,TNAME,TITLE)
課程關(guān)系C(C#,CNAME,T#)
學(xué)生關(guān)系S(S#,SNAME,AGE,SEX)
選課關(guān)系 SC(S#,C#,SCORE)
試用SQL查詢語句表示下列查詢。
解:
①檢索年齡小于17歲的女學(xué)生的學(xué)號和姓名。
SELECT S#.SNAME
FROM S
WHERE AGE<17 AND SEX=’F’
②檢索男學(xué)生所學(xué)課程的課程號和課程名。
SELECT C.C#,CNAME (連接查詢方式)
FROM S,SC,C
WHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX=’M’;
8、③檢索男學(xué)生所學(xué)課程的任課老師的工號和姓名。
SELECT T.T#, TNAME
FROM S,SC,C,T
WHERE S.S#=SC.S# AND SC.C#=C.C# AND C.T#=T.T# AND SEX=’M’;
④檢索至少選修兩門課程的學(xué)生學(xué)號。
SELECT DISTINCT X.S#
FROM SC AS X, SC AS Y
WHERE X.S#=Y.S# AND X.C#!=Y.C#;
⑤檢索至少有學(xué)號為S2和S4的學(xué)生選修的課程的課程號。
SELECT DISTINCT X.C#
FROM SC AS X, SC AS Y
WHERE X. 9、S#=’S2’ AND Y.S#=’S4’ AND X.C#=Y.C#;
⑥檢索WANG同學(xué)不學(xué)的課程的課程號。
SELECT C#
FROM C
WHERE NOT EXISTS
(SELECT *
FROM S, SC
WHERE S.S#=SC.S# AND SC.C#=C.C# AND SNAME=’WANG’);
⑦檢索全部學(xué)生都選修的課程的課程號與課程名。
SELECT C#,CNAME
FROM C
WHERE NOT EXISTS
(SELECT *
FROM S
WHERE NOT EXISTS
(SELECT *
FROM SC
WHER 10、E S#=S.S# AND C#=C.C#));
⑧檢索選修課程包含LIU老師所授全部課程的學(xué)生學(xué)號。
法一:
SELECT DISTINCT S#
FROM SC AS X
WHERE NOT EXISTS
(SELECT *
FROM C,T
WHERE C.T#=T.T# AND TNAME=’LIU’
AND NOT EXISTS
(SELECT{
FROM SC AS Y
WHERE Y.S#=X.S# AND Y.C#=C.C#));
法二:
SELECT DISTINCT S#
FROM SC X
WHERE NOT EXISTS
((SELEC 11、T C# FROM C,T
WHERE C.T#=T.T# AND TNAME='LIU’)
EXCEPT
(SELECT C# FROM SC Y WHERE Y.S#=X.S#));
【3.7】試用SQL查詢語句表達(dá)下列對第3.2題中4個基本表T、C、S、SC的查詢。
①統(tǒng)計有學(xué)生選修的課程門數(shù)。
SELECT COUNT(DISTINCT C#) FROM SC;
②求選修C4課程的女學(xué)生的平均年齡。
SELECT AVG(AGE)
FROM S,SC
WHERE S.S#=SC.S# AND C#=’C4’ AND SEX=’F’:
③求LIU老師所授的每門 12、課程的平均成績。
SELECT C.C#.AVG(SCORE)
FROM SC,C,T
WHERE SC.C#=C.C# AND C.T#=T.T# AND TNAME=’LIU’
GROUP BY C.C#;
④統(tǒng)計選修每門課程的學(xué)生人數(shù)(超過l0人的課程才統(tǒng)計)。要求顯示課程號和人數(shù),查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,則按課程號升序排列。
SELECT C#.COUNT(S#)
FROM SC
GROUP BY C#
HAVING COUNT(*)>10
ORDER BY 2 DESC,1;
⑤檢索學(xué)號比WANG同學(xué)大,而年齡比他小的學(xué)生姓名。
SELECT SN 13、AME
FROM S
WHERE S#>ALL(SELECT S# FROM S
WHERE SNAME=’WANG’)
AND AGE 14、AME, AGE
FROM S
WHERE SEX=’M’
AND AGE>(SELECT AVG(AGE)
FROM S
WHERE SEX=’F’);
⑨求年齡大于所有女同學(xué)年齡的男學(xué)生的姓名和年齡。
SELECT SNAME, AGE
FROM S
WHERE SEX=‘M’
AND AGE>ALL(SELECT AGE
FROM S
WHERE SEX=’F’);
【3.12】
解:
①INSERT INTO C
VALUES(‘C8’,’VC++’,’T6’);
②
法一:
INSERT INTO FACULTY(TNAME)
SE 15、LECT DISTINCT TNAME
FROM (SELECT TNAME,C.C#,AVG(SCORE)
FROM T, C, SC
WHERE T.T#=C.T# AND C.C#=SC.C#
GROUP BY TNAME,C.C#)
AS RESULT(TNAME,C#,AVG—SCORE) AS X
WHERE 80<=ALL(SELECT AVG—SCORE
FROM RESULT AS Y
WHERE Y.TNAME=X.TNAME);
16、法二
INSERT INTO FACULTY(TNAME)
SELECT DISTINCT TNAME
FROM T, C, SC
WHERE C.C#=SC.C# AND T.T#=C.T#
AND T# NOT IN (SELECT T# FROM C
WHERE C# IN
(SELECT C# FROM SC
GROUP BY C# HAVING AVG(SCORE)<=80)
)
③DELETE FROM SC WHERE SCORE IS NULL;
④DELETE FROM SC
WHERE S# IN(SELECT S# FROM S W 17、HERE SEX=’F’)
AND C# IN(SELECT C# FROM C, T WHERE C.T#=T.T# AND TNAME=’LIU’);
⑤UPDATE SC
SET SCORE=60
WHERE SCORE<60
AND C# IN(SELECT C#FROM C WHERE CNAME=’MATHS’);
⑥UPDATE SC
SET SCORE=SCORE * 1.05
WHERE S # IN(SELECT S# FROM S WHERE SEX='F’)
AND SCORE<(SELECT AVG(SCORE) FROM 18、 SC);
⑦用兩個UPDATE語句實現(xiàn):
UPDATE SC
SET SCORE=SCORE * 1.04
WHERE C#=’C4’AND SCORE>70;
UPDATE SC
SET SCORE=SCORE * 1.05
WHERE C#=’C4’AND SCORE<=70;
這兩個UPDATE語句的順序不能顛倒。
用一個UPDATE語句實現(xiàn):
UPDATE SC
SET SCORE=SCORE * CASE
WHEN SCORE>70 THEN 1.04
ELSE l.05
END
WHERE C#=’C4’;
⑧UPDATE SC
SET 19、SCORE=SCORE * 1.05
WHERE SCORE<(SELECT AVG(SCORE)
FROM SC);
【3.13】設(shè)數(shù)據(jù)庫中有3個關(guān)系:
職工表 EMP(E#,ENAME,AGE,SEX,ECITY),其屬性分別表示職工工號、姓名、年齡、性別和籍貫。
工作表 WORKS(E#,C#,SALARY),其屬性分別表示職工工號、工作的公司編號和工資。
公司表 COMP(C#,CNAME,CITY),其屬性分別表示公司編號、公司名稱和公司所在城市。
試用SQL語句寫出下列操作:
①用CREATE TABLE語句創(chuàng)建上述3個表,需指出主鍵和外鍵。
② 20、檢索超過50歲的男職工的工號和姓名。
③假設(shè)每個職工只能在一個公司工作,檢索工資超過1 000元的男性職工工號和姓名。
④假設(shè)每個職工可在多個公司工作,檢索至少在編號為C4和C8的公司兼職的職工工號
和姓名。
⑤檢索在聯(lián)華公司工作、工資超過1 000元的男性職工的工號和姓名。
⑥假設(shè)每個職工可在多個公司工作,檢索每個職工的兼職公司數(shù)目和工資總數(shù),顯示
(E#,NUM,SUM_SALARY),分別表示工號、公司數(shù)目和工資總數(shù)。
⑦工號為E6的職工在多個公司工作,試檢索至少在E6職工兼職的所有公司工作的職工
工號。
⑧檢索聯(lián)華公司中低于本公司平均工資的職工工號和姓名。
⑨在每一 21、公司中為50歲以上的職工加薪100元(若職工為多個公司工作,可重復(fù)加)。
⑩在EMP表和WORKS表中刪除年齡大于60歲的職工有關(guān)元組。
解:
①CREATE TABLE EMP
(E# CHAR(4) NOT NULL,
ENAME CHAR(8) NOT NULL,
AGE SMALLINT,
SEX CHAR(1),
ECITY CHAR(20),
PRIMARY KEY(E#));
CREATE TABLE COMP
(C# CHAR(4) NOT NULL,
CNAME CHAR(20) NOT NULL,
CITY CHAR(2 22、0),
PRIMARY KEY(C#));
CREATE TABLE WORKS
(E# CHAR(4) NOT NULL,
C# CHAR(4) NOT NULL,
SALARY SMALLINT,
PRIMARY KEY(E#,C#),
FOREIGN KEY(E#) REFERENCES EMP(E#),
FOREIGN KEY(C#) REFERENCES COMP(C#));
②(SELECT E#,ENAME
FROM EMP
WHERE AGE>50 AND SEX=’M’;
③SELECT EMP.E#,ENAME
FROM EMP, WORK 23、S
WHERE EMP.E#=WORKS.E# AND SALARY>1000 AND SEX=’M’;
④SELECT A.E#,A.ENAME
FROM EMP A,WORKS B,WORKS C
WHERE A.E#=B.E# AND B.E#=C.E#
AND B.C#=’C4’ AND C.C#=’C8’;
⑤SELECT A.E#,A.ENAME
FROM EMP A,WORKS B,COMP C
WHERE A.E#=B.E# AND B.C#=C.#
AND CNAME=’聯(lián)華公司’ AND SALARY>1000 AND SEX='M’;
⑥SELECT 24、E#,COUNT(C#) AS NUM,SUM(SALARY) AS SUM_SALARY
FROM WORKS
GROUP BY E#;
⑦SELECT X.E#
FROM WORKS X
WHERE NOT EXISTS
(SELECT *
FROM WORKS Y
WHERE E#=’E6’
AND NOT EXISTS
(SELECT *
FROM WORKS Z
WHERE Z.E#=X.E# AND Z.C#=Y.C#));
⑧SELECT A.E#,A.ENAME
FROM EMP A,WORKS B,COMP C
WHERE A.E#=B.E# A 25、ND B.C#=C.C# AND CNAME=’聯(lián)華公司’
AND SALARY<(SELECT AVG(SALARY)
FROM WORKS.COMP C
WHERE WORK S.C#=COMP.C# AND CNAME=’聯(lián)華公司’);
⑨UPDATE WORKS
SET SALARY=SALARY+100
WHERE E# IN(SELECT E# FROM EMP WHERE AGE>50);
⑩DELETE FROM WORKS
WHERE E# IN (SELECT E# FROM EMP WHERE AGE>60);
DELETE FROM EMP
WHER 26、E AGE>60;
4.8 設(shè)關(guān)系模式R(ABCD),F(xiàn)是R上成立的FD集,F(xiàn)={ A→B,C→B },則相對于F,試寫出關(guān)系模式R的關(guān)鍵碼。并說明理由。
解:R的關(guān)鍵碼為ACD。因為從已知的F,只能推出ACD→ABCD。
4.9 設(shè)關(guān)系模式R(ABCDE)上FD集為F,并且F={AB→C,CD→E,DE→B},試判斷AB是R的候選鍵嗎?ABD呢?請做出解釋。
解:①從已知的F,可推出AB→ABC,但不能推出AB→ABCDE,因此不是。
② 從已知的F,可推出ABD→ABCD,ABD→ABCDE,因此是的。
4.13 設(shè)關(guān)系模式R(ABCD),F(xiàn)是R上成立的FD 27、集,F(xiàn)={A→B,B→C},
① 試寫出屬性集BD的閉包(BD)+。
② 試寫出所有左部是B的函數(shù)依賴(即形為“B→?”)。
解:①從已知的F,可推出BD→BCD,所以(BD)+=BCD。
②由于B+=BC,因此左部是B的FD有四個:
B→φ,B→B,B→C,B→BC。
4.14 設(shè)關(guān)系模式R(ABCDE)上FD集為F,并且F={A→BC,CD→E,B→D,E→A}。
① 試求R的候選鍵。
② 試求B+的值。
解:① R的候選鍵有四個:A、E、CD和BC。
② B+=BD。
4.26 設(shè)關(guān)系模式R(ABCD),F(xiàn)是R上成立的FD集,F(xiàn)={ AB→CD,A→D }。 28、
① 試說明R不是2NF模式的理由。
② 試把R分解成2NF模式集。
答:①從已知FD集F,可知R的候選鍵是AB。
另外,AB→D是一個局部依賴,因此R不是2NF模式。
②此時R應(yīng)分解成ρ={ AD,ABC },ρ是2NF模式集。
4.27 設(shè)關(guān)系模式R(ABC),F(xiàn)是R上成立的FD集,F(xiàn)={ C→B,B→A }。
① 試說明R不是3NF模式的理由。
② 試把R分解成3NF模式集。
答:①從已知FD集F,可知R的候選鍵是C。
從C→B和B→A,可知C→A是一個傳遞依賴,因此R不是3NF模式。
②此時R應(yīng)分解成ρ={ CB,BA },ρ是3NF模式集。
第1章:
o 作業(yè):P37
o 1.3, 1.4,1.5, 1.6, 1.12, 1.17 ,1.27
第5章
o 作業(yè):
o 5.2, 5.5,5.6,5.8, 5.13, 5.14, 5.15
第7章
n 作業(yè):
n 7.2,7.3, 7.4,7.8,7.16,7.17
復(fù)習(xí)范圍
1.2.2、1.2.3、1.3-1.6、1.7
2.1、2.2、2.4、2.6
3.2、3.3、3.5、3.8
4.2、4.4、4.6
5.1、5.2、5.3、5.4
7.1、7.2、7.3、7.5、7.6
12
教育專業(yè)b
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國人民警察節(jié)(筑牢忠誠警魂感受別樣警彩)
- 2025正字當(dāng)頭廉字入心爭當(dāng)公安隊伍鐵軍
- XX國企干部警示教育片觀后感筑牢信仰之基堅守廉潔底線
- 2025做擔(dān)當(dāng)時代大任的中國青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會圍繞六個干字提要求
- XX地區(qū)中小學(xué)期末考試經(jīng)驗總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 支部書記上黨課筑牢清廉信念為高質(zhì)量發(fā)展?fàn)I造風(fēng)清氣正的環(huán)境
- 冬季消防安全知識培訓(xùn)冬季用電防火安全
- 2025加強政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓(xùn)直播技巧與方法
- 2025六廉六進(jìn)持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學(xué)期末考試經(jīng)驗總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 幼兒園期末家長會長長的路慢慢地走