您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据结构与算法 > 《数据库原理及应用》第2章部分习题解答
★关系演算补充内容*把谓词演算应用于到关系运算中就是关系演算,它分为元组关系演算与域关系演算。*谓词演算1)个体是可以独立存在的物体2)谓词是用于刻划个体性质或关系3)一个谓词可以与一个个体相联,此种谓词称为一元谓词,一元谓词刻划一个个体的性质。4)a,b,...表示个体,一个一元谓词可表示为F(a)一个谓词中个体是可以变化的,如“...是大学生”,可以是“王强是大学生”,也可以变为“李华是大学生”,令F(x)表示x是大学生,又令“王强”为a,“李华”为b,则“王强是大学生,李华也是大学生”可写为F(a)∧F(b)*现谓词演算用于关系,元组为个体,关系为个体域,则R(u)即表示u是关系R中的元组*元组关系演算表达式{t|φ(t)},表示所有使φ为真的元组集合,即描述了一个关系。P6910、设有学生-课程关系数据库,它由三个关系组成,它们的模式是:学生S(学号S#,姓名SN,所在系SD,年龄SA)、课程C(课程号C#,课程名CN,先修课号PC#)、SC(学号S#,课程号C#,成绩G)。请用关系代数与ALPHA语言分别写出下列查询:(1)检索学生的所有情况。SSSCC(2)检索学生年龄大于等于20岁的学生姓名。πSN(σSA=20(S))(3)检索先修课号为C2的课程号。πC#(σPC#=’C2’(C))(4)检索课程号C1的成绩为A的所有学生姓名。πSN(σC#=’C1’∧G=’A’(SCC))(5)检索S1修读的所有课程名及先修课号。πCN,PC#(σS#=’S1’(SCS))(6)检索年龄为23岁的学生所修读的课程名。πCN(σSA=23(SSCC))(7)检索至少修读了S5修读的一门课的学生的姓名。πSN(SSCπC#(σS#=’S5’(SC)))(8)检索修读了S4所修读的所有课程的学生的姓名。πSN(S(πS#,C#(SC)÷πC#(σS#=’S4’(SC))))(9)检索选修所有课程的学生的学号。πS#,C#(SC)÷πC#(C)(10)检索不选修任何课程的学生的学号。πS#(S)-πS#(SC)设有学生-课程关系数据库,它由三个关系组成,它们的模式是:学生S(学号S#,姓名SN,所在系SD,年龄SA)、课程C(课程号C#,课程名CN,先修课号PC#)、SC(学号S#,课程号C#,成绩G)。请用关系代数与ALPHA语言分别写出下列查询:(1)检索学生的所有情况。SSSCCGETW(S)GETW(S,SC,C):S.S#=SC.S#∧SC.C#=C.C#(2)检索学生年龄大于等于20岁的学生姓名。πSN(σSA=20(S))GETW(S.SN):(S.SA=20)(3)检索先修课号为C2的课程号。πC#(σPC#=’C2’(C))GETW(C.C#):(C.PC#=’C2’)(4)检索课程号C1的成绩为A的所有学生姓名。πSN(σC#=’C1’∧G=’A’(SCC))RANGESCSCXGETW(S.SN):SCX(SCX.S#=S.S#∧SCX.C#=’C1’∧SCX.G=’A’)(5)检索S1修读的所有课程名及先修课号。πCN,PC#(σS#=’S1’(SCS))RANGESCSCXGETW(C.CN,C.PC#):SCX(SCX.C#=C.C#∧SCX.S#=’S1’)(6)检索年龄为23岁的学生所修读的课程名。πCN(σSA=23(SSCC))RANGESSXSCSCXGETW(C.CN):SXSCX(SX.S#=SCX.S#∧SCX.C#=C.C#∧SX.SA=23)(7)检索至少修读为S5修读的一门课的学生的姓名。πSN(SSCπC#(σS#=’S5’(SC)))RANGESCSCXSCSCYGETW(S.SN):SCXSCY(SCX.S#=’S5’∧SCY.S#=S.S#∧SCY.C#=SCX.C#)或RANGECCXSCSCXSCSCYGETW(S.S#):CX(SCX(SCX.S#=’S5’∧CX.C#=SCX.C#)-SCY(SCY.S#=S.S#∧CX.C#=SCY.C#))(8)检索修读S4所修读的所有课程的学生的姓名。πSN(S(πS#,C#(SC)÷πC#(σS#=’S4’(SC))))RANGECCXSCSCXSCSCYGETW(S.S#):CX(SCX(SCX.S#=’S4’∧CX.C#=SCX.C#)-SCY(SCY.S#=S.S#∧CX.C#=SCY.C#))也可以变换(A-B≡﹁A∨BX(A)≡﹁X(﹁A))真值表ABA-B≡﹁A∨BTTTTTFFFFTTTFFTTRANGECCXSCSCXSCSCYGETW(S.S#):CX(SCX(SCX.S#=’S4’∧CX.C#=SCX.C#)-SCY(SCY.S#=S.S#∧CX.C#=SCY.C#))GETW(S.S#):CX(﹁(SCX(SCX.S#=’S4’∧CX.C#=SCX.C#))∨(SCY(SCY.S#=S.S#∧CX.C#=SCY.C#)))GETW(S.S#):﹁CX(﹁(﹁(SCX(SCX.S#=’S4’∧CX.C#=SCX.C#))∨(SCY(SCY.S#=S.S#∧CX.C#=SCY.C#))))GETW(S.S#):﹁CX(((SCX(SCX.S#=’S4’∧CX.C#=SCX.C#))∧﹁(SCY(SCY.S#=S.S#∧CX.C#=SCY.C#))))(9)检索选修所有课程的学生的学号。πS#,C#(SC)÷πC#(C)RANGECCXSCSCXGETW(S.S#):CXSCX(SCX.C#=CX.C#∧S.S#=SCX.S#)全称改存在为:RANGECCXSCSCXGETW(S.S#):﹁CX(﹁SCX(SCX.C#=CX.C#∧S.S#=SCX.S#))(10)检索不选修任何课程的学生的学号。πS#(S)-πS#(SC)RANGESCSCXGETW(S.S#):SCX(﹁(SCX.S#=S#))即:RANGESCSCXGETW(S.S#):SCX(SCX.S#≠S#)或全称改存在为:GETW(S.S#):﹁SCX(﹁(﹁(SCX.S#=S#)))即:GETW(S.S#):﹁SCX(SCX.S#=S#))或(你们的做法)RANGESCSCXCCXGETW(S.S#):CX﹁(SCX(SCX.S#=S#∧CX.C#=SCX.C#))即:RANGESCSCXGETW(S.S#):CXSCX(SCX.S#≠S#∨SCX.C#≠CX.C#)全称改存在为:RANGESCSCXCCXGETW(S.S#):CX﹁(SCX(SCX.S#=S#∧CX.C#=SCX.C#))GETW(S.S#):﹁CX﹁(﹁(SCX(SCX.S#=S#∧CX.C#=SCX.C#)))GETW(S.S#):﹁CX(SCX(SCX.S#=S#∧CX.C#=SCX.C#))SQL命令见后(11)在关系C中增添一门新课MOVE'C9'TOW.C#MOVE'计算机系统结构'TOW.CNMOVE'C4'TOW.PC#PUTW(C)(12)学号为S17的学生因故退学请在S与SC中将其除名。HoldW(SC):S#=’S17’DELETEWHoldW(S):S#=’S17’DELETEW(13)将关系S中学生S6的年龄改为22岁(只需ALPHA操作)。HoldW(S#,SA):S#=’S6’MOVE22TOW.SAUPDATEW(14)将关系S中学生的年龄均增加1岁(只需ALPHA操作)。HoldW(S#,SA)MOVEW.SA+1TOW.SAUPDATEWRANGECouseCXSCSCXSCSCYGETW(Student.SNO):CX(SCX(SCX.SNO='200402'∧SCX.CNO=CX.CNO)→SCY(SCY.SNO=Student.SNO∧SCY.CNO=CX.CNO))9、设有学生-课程关系数据库,它由三个关系组成,它们的模式是:学生S(学号S#,姓名SN,所在系SD,年龄SA)、课程C(课程号C#,课程名CN,先修课号PC#)、SC(学号S#,课程号C#,成绩G)。请用关系代数与ALPHA语言分别写出下列查询:(1)检索学生的所有情况。SSSCCGETW(S)GETW(S,SC,C):S.S#=SC.S#∧SC.C#=C.C#SELECT*FROMS(2)检索学生年龄大于等于20岁的学生姓名。πSN(σSA=20(S))GETW(S.SN):(S.SA=20)SELECTSNFROMSWHERES.SA=20(3)检索先修课号为C2的课程号。πC#(σPC#=’C2’(C))GETW(C.C#):(C.PC#=’C2’)SELECTC#FROMCWHEREC.PC#=’C2’(4)检索课程号C1的成绩为A的所有学生姓名。πSN(σC#=’C1’∧G=’A’(SCC))RANGESCSCXGETW(S.SN):SCX(SCX.S#=S.S#∧SCX.C#=’C1’∧SCX.G=’A’)(5)检索S1修读的所有课程名及先修课号。πCN,PC#(σS#=’S1’(SCS))RANGESCSCXGETW(C.CN,C.PC#):SCX(SCX.C#=C.C#∧SCX.S#=’S1’)(6)检索年龄为23岁的学生所修读的课程名。πCN(σSA=23(SSCC))RANGESSXSCSCXGETW(C.CN):SXSCX(SX.S#=SCX.S#∧SCX.C#=C.C#∧SX.SA=23)(7)检索至少修读了S5修读的一门课的学生的姓名。πSN(SSCπC#(σS#=’S5’(SC)))RANGESCSCXSCSCYGETW(S.SN):SCXSCY(SCX.S#=’S5’∧SCY.S#=S.S#∧SCY.C#=SCX.C#)或RANGECCXSCSCXSCSCYGETW(S.S#):CX(SCX(SCX.S#=’S5’∧CX.C#=SCX.C#)-SCY(SCY.S#=S.S#∧CX.C#=SCY.C#))(8)检索修读了S4所修读的所有课程的学生的姓名。πSN(S(πS#,C#(SC)÷πC#(σS#=’S4’(SC))))RANGECCXSCSCXSCSCYGETW(S.S#):CX(SCX(SCX.S#=’S4’∧CX.C#=SCX.C#)-SCY(SCY.S#=S.S#∧CX.C#=SCY.C#))也可以变换RANGECCXSCSCXSCSCYGETW(S.S#):CX(SCX(SCX.S#=’S4’∧CX.C#=SCX.C#)-SCY(SCY.S#=S.S#∧CX.C#=SCY.C#))GETW(S.S#):CX(﹁(SCX(SCX.S#=’S4’∧CX.C#=SCX.C#))∨(SCY(SCY.S#=S.S#∧CX.C#=SCY.C#)))GETW(S.S#):﹁CX(﹁(﹁(SCX(SCX.S#=’S4’∧CX.C#=SCX.C#))∨(SCY(SCY.S#=S.S#∧CX.C#=SCY.C#))))GETW(S.S#):﹁CX(((SCX(SCX.S#=’S4’∧CX.C#=SCX.C#))∧﹁(SCY(SCY.S#=S.S#∧CX.C#=SCY.C#))))(9)检索选修所有课程的学生的学号。πS#,C#(SC)÷πC#(C)RANGECCXSCSCXGETW(S.S#):CXSCX(SCX.C#=CX.C#∧S.S#=SCX.S#)全称改存在为:RANGECCXSCSCXGETW(S.S#):﹁CX(﹁SCX(SCX.C#=CX.C#∧S.S#=SCX.S#))(10)检索不选修任何课程的学生的学号。πS#(S)-πS#(SC)RANGESCSCXGETW(S.S#):SCX(﹁(SCX.S#=S#))即:RANGESCSCXGETW(S.S#):SCX(SCX.S#≠S#)或全称改存在为:GETW(S.S#):﹁SCX(﹁
本文标题:《数据库原理及应用》第2章部分习题解答
链接地址:https://www.777doc.com/doc-2838722 .html