软件工程与数据库概论习题答案.ppt
1,第六章 数据库概述,P101-4 数据独立性包括哪两个方面,含义分别是什么?,数据独立性是指应用程序与数据库的数据结构之 间相互独立它可以分为物理数据独立性和逻辑数据独立性,2,第六章 数据库概述,物理数据独立性是指数据的物理结构(或内模式)的改变不影响数据库的逻辑结构,因而应用程序 不变。数据逻辑独立性是指数据库总体逻辑结构(概念 模式)改变时,不需修改应用程序。数据独立性,使用户摆脱了繁琐的物理存储细节,减少了应用程序维护的开销。,P97 P96,3,第六章 数据库概述,P101-10 数据库管理系统有哪些主要功能?,数据定义数据操纵数据库运行管理数据组织、存储和管理数据库的建立和维护数据通信接口,P161P88,4,第七章 关系数据库基本原理,P133-3 关系模型的完整性规则有哪几类?,实体完整性规则:P103参照完整性规则:P103用户定义的完整性:P104,5,第七章 关系数据库基本原理,P133-7 S(SNO,SNAME,CITY)P(PNO,PNAME,COLOR,WEIGHT)J(JNO,JNAME,CITY)SPJ(SNO,PNO,JNO,QTY)用关系代数表达式完成下列操作:,(1)求供应工程J1零件的供应商号SNO;,SNO(JNO=J1(SPJ),6,第七章 关系数据库基本原理,(2)求供应工程J1零件P1的供应商号SNO;(3)求供应工程J1红色零件的供应商号SNO;,SNO(JNO=J1 PNO=P1(SPJ),SNO(JNO=J1 COLOR=红(SPJ P),7,第七章 关系数据库基本原理,P133-9 用SQL语言建立四个表,S(SNO,SNAME,CITY)CREATE TABLE S(SNO CHAR(2),SNAME VARCHAR(20)NOT NULL,CITY VARCHAR(10)NOT NULL,PRIMARY KEY(SNO);,8,第七章 关系数据库基本原理,SPJ(SNO,PNO,JNO,QTY)CREATE TABLE SPJ(SNO CHAR(2),PNO CHAR(2),JNO CHAR(2),QTY INT NOT NULL,PRIMARY KEY(SNO,PNO,JNO),FOREIGN KEY(SNO)REFERENCES S(SNO),FOREIGN KEY(PNO)REFERENCES P(PNO),FOREIGN KEY(JNO)REFERENCES J);,9,第七章 关系数据库基本原理,P133-10 用SQL语句完成下列操作:,(1)求供应工程J1零件的供应商号SNO;,SELECT DISTINCT SNO FROM SPJWHERE JNO=J1;,(2)求供应工程J1零件P1的供应商号SNO;(3)求供应工程J1红色零件的供应商号SNO;,SELECT DISTINCT SNO FROM SPJWHERE JNO=J1 AND PNO=P1;,SELECT DISTINCT SNO FROM SPJWHERE JNO=J1 AND PNO IN(SELECT PNO FROM P WHERE COLOR=红);,10,第七章 关系数据库基本原理,P133-10 用SQL语句完成下列操作:,(4)求没有使用天津供应商生产的红色零件的工程号 JNO;,SELECT JNO FROM JWHERE JNO NOT IN();,SELECT JNO FROM S,P,SPJ WHERE S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO AND CITY=天津 AND COLOR=红,11,第七章 关系数据库基本原理,P133-10 用SQL语句完成下列操作:,(5)求至少用了S1供应商所提供的全部零件的工程号 JNO;,SELECT DISTINCT JNO FROM SPJ AS XWHERE NOT EXISTS(SELECT*FROM SPJ AS Y WHERE Y.SNO=S1 AND NOT EXISTS(SELECT*FROM SPJ Z WHERE Z.JNO=X.JNO AND Z.PNO=Y.PNO);,12,第七章 关系数据库基本原理,P133-11 用SQL语句完成下列操作:,(1)统计每种零件的供应总量;,SELECT PNO,SUM(QTY)FROM SPJGROUP BY PNO;,(2)求零件供应总量在1000个以上的供应商名字;,SELECT SNAME FROM S WHERE SNO IN(SELECT SNO FROM SPJ GROUP BY SNO HAVING SUM(QTY)1000);,13,第七章 关系数据库基本原理,P133-11 用SQL语句完成下列操作:,INSERT INTO S VALUES(S6,华天,深圳);,(3)在S表中插入一条供应商信息:(S6,华天,深圳);(4)把全部红色零件的颜色改为粉红色;(5)将S1供应给J1的零件P1改为由S2供给;,UPDATE P SET COLOR=粉红WHERE COLOR=红;,UPDATE SPJ SET SNO=S2WHERE SNO=S1 AND JNO=J1 AND PNO=P1;,14,第七章 关系数据库基本原理,P133-11 用SQL语句完成下列操作:,(6)删除全部蓝色零件及相应的SPJ记录。,15,第七章 关系数据库基本原理,SPJ(SNO,PNO,JNO,QTY)CREATE TABLE SPJ(SNO CHAR(2),PNO CHAR(2),JNO CHAR(2),QTY INT NOT NULL,PRIMARY KEY(SNO,PNO,JNO),FOREIGN KEY(SNO)REFERENCES S(SNO),FOREIGN KEY(PNO)REFERENCES P(PNO),FOREIGN KEY(JNO)REFERENCES J);,16,第七章 关系数据库基本原理,P133-11 用SQL语句完成下列操作:,(6)删除全部蓝色零件及相应的SPJ记录。,DELETE FROM SPJ WHERE PNO IN(SELECT PNO FROM P WHERE COLOR=蓝);DELETE FROM P WHERE COLOR=蓝;,17,第七章 关系数据库基本原理,补充作业1:设有关系模式R(SNO,CNO,GRADE,TNAME,TADDR),其属性分别表示学生学号、课程号、成绩、任课教师名、教师地址。规定:每个学生一门课只有一个成绩;每门课只有一个教师任教;每个教师只有一个地址,所有教师不同名。(1)试写出关系模式R基本的函数依赖和候选键。(2)试把R分解成2NF模式集,并说明理由。(3)试把R分解成3NF模式集,并说明理由。,18,第七章 关系数据库基本原理,R(SNO,CNO,GRADE,TNAME,TADDR)每个学生一门课只有一个成绩;每门课只有一个教师任教;每个教师只有一个地址,所有教师不同名。(1)试写出关系模式R基本的函数依赖和候选键,KEY=SNO,CNO,19,第七章 关系数据库基本原理,(2)试把R分解成2NF模式集,并说明理由;,=R1(SNO,CNO,GRADE),R2(CNO,TNAME,TADDR),F1=SNO,CNO GRADE,KEY=(SNO,CNO),F2=CNOTNAME,TNAMETADDR,KEY=(CNO),中R1、R2的所有属性都是原子的,且没有非主属性对候选键的部分函数依赖,达到2NF;,20,第七章 关系数据库基本原理,(3)试把R分解成3NF模式集,并说明理由;,=R1(SNO,CNO,GRADE),R21(CNO,TNAME),R22(TNAME,TADDR),F1=SNO,CNOGRADE,KEY=(SNO,CNO),F21=CNOTNAME,KEY=(CNO),中R1、R21、R22的所有属性都是原子的,且没有非主属性对候选键的部分和传递函数依赖,达到3NF;,F22=TNAMETADDR,KEY=(TNAME),21,第八章 数据库设计,补充作业2:百货公司管辖若干连锁商店,每家商店经营若干商品,每家商店有若干职工,每个职工只能服务于一家商店。该系统的信息需求包括:商店信息:商店编号、店名、地址、经理;商品信息:商品编号、商品名、单价、产地;职工信息:职工编号、职工名、性别、工资;职工参加某商店工作的开始时间;商店销售商品的月销售量。1为该百货公司设计ER模式;2将该E-R模型转换为关系模式,并指出每个关系模式的 主、外键;,22,第八章 数据库设计,1为该百货公司设计ER模式:,23,第八章 数据库设计,2将该E-R模型转换为关系模式,并指出每个关系模式的主、外键;,