给定关系模式科室K(科室号,科室名,负责人,科室电话)、医生Y(医生号,医生名,性别,科室号,联系电话,家庭地址)和患者B(病历号,患者名,性别,医保号,联系方式),并且1个科室有多名医生,1名医生属于1个科室;1名医生可以为多个患者诊疗,1个患者也可以找

admin2014-08-23  15

问题 给定关系模式科室K(科室号,科室名,负责人,科室电话)、医生Y(医生号,医生名,性别,科室号,联系电话,家庭地址)和患者B(病历号,患者名,性别,医保号,联系方式),并且1个科室有多名医生,1名医生属于1个科室;1名医生可以为多个患者诊疗,1个患者也可以找多名医生诊疗。科室与医生之间的“所属”联系类型、医生与患者之间的“诊疗”联系类型分别为(43);其中  (44)。下列查询“肝胆科”医生的医生名、联系电话及家庭住址的关系代数表达式中,查询效率最高的是(45)。
(45)

选项 A、π6,9,101=8(K×Y))
B、π6,9,101=8∧2=’肝胆科’(K×Y))
C、
D、

答案D

解析 根据题意可知一个科室有多名医生,一名医生属于一个科室,所以科室与医生之间的“所属”联系类型为1:n;又因为一名医生可以为多个病人诊疗,一个病人也可以找多名医生诊疗,所以医生与病人之间的“诊疗”联系类型为n:m。当医生与病人之间的“诊疗”联系类型为n:m时,需要转换为一个独立的关系,并将医生号和病历号作为主键。根据关系代数表达式查询优化的准则1“提早执行选取运算”,即对于有选择运算的表达式,应优化成尽可能先执行选择运算的等价表达式,以得到较小的中间结果,减少运算量和从外存读块的次数。准则2“合并乘积与其后的选择运算为连接运算”,即在表达式中,当乘积运算后面是选择运算时,应该合并为连接运算,使选择与乘积一道完成,以避免做完乘积后,需再扫描一个大的乘积关系进行选择运算。
转载请注明原文地址:https://jikaoti.com/ti/OIJ7FFFM
0

最新回复(0)