数据库作业

设有一个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。

解: 1.πSno(σSno=‘J1’(SPJ))
2.πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))
3.πSno(σPno=‘P1‘ (σCOLOR=’红‘ (P)∞SPJ))
4.πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P)
5.πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))

试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?

答;实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。即属性F本身不是主属性,则可以取空值,否则不能取空值。

关系代数的基本运算有哪些?如何用这些基本运算来表示其他的运算?

答;并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他三种运算,即交、链接和除,均可以用这5种运算来表达

1,查询至少选修了3门其直接先行课为5号课程的学生姓名?

解:πSname(σCpno=‘5’(Course)∧σCpon>3(Course)∞SC∞πSno.Sname(Student))

你可能感兴趣的:(作业)