1、2019/7/26,制作:华中科技大学计算机学院 谢美意,第 1 页,数据库系统原理,第三章 作业分析,第 2 页,2019/7/26,制作:华中科技大学计算机学院 谢美意,问题1:完整性约束定义(主键),CREATE TABLE S (SNO CHAR(4) PRIMARY KEY,SNAME CHAR(20),STATUS SMALLINT,CITY CHAR(20) );NOT NULL UNIQUE可以达到与PRIMARY KEY相同的约束效果,不同之处在于:前者可以在一个表中多次出现;而后者只能出现一次。,第 3 页,2019/7/26,制作:华中科技大学计算机学院 谢美意,问题2:
2、完整性约束定义(外键),CREATE TABLE SPJ (SNO CHAR(4),PNO CHAR(4),JNO CHAR(4),QTY INT,PRIMARY KEY(SNO, PNO, JNO),FOREIGN KEY(SNO) REFERENCES S(SNO),FOREIGN KEY(PNO) REFERENCES P(PNO),FOREIGN KEY(JNO) REFERENCES J(JNO) );,第 4 页,2019/7/26,制作:华中科技大学计算机学院 谢美意,问题3:求没有使用天津供应商生产的红色零件的工程号JNO,SELECT JNO FROM J WHERE JNO
3、 NOT IN (SELECT JNOFROM JSP, S, PWHERE JSP.SNO=S.SNOAND JSP.PNO=P.PNOAND S.CITY=天津AND P.COLOR=红);,SELECT JNO FROM J WHERE NOT EXISTS (SELECT *FROM JSP, S, PWHERE JSP.SNO=S.SNOAND JSP.PNO=P.PNOAND S.CITY=天津AND P.COLOR=红AND JSP.JNO=J.JNO);,习题3.5(7) 找出没有使用天津产的零件的工程号与此题类似。,第 5 页,2019/7/26,制作:华中科技大学计算机学院
4、 谢美意,问题4:求至少使用了供应商S1所供应的全部零件的工程号,与教材P111例47类似,这类查询应转换为另一种等价形式来表达,即:不存在这样的零件Y,它是供应商S1供应的,而工程X没有使用。SELECT JNO FROM JSP X WHERE NOT EXISTS (SELECT * FROM JSP YWHERE Y.SNO=S1 AND NOT EXISTS (SELECT *FROM JSP ZWHERE Z.PNO=Y.PNO AND Z.JNO=X.JNO);,第 6 页,2019/7/26,制作:华中科技大学计算机学院 谢美意,问题5:从表S中删除S2的记录,并从表JSP中删除相应记录,由于JSP与S之间的引用关系,当JSP中存在SNO为S2的记录时,删除S中的记录可能导致两种结果:删除失败(解决办法,先删除JSP中的记录)JSP中的记录同时被删除(如何定义违约动作?),第 7 页,2019/7/26,制作:华中科技大学计算机学院 谢美意,问题6:为三建工程项目建立供应情况视图,CREATE VIEW V_SANJIAN(SNO, PNO, QTY) ASSELECT SNO, PNO, QTYFROM JSP, JWHERE JSP.JNO=J.JNO AND J.JNAME=三建,