关系代数不同写法的比较

题目如下:

4.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:
 S( SNO,SNAME,STATUS,CITY);
 P(PNO,PNAME,COLOR,WEIGHT);
 J(JNO,JNAME,CITY);
 SPJ(SNO,PNO,JNO,QTY);
①供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;②零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;③工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;④供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
试用关系代数完成如下查询:
(1) 求供应工程J1零件的供应商号码SNO;
(2) 求供应工程J1零件P1的供应商号码SNO;
(3) 求供应工程J1零件为红色的供应商号码SNO;
(4) 求没有使用天津供应商生产的红色零件的工程号JNO;
(5) 求至少用了供应商S1所供应的全部零件的工程号JNO。

在第三题中,有如下两种写法(其中,∞代表自然连接):

分析:

第①种:先选列再进行自然连接

第②种:先进行自然连接再选列

第①种写法的效率更高,自然连接是一个比较复杂的运算,它不仅还进行查询而且同时要进行选择。如果先进行自然连接的话,spj和p两个关系如果数据量很大,自然连接时就会导致效率降低;而第①种的话,先选择再进行自然连接,在进行选择后进行自然连接的两个关系数据量自然就被降低了,自然连接的负担就不会太大。

posted @ 2021-04-10 13:24  栎眠尔  阅读(741)  评论(0编辑  收藏  举报