题目
设有一个SPJ数据库,包括S(供应商),P(零件),J(工程),SPJ四个关系模式[1],详见下图。试用关系代数[2]完成如下查询。1)求供应工程J1零件的供应商号码SNO:2)求供应工程J1零件P1的供应商号码SNO:3)求供应工程J1零件为红色的供应商号码SNO:4)求没有使用天津供应商生产的红色零件的工程号JNO:5)求至少用了供应商S1所供应的全部零件的工程号JNO。S表-|||-SNO SNAME STATUS CITY-|||-SI 精益 20 天津-|||-S2 盛锡 10 北京-|||-S3 东方红 30 北京-|||-S4 丰泰盛 20 天津-|||-S5 为民 30 上海-|||-P表-|||-PNO PNAME COLOR WEIGHT-|||-P1 螺母 红 12-|||-P2 螺栓 绿 17-|||-P3 螺丝刀 蓝 14-|||-P4 螺丝刀 红 14-|||-P5 凸轮 蓝 40-|||-P6 齿轮 红 30-|||-J表-|||-JNO JNAME CITY-|||-Jl 三建 北京-|||-J2 一汽 长春-|||-J3 弹簧厂 天津-|||-J4 造船厂 天津-|||-J5 机车厂 唐山-|||-J6 无线电厂 常州-|||-J7 半导体厂 南京-|||-SPJ表-|||-SNO PNO JNO QTY-|||-s1 Pl J1 200-|||-s1 P1 J3 100-|||-S1 P1 J4 700-|||-S1 P2 J2 100-|||-S2 P3 J1 400-|||-S2 P3 J2 200-|||-S2 P3 J4 500-|||-S2 P3 J5 400-|||-S2 P5 J1 400-|||-S2 P5 J2 100-|||-S3 P1 J1 200-|||-S3 P3 J1 200-|||-S4 P5 J1 100-|||-S4 P6 J3 300-|||-S4 P6 J4 200-|||-S5 P2 J4 100-|||-S5 P3 J1 200-|||-S5 P6 J2 200-|||-S5 P6 J4 500
设有一个SPJ数据库,包括S(供应商),P(零件),J(工程),SPJ四个关系模式[1],详见下图。试用关系代数[2]完成如下查询。
1)求供应工程J1零件的供应商号码SNO:
2)求供应工程J1零件P1的供应商号码SNO:
3)求供应工程J1零件为红色的供应商号码SNO:
4)求没有使用天津供应商生产的红色零件的工程号JNO:
5)求至少用了供应商S1所供应的全部零件的工程号JNO。

题目解答
答案
1)求供应工程J1零件的供应商号码SNO:
πSno(σJno=‘J1’(SPJ))
2)求供应工程J1零件P1的供应商号码SNO:
πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))
3)求供应工程J1零件为红色的供应商号码SNO:
πSno(πSno,,Pno(σJno=‘J1‘ (SPJ))∞πPno(σCOLOR=’红‘ (P)))
4)求没有使用天津供应商生产的红色零件的工程号JNO:
πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P)
5)求至少用了供应商S1所供应的全部零件的工程号JNO:
πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))
解析
步骤 1:查询供应工程J1零件的供应商号码SNO
根据题目要求,我们需要从SPJ表中筛选出工程号为J1的记录,然后投影出供应商号码SNO。
步骤 2:查询供应工程J1零件P1的供应商号码SNO
根据题目要求,我们需要从SPJ表中筛选出工程号为J1且零件号为P1的记录,然后投影出供应商号码SNO。
步骤 3:查询供应工程J1零件为红色的供应商号码SNO
根据题目要求,我们需要从SPJ表中筛选出工程号为J1的记录,然后与P表进行连接,筛选出颜色为红色的零件,最后投影出供应商号码SNO。
步骤 4:查询没有使用天津供应商生产的红色零件的工程号JNO
根据题目要求,我们需要从SPJ表中筛选出工程号,然后与S表进行连接,筛选出城市为天津的供应商,再与P表进行连接,筛选出颜色为红色的零件,最后从SPJ表中筛选出工程号,然后与上述结果进行差集操作。
步骤 5:查询至少用了供应商S1所供应的全部零件的工程号JNO
根据题目要求,我们需要从SPJ表中筛选出供应商S1供应的零件号,然后与SPJ表进行除法操作,得到至少用了供应商S1所供应的全部零件的工程号JNO。
根据题目要求,我们需要从SPJ表中筛选出工程号为J1的记录,然后投影出供应商号码SNO。
步骤 2:查询供应工程J1零件P1的供应商号码SNO
根据题目要求,我们需要从SPJ表中筛选出工程号为J1且零件号为P1的记录,然后投影出供应商号码SNO。
步骤 3:查询供应工程J1零件为红色的供应商号码SNO
根据题目要求,我们需要从SPJ表中筛选出工程号为J1的记录,然后与P表进行连接,筛选出颜色为红色的零件,最后投影出供应商号码SNO。
步骤 4:查询没有使用天津供应商生产的红色零件的工程号JNO
根据题目要求,我们需要从SPJ表中筛选出工程号,然后与S表进行连接,筛选出城市为天津的供应商,再与P表进行连接,筛选出颜色为红色的零件,最后从SPJ表中筛选出工程号,然后与上述结果进行差集操作。
步骤 5:查询至少用了供应商S1所供应的全部零件的工程号JNO
根据题目要求,我们需要从SPJ表中筛选出供应商S1供应的零件号,然后与SPJ表进行除法操作,得到至少用了供应商S1所供应的全部零件的工程号JNO。