《關(guān)系代數(shù)例題講解》由會(huì)員分享,可在線閱讀,更多相關(guān)《關(guān)系代數(shù)例題講解(44頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、關(guān)系代數(shù)習(xí)題課,現(xiàn)有如下關(guān)系:職工(職工號(hào),姓名,性別,職務(wù),家庭地址,部門(mén)編號(hào))部門(mén)(部門(mén)編號(hào),部門(mén)名稱(chēng),地址,電話)保健(保健卡編號(hào),職工號(hào),檢查身體日期,健康狀況)1.用關(guān)系代數(shù)表達(dá)式寫(xiě)出,查找所有女科長(zhǎng)的姓名和家庭地址;2.用關(guān)系代數(shù)表達(dá)式寫(xiě)出,查找“辦公室”的科長(zhǎng)姓名和家庭地址;3.用關(guān)系代數(shù)表達(dá)式寫(xiě)出,查找“財(cái)務(wù)科”中健康狀況為“良好”的職工姓名和家庭地址。,1.用關(guān)系代數(shù)表達(dá)式寫(xiě)出,查找所有女科長(zhǎng)的姓名和家庭地址;姓名,家庭地址(職務(wù)=科長(zhǎng)性別=女(職工)2.用關(guān)系代數(shù)表達(dá)式寫(xiě)出,查找“辦公室”的科長(zhǎng)姓名和家庭地址;姓名,家庭地址(部門(mén)名稱(chēng)=辦公室(部門(mén))職務(wù)=科長(zhǎng)(職工)3.用
2、關(guān)系代數(shù)表達(dá)式寫(xiě)出,查找“財(cái)務(wù)科”中健康狀況為“良好”的職工姓名和家庭地址。姓名,家庭地址(職工健康狀況=良好(保?。┎块T(mén)名稱(chēng)=財(cái)務(wù)(部門(mén)),S(SNO,SNAME,AGE,SEX,SDEPT)SC(SNO,CNO,GRADE)C(CNO,CNAME,CDEPT,TNAME),有如下關(guān)系表,LIU老師所教授課程的課程號(hào),課程名2.檢索年齡大于23歲的男學(xué)生的學(xué)號(hào)和姓名3.檢索學(xué)號(hào)為S3學(xué)生所學(xué)課程的課程名與任課老師名4.檢索至少選修LIU老師所教授課程中一門(mén)課的女學(xué)生姓名,LIU老師所教授課程的課程號(hào),課程名CNO,CNAME(TNAME=LIU(C)2.檢索年齡大于23歲的男學(xué)生的學(xué)號(hào)和姓名
3、SNO,SNAME(AGE23SEX=M(S)3.檢索學(xué)號(hào)為S3學(xué)生所學(xué)課程的課程名與任課老師名CNAME,TNAME(SNO=S3(SC)(C))4.檢索至少選修LIU老師所教授課程中一門(mén)課的女學(xué)生姓名SNAME(SEX=F(S)SCTNAME=LIU(C),檢索wang同學(xué)不學(xué)課程的課程號(hào)6.檢索至少選修兩門(mén)課的學(xué)生學(xué)號(hào)7.檢索全部學(xué)生都選修的課程的課程號(hào)和課程名檢索選修課程包含LIU老師所教授課程的學(xué)生學(xué)號(hào),檢索wang同學(xué)不學(xué)課程的課程號(hào)CNO(C)-CNO(SNAME=WANG(S)SC)6.檢索至少選修兩門(mén)課的學(xué)生學(xué)號(hào)1(1=42!=5(SCSC)7.檢索全部學(xué)生都選修的課程的課程
4、號(hào)和課程名CNO,CNAME,SNO(CSC)SNO(S)檢索選修課程包含LIU老師所教授課程的學(xué)生學(xué)號(hào)CNO,SNO(SC)CNO(TNAME=LIU(C),設(shè)有一個(gè)SPJ數(shù)據(jù)庫(kù),包括S,P,J,SPJ四個(gè)關(guān)系模式S(SNO,SNAME,STATUS,CITY)供應(yīng)商編號(hào)、名稱(chēng)、狀態(tài)、所在城市P(PNO,PNAME,COLOR,WEIGHT)零件編號(hào)、名稱(chēng)、顏色、重量J(JNO,JNAME,CITY)工程項(xiàng)目編號(hào)、名稱(chēng)、所在城市SPJ(SNO,PNO,JNO,QTY)供應(yīng)商編號(hào)、零件編號(hào)、項(xiàng)目編號(hào)、供應(yīng)數(shù)量(某供應(yīng)商供應(yīng)某種零件給某工程項(xiàng)目的數(shù)量),要求用關(guān)系代數(shù),供應(yīng)工程J1零件的供應(yīng)商號(hào)
5、碼SNO供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)碼SNO沒(méi)有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào),關(guān)系代數(shù),SNO(JNO=J1(SPJ)SNO(JNO=J1PNO=P1(SPJ)SNO(JNO=J1(SPJ)(Color=紅(P)JNO(J)-JNO(CITY=天津(S)SPJ(Color=紅(P)JNO,PNO(SPJ)PNO(SNO=S1(SPJ),設(shè)數(shù)據(jù)庫(kù)中有兩個(gè)基本表:職工表EMP(E#,ENAME,AGE,SALARY,D#),其屬性分別表示職工工號(hào)、姓名、年齡、工資和工作部門(mén)的編號(hào)。部門(mén)表DEPT(D#
6、,DNAME,MGR#),其屬性分別表示部門(mén)編號(hào)、部門(mén)名稱(chēng)和部門(mén)經(jīng)理的職工工號(hào)。試指出每個(gè)表的主鍵和外鍵。在上面兩個(gè)基本表中,寫(xiě)出下列查詢的關(guān)系代數(shù)表達(dá)式:檢索每個(gè)部門(mén)經(jīng)理的工資,要求顯示其部門(mén)編號(hào)、部門(mén)名稱(chēng)、經(jīng)理工號(hào)、經(jīng)理姓名和經(jīng)理工資,設(shè)數(shù)據(jù)庫(kù)中有兩個(gè)基本表:職工表EMP(E#,ENAME,AGE,SALARY,D#),其屬性分別表示職工工號(hào)、姓名、年齡、工資和工作部門(mén)的編號(hào)。部門(mén)表DEPT(D#,DNAME,MGR#),其屬性分別表示部門(mén)編號(hào)、部門(mén)名稱(chēng)和部門(mén)經(jīng)理的職工工號(hào)。試指出每個(gè)表的主鍵和外鍵。在上面兩個(gè)基本表中,寫(xiě)出下列查詢的關(guān)系代數(shù)表達(dá)式:檢索每個(gè)部門(mén)經(jīng)理的工資,要求顯示其部門(mén)編
7、號(hào)、部門(mén)名稱(chēng)、經(jīng)理工號(hào)、經(jīng)理姓名和經(jīng)理工資D#,DNAME,MGR#,ENAME,SALARY(E#=MGR#(部門(mén)職工),設(shè)某商業(yè)集團(tuán)為倉(cāng)庫(kù)存儲(chǔ)商品設(shè)計(jì)了三個(gè)基本表:倉(cāng)庫(kù):STORE(S#,SNAME,SADDR),其屬性是倉(cāng)庫(kù)編號(hào)、倉(cāng)庫(kù)名稱(chēng)和地址。存儲(chǔ):SG(S#,G#,QUANTITY),其屬性是倉(cāng)庫(kù)編號(hào)、商品編號(hào)和數(shù)量。商品:GOODS(G#,GNAME,PRICE),其屬性是商品編號(hào)、商品名稱(chēng)和單價(jià)現(xiàn)檢索倉(cāng)庫(kù)名稱(chēng)為“莘莊”的倉(cāng)庫(kù)里存儲(chǔ)的商品的編號(hào)和名稱(chēng)。試寫(xiě)出相應(yīng)的關(guān)系代數(shù)表達(dá)式,設(shè)某商業(yè)集團(tuán)為倉(cāng)庫(kù)存儲(chǔ)商品設(shè)計(jì)了三個(gè)基本表:倉(cāng)庫(kù):STORE(S#,SNAME,SADDR),其屬性是倉(cāng)
8、庫(kù)編號(hào)、倉(cāng)庫(kù)名稱(chēng)和地址。存儲(chǔ):SG(S#,G#,QUANTITY),其屬性是倉(cāng)庫(kù)編號(hào)、商品編號(hào)和數(shù)量。商品:GOODS(G#,GNAME,PRICE),其屬性是商品編號(hào)、商品名稱(chēng)和單價(jià)現(xiàn)檢索倉(cāng)庫(kù)名稱(chēng)為“莘莊”的倉(cāng)庫(kù)里存儲(chǔ)的商品的編號(hào)和名稱(chēng)。試寫(xiě)出相應(yīng)的關(guān)系代數(shù)表達(dá)式G#,GNAME(GoodsSGSNAME=莘莊(Store),已知:一組關(guān)系模式:部門(mén)(部門(mén)號(hào),部門(mén)名稱(chēng),電話號(hào)碼)職工(職工號(hào),姓名,性別,職務(wù),部門(mén)號(hào))工程(項(xiàng)目號(hào),項(xiàng)目名稱(chēng),經(jīng)費(fèi)預(yù)算)施工(職工號(hào),項(xiàng)目號(hào),工時(shí))工資級(jí)別(職務(wù),小時(shí)工資率)根據(jù)這組關(guān)系模式回答:1用關(guān)系代數(shù)表達(dá)式寫(xiě)出職務(wù)為“工程師”的姓名和部門(mén)名稱(chēng)。2用關(guān)系
9、代數(shù)表達(dá)式寫(xiě)出姓名為“潘小光”的職工所在的部門(mén)名稱(chēng)和電話號(hào)碼。,1用關(guān)系代數(shù)表達(dá)式寫(xiě)出職務(wù)為“工程師”的姓名和部門(mén)名稱(chēng)。姓名,部門(mén)名稱(chēng)(部門(mén)職務(wù)=工程師(職工)2.用關(guān)系代數(shù)表達(dá)式寫(xiě)出姓名為“潘小光”的職工所在的部門(mén)名稱(chēng)和電話號(hào)碼。部門(mén)名稱(chēng),電話(部門(mén)姓名=潘小光(職工),例設(shè)教學(xué)數(shù)據(jù)庫(kù)中有3個(gè)關(guān)系:學(xué)生關(guān)系S(SNO,SNAME,AGE,SEX)學(xué)習(xí)關(guān)系SC(SNO,CNO,GRADE)課程關(guān)系C(CNO,CNAME,TEACHER)下面用關(guān)系代數(shù)表達(dá)式表達(dá)每個(gè)查詢語(yǔ)句。,(1)檢索學(xué)習(xí)課程號(hào)為C2的學(xué)生學(xué)號(hào)與成績(jī)。,(1)檢索學(xué)習(xí)課程號(hào)為C2的學(xué)生學(xué)號(hào)與成績(jī)。SNO,GRADE(CNO=C
10、2(SC),(2)檢索學(xué)習(xí)課程號(hào)為C2的學(xué)生學(xué)號(hào)與姓名,(2)檢索學(xué)習(xí)課程號(hào)為C2的學(xué)生學(xué)號(hào)與姓名SNO,SNAME(CNO=C2(SSC)由于這個(gè)查詢涉及到兩個(gè)關(guān)系S和SC,因此先對(duì)這兩個(gè)關(guān)系進(jìn)行自然連接,同一位學(xué)生的有關(guān)的信息,然后再執(zhí)行選擇投影操作。此查詢亦可等價(jià)地寫(xiě)成:SNO,SNAME(S)(SNO(CNO=C2(SC))這個(gè)表達(dá)式中自然連接的右分量為學(xué)了C2課的學(xué)生學(xué)號(hào)的集合。這個(gè)表達(dá)式比前一個(gè)表達(dá)式優(yōu)化,執(zhí)行起來(lái)要省時(shí)間,省空間。,(3)檢索選修課程名為MATHS的學(xué)生學(xué)號(hào)與姓名。,(3)檢索選修課程名為MATHS的學(xué)生學(xué)號(hào)與姓名。SNO,SANME(CNAME=MATHS(SS
11、CC),(4)檢索選修課程號(hào)為C2或C4的學(xué)生學(xué)號(hào)。,(4)檢索選修課程號(hào)為C2或C4的學(xué)生學(xué)號(hào)。SNO(CNO=C2CNO=C4(SC),(5)檢索至少選修課程號(hào)為C2和C4的學(xué)生學(xué)號(hào)。,(5)檢索至少選修課程號(hào)為C2和C4的學(xué)生學(xué)號(hào)。1(1=42=C25=C4(SCSC))這里(SCSC)表示關(guān)系SC自身相乘的乘積操作,其中數(shù)字1,2,4,5都為它的結(jié)果關(guān)系中的屬性序號(hào)。比較這一題與上一題的差別。,(6)檢索不學(xué)C2課的學(xué)生姓名與年齡。,(6)檢索不學(xué)C2課的學(xué)生姓名與年齡。SNAME,AGE(S)SNAME,AGE(CNO=C2(SSC))這個(gè)表達(dá)式用了差運(yùn)算,差運(yùn)算的左分量為全體學(xué)生的
12、姓名和年齡,右分量為學(xué)了C2課的學(xué)生姓名與年齡。,(7)檢索學(xué)習(xí)全部課程的學(xué)生姓名。,(7)檢索學(xué)習(xí)全部課程的學(xué)生姓名。編寫(xiě)這個(gè)查詢語(yǔ)句的關(guān)系代數(shù)過(guò)程如下:(a)學(xué)生選課情況可用SNO,CNO(SC)表示;(b)全部課程可用CNO(C)表示;,(c)學(xué)了全部課程的學(xué)生學(xué)號(hào)可用除法操作表示。操作結(jié)果為學(xué)號(hào)SNO的集合,該集合中每個(gè)學(xué)生(對(duì)應(yīng)SNO)與C中任一門(mén)課程號(hào)CNO配在一起都在SCO,CNO(SC)中出現(xiàn)(即SC中出現(xiàn)),所以結(jié)果中每個(gè)學(xué)生都學(xué)了全部的課程(這是除法操作的含義):SNO,CNO(SC)CNO(C),(d)從SNO求學(xué)生姓名SNAME,可以用自然連結(jié)和投影操作組合而成:SNA
13、ME(S(SNO,CNO(SC)CNO(C)這就是最后得到的關(guān)系代數(shù)表達(dá)式。,(8)檢索所學(xué)課程包含S3所學(xué)課程的學(xué)生學(xué)號(hào)。注意:學(xué)生S3可能學(xué)多門(mén)課程,所以要用到除法操作來(lái)表達(dá)此查詢語(yǔ)句。,學(xué)生選課情況可用操作SNO,CNO(SC)表示;所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號(hào),可以用除法操作求得:SNO,CNO(SC)CNO(SNO=S3(SC),設(shè)有一個(gè)教學(xué)數(shù)據(jù)庫(kù),包括以下三個(gè)關(guān)系模式:學(xué)生S(Sno,Sname,Ssex,Sage,Sdept)課程C(Cno,Cname,Cpno,Ccredit)學(xué)習(xí)SC(Sno,Cno,Grade)學(xué)生關(guān)系模式屬性分別對(duì)應(yīng)學(xué)號(hào)、姓名、性別、年齡、所在院
14、系課程關(guān)系模式屬性分別對(duì)應(yīng)課程號(hào)、課程名、先行課、學(xué)分學(xué)習(xí)關(guān)系模式分別對(duì)應(yīng)學(xué)號(hào)、課程號(hào)、成績(jī),1、查詢學(xué)生95001的姓名和所在系。Sname,Sdept(Sno=95001(S),2、查詢至少選修了兩門(mén)課程的學(xué)生學(xué)號(hào)。Sno(1=425(SCSC),3、查詢選修了1號(hào)課程的學(xué)生姓名。Sname(Cno=1(SSC),4、查詢沒(méi)有選修數(shù)據(jù)庫(kù)課程的學(xué)生姓名。Sname(S)-Sname(Cname=數(shù)據(jù)庫(kù)(SSCC),5、查詢至少選修了1號(hào)課程和3號(hào)課程的學(xué)生學(xué)號(hào)。Sno,Cno(SC)Cno(Cno=1Cno=3(C),考慮如下所定義的學(xué)生-教師-課程信息數(shù)據(jù)庫(kù)(其中加下劃線的是主碼),試完成下列各小題:Student(Sno,Sname,Sage,Ssex,Class)(學(xué)生信息表)Teacher(Tno,Tname,Tsex,Tage,Tprof,Tdept)(教師信息表)Course(Cno,Cname,Tno)(課程信息表)SC(Sno,Cno,Grade)(選課表),試用關(guān)系代數(shù)表示下列查詢語(yǔ)句:(1)查詢年齡不大于22歲的女學(xué)生的姓名和學(xué)號(hào);(2)查詢選修了“李軍”老師所授的課程名為“數(shù)據(jù)庫(kù)”的學(xué)生學(xué)號(hào)和姓名;(3)查詢至少選修了教師編號(hào)(Tno)為826的老師所授全部課程的學(xué)生學(xué)號(hào)。,