R S;∏A(R);δ
A=C(R×S)。
R S W
A a c d B b b e B b e b C c a d A b c b B c b d
补充题2 假定R为2元和S为3元关系,将表达式进行转换: E1=∏1,5(δ
[2]=4∨[3]=4(R×S))
E2=∏5,2,1(R [2]>[1] S) 补充题3 将表达式进行转换:
E3={t(2) | R(t)∧(u(2))(S(u)∧u[1]=t[2])} E4={ab | R(ab)∧R(ba)}
E5={xy | R(xy)∧(z)(﹃S(xy) ∧﹃S(yz))}
2.5设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY);
1) 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;
2) 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;
3) 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;
4) 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。试用关系代数语言完成如下查询: 1)求供应工程J1零件的供应商号码SNO; 2)求供应工程J1零件P1的供应商号码SNO; 3)求供应工程J1零件为红色的供应商号SNO;
4)求没有使用天津供应商生产的红色零件的工程号JNO; 5)求至少用了供应商S1所供应的全部零件的工程号JNO; 6)求S1提供的零件名PNAME;
7)求给工程J1和J2提供零件的供应商号码SNO;
8)求天津的供应商给天津的工程提供零件的供应商号码SNO。 解:1)求供应工程J1零件的供应商号码SNO; π
SNO (σJNO=‘J1’(SPJ))
结果:{S1,S2,S3,S4,S5}
2)求供应工程J1零件P1的供应商号码SNO; ππ
SNO (σJNO=‘J1’∧PNO=‘P1’ (SPJ))
结果:{S1,S3}
SNO (σJNO=‘J1’ (σPNO=‘P1’ (SPJ)))
3)求供应工程J1零件为红色的供应商号SNO; π
SNO (σJNO=‘J1’ (SPJ)
►◄σ
COLOR=‘红’ (P))
结果:{S1,S3}
4)求没有使用天津供应商生产的红色零件的工程号JNO; π
JNO (J)
—π
JNO(σCITY=‘天津’ (S)
►◄SPJ►◄σ
COLOR=‘红’ (P))
结果:{J2,J5,J6,J7}
5)求至少用了供应商S1所供应的全部零件的工程号JNO
工程中使用的同一种零件可以由不同的供应商供应,供应商S1 供应的全部零件有{P1,P2},但是S5也可以供应P2零件给工程。
第一种理解 π
JNO,SNO,PNO (SPJ) ÷
π
SNO,PNO (σSNO=‘S1’(SPJ))
结果: { } 其中: π
SNO,PNO (σSNO=‘S1’(SPJ)
结果:{(S1,P1),(S1,P2)}
第二种理解 π
πPNO (σSNO=‘S1’(SPJ)) JNO,PNO (SPJ) ÷
结果: {J4} 其中: π
PNO (σSNO=‘S1’(SPJ)
结果:{P1,P2}
6)求S1提供的零件名PNAME; π
PNAME (σSNO=‘S1’(SPJ►◄P))
7)求给工程J1和J2提供零件的供应商号码SNO; π
SNO (σJNO=‘J1’(SPJ))∩πSNO (σJNO=‘J1’(SPJ))
8)求天津的供应商给天津的工程提供零件的供应商号码SNO。 π
SNO (σCITY=‘天津’(S►◄SPJ►◄J))
SNO (σCITY=‘天津’(S))∩πSNO (σCITY=‘天津’(SPJ►◄J))
或π
2.6 试述等值连接与自然连接的区别和联系。
因篇幅问题不能全部显示,请点此查看更多更全内容