现有表示患者和医疗的关系如下:P(P#,Pn,Pg,By),其中P#为患者编号,Pn为患者姓名,Pg为性别,By为出生日期;Tr(P#,D$,Date,Rt),其中D#为医生编号,Date为就诊日期,Rt为诊断结果。检索在1号医生处就诊的男性患者姓名的表达

admin2022-09-09  29

问题 现有表示患者和医疗的关系如下:P(P#,Pn,Pg,By),其中P#为患者编号,Pn为患者姓名,Pg为性别,By为出生日期;Tr(P#,D$,Date,Rt),其中D#为医生编号,Date为就诊日期,Rt为诊断结果。检索在1号医生处就诊的男性患者姓名的表达式是(          )。

选项 A、σPg="男"(P)
B、πPnP#D#=1(Tr))σPg="男"(P))
C、πPnP#D#=1(Tr))P)
D、πPnD#=1(Tr))σPg="男"(P))

答案B

解析 检索患者姓名需要涉及P表的Pn列,而医生编号需要从Tr表的D#处获得,所以必须将P表和Tr表连接后再进行操作。在进行连接操作之前,先从Tr表中筛选出D#=1的行(σ操作,σD#=1(Tr)),并仅筛选出P#(π操作,πP#D#=1(Tr))),得到筛选结果的一个小表;再从P表中筛选出性别为“男”(Pg=”男”)的行(σ操作,σPg="男"(P)),得到第二个小表。将两个小表进行连接(πP#D#=1(Tr))σPg="男"(P)),连接后还要从连接结果中只保留Pn列,故再做一个π操作(πPnP#D#=1(Tr))σPg="男"(P)))。本题选择B选项。
转载请注明原文地址:https://kaotiyun.com/show/ha6p777K
0

最新回复(0)