题目
设有学生-课程关系数据库,它由三个关系组成,它们的模式是:学生S〔______,SN,所在系DEPT,年龄AGE〕、课程C〔______,课程名CN,先修课号CPNO〕、SC〔______,______,成绩SCORE〕。请用关系代数[1]与ALPHA语言分别写出以下查询:(1) 检索学生的所有情况。(2) 检索学生年龄大于等于20岁的学生。(3) 检索先修课号为C2的课程号。(4) 检索课程号C1的成绩为A的所有学生。(5) 检索S1修读的所有课程名及先修课号。(6) 检索年龄为23岁的学生所修读的课程名。(7) 检索至少修读了S5修读的一门课的学生的。(8) 检索修读了S4所修读的所有课程的学生的。(9) 检索选修所有课程的学生的学号。(10) 检索不选修任何课程的学生的学号。(11) 在关系C中增添一门新课〔新课信息自定〕(12) 学号为S17的学生因故退学请在S与SC中将其除名。(13) 将关系S中学生S6的年龄改为22岁〔只需ALPHA操作〕。(14) 将关系S中学生的年龄均增加1岁〔只需ALPHA操作〕。参考答案:〔1〕检索学生的所有情况。S或SSCCGET W(S)或:GET W(S,SC,C):S.SNO=SC.SNO ∧ SC O =C O〔2〕检索学生年龄大于等于20岁的学生。∏SN(σAGE>=20(S))GET W(S.SN): (S.AGE>=20)〔3〕检索先修课号为C2的课程号。∏CNO(σCPNO=’C2’(C))GET W(CO): (C.PNO=’C2’)〔4〕检索课程号C1的成绩为A的所有学生。∏sn(S∞(CNO=’C1’∧G=‘A’(SC))RANGE SC SCXGET W〔S.sn〕:SCX〔SCX.sno=S.sno〕〔6〕检索年龄为23岁的学生所修读的课程名。∏cn(age=23(S∞SC∞C))RANGE SC SCXS SYGET W〔C〕:SCXSCX o=C o〕〔7〕检索至少修读了S5修读的一门课的学生的。∏sn(S∞SC∞∏C#(SNO=’S5’(SC)))RANGE SC SCXSC SCYGET W〔S.sno〕:SCXSCY〔SCX.sno=’S5’SCX o=SCY oSCY.sno=S.sno〕〔8〕检索修读了S4所修读的所有课程的学生的。∏sn(S∞(∏sno,cno(SC)∏cno(SNO=’S4’(SC))))RANGE SC SCXSC SCYC CXGET W〔S.sn〕:CX(SCX (SCX o=CX oSCX.sno=’S4’))SCY (SCY o=CX oSCY.sno=S.sno))〔10〕检索不选修任何课程的学生的学号。∏sno (S)-∏sno(SC)RANGE SC SCXGET W〔S.sno〕:SCX (SCX.sno=S.sno〕(11)设新课程记录为:((‘C10’,‘数据库概论’,‘C1’,))
设有学生-课程关系数据库,它由三个关系组成,它们的模式是:学生S〔______,SN,所在系DEPT,年龄AGE〕、课程C〔______,课程名CN,先修课号CPNO〕、SC〔______,______,成绩SCORE〕。
请用关系代数[1]与ALPHA语言分别写出以下查询:
(1) 检索学生的所有情况。
(2) 检索学生年龄大于等于20岁的学生。
(3) 检索先修课号为C2的课程号。
(4) 检索课程号C1的成绩为A的所有学生。
(5) 检索S1修读的所有课程名及先修课号。
(6) 检索年龄为23岁的学生所修读的课程名。
(7) 检索至少修读了S5修读的一门课的学生的。
(8) 检索修读了S4所修读的所有课程的学生的。
(9) 检索选修所有课程的学生的学号。
(10) 检索不选修任何课程的学生的学号。
(11) 在关系C中增添一门新课〔新课信息自定〕
(12) 学号为S17的学生因故退学请在S与SC中将其除名。
(13) 将关系S中学生S6的年龄改为22岁〔只需ALPHA操作〕。
(14) 将关系S中学生的年龄均增加1岁〔只需ALPHA操作〕。
参考答案:
〔1〕检索学生的所有情况。
S或S SC
SC C
C
 SC
SC C
CGET W(S)
或:GET W(S,SC,C):S.SNO=SC.SNO ∧ SC O =C O
〔2〕检索学生年龄大于等于20岁的学生。
∏SN(σAGE>=20(S))
GET W(S.SN): (S.AGE>=20)
〔3〕检索先修课号为C2的课程号。
∏CNO(σCPNO=’C2’(C))
GET W(CO): (C.PNO=’C2’)
〔4〕检索课程号C1的成绩为A的所有学生。
∏sn(S∞(CNO=’C1’∧G=‘A’(SC))
RANGE  SC  SCX
GET W〔S.sn〕:SCX〔SCX.sno=S.sno〕
〔6〕检索年龄为23岁的学生所修读的课程名。
∏cn(age=23(S∞SC∞C))
RANGE  SC  SCX
S  SY
GET W〔C〕:SCXSCX o=C o〕
〔7〕检索至少修读了S5修读的一门课的学生的。
∏sn(S∞SC∞∏C#(SNO=’S5’(SC)))
RANGE  SC  SCX
SC  SCY
GET W〔S.sno〕:SCXSCY〔SCX.sno=’S5’SCX o=SCY oSCY.sno=S.sno〕
〔8〕检索修读了S4所修读的所有课程的学生的。
∏sn(S∞(∏sno,cno(SC)∏cno(SNO=’S4’(SC))))
RANGE  SC  SCX
SC  SCY
C  CX
GET W〔S.sn〕:CX(SCX (SCX o=CX oSCX.sno=’S4’))
SCY (SCY o=CX oSCY.sno=S.sno))
〔10〕检索不选修任何课程的学生的学号。
∏sno (S)-∏sno(SC)
RANGE  SC  SCX
GET W〔S.sno〕:SCX (SCX.sno=S.sno〕
(11)设新课程记录为:{(‘C10’,‘数据库概论’,‘C1’,)}
题目解答
答案
学号SNO    课程号CNO    学号SNO    课程号CNO