浙大远程 - 数据库系统概论离线作业答案 联系客服

发布时间 : 星期四 文章浙大远程 - 数据库系统概论离线作业答案更新完毕开始阅读c67f5bac453610661ed9f4e5

浙江大学远程教育学院 《数据库系统概论》课程作业

姓名: 年级:

学 号: 学习中心:

—————————————————————————————

第一章习题2、6、10

2.使用数据库系统有什么好处? 答:

使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS 来完成。用一个通俗的比喻,使用了 DBMS 就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是 DBA 的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为 DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。

6 .数据库管理系统的主要功能有哪些?

答:数据库定义功能、数据存取功能、数据库运行管理、数据库的建立和维护功能。

10 .试给出 3 个实际部门的 E 一 R 图,要求实体型之间具有一对一、一对多、多对多各种不同的联系。 答: 负责人 部门 1 1 负责 学生 1 n 图书 借阅 学生 n m 社团 参加

第二章习题4、5

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

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

5.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: (1)求供应工程J1零件的供应商号码SNO: πSno(σSno=‘J1’(SPJ))

(2)求供应工程J1零件P1的供应商号码SNO: πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))

(3)求供应工程J1零件为红色的供应商号码SNO:

πSno(σPno=‘P1‘ (σCOLOR=’红‘ (P)∞SPJ)) (4)求没有使用天津供应商生产的红色零件的工程号JNO:

πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P) (5)求至少用了供应商S1所供应的全部零件的工程号JNO: πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))

第三章习题3、4、5、11

3、用SQL语句建立第二章习题5中的四个表。 答:对于 S表:S( SNO,SNAME,STATUS,CITY); CREATE TABLE S (SNO CHAR(3), SNAME CHAR(10),STATUS CHAR(2),CITY CHAR(10)); 对于P表:P((PNO ,PNAME ,COLOR ,WEIGHT )CREATE TABLE P(PNO CHAR(6), PNAME CHAR(10),COLOR CHAR(2),WEIGHT MEMBER); 对于 J 表: J ( JNO , JNAME , CITY) ; 建 J 表:

CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4)) 对于 sPJ 表: sPJ ( sNo , PNo , JNo , QTY) ; 建 SPJ 表:SPJ(SNO,PNO,JNO,QTY)

CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY INT))

4.针对上题中建立的 4 个表试用 sQL 语言完成第二章习题 5 中的查询。 ( l )求供应工程 Jl 零件的供应商号码 SNO ; SELECT DIST SNO FROM SPJ WHERE JNO=’J1’

( 2 )求供应工程 Jl 零件 Pl 的供应商号码 SNO ;

SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1' ( 3 )求供应工程 Jl 零件为红色的供应商号码 SNO ;

SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红' ( 4 )求没有使用天津供应商生产的红色零件的工程号 JNO ; SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM

SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。

( 5 )求至少用了供应商 Sl 所供应的全部零件的工程号 JNO ; 由于VFP不允许子查询嵌套太深,将查询分为两步 A、查询S1供应商供应的零件号

SELECT DIST PNO FROM SPJ WHERE SNO='S1'结果是(P1,P2) B、查询哪一个工程既使用P1零件又使用P2零件。 SELECT JNO FROM SPJ WHERE PNO='P1'

AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2')

5. 针对习题3中的四个表试用SQL语言完成以下各项操作: (1) 找出所有供应商的姓名和所在城市。 (2) 找出所有零件的名称、颜色、重量。

(3) 找出使用供应商S1所供应零件的工程号码。

(4) 找出工程项目J2使用的各种零件的名称及其数量。 (5) 找出上海厂商供应的所有零件号码。 (6) 找出使用上海产的零件的工程名称。 (7) 找出没有使用天津产的零件的工程号码。 (8) 把全部红色零件的颜色改成蓝色。

(9) 由S5供给J4的零件P6改为由S3供应,请作必要的修改。

(10) 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。 (11) 请将 (S2,J6,P4,200) 插入供应情况关系。 答: (1) 找出所有供应商的姓名和所在城市。 SELECT SNAME, CITY FROM S;

(2) 找出所有零件的名称、颜色、重量。 SELECT PNAME, COLOR, WEIGHT FROM P;

(3) 找出使用供应商S1所供应零件的工程号码。 SELECT JNO FROM SPJ WHERE SNO=‘S1';

(4) 找出工程项目J2使用的各种零件的名称及其数量。 SELECT P.PNAME, SPJ.QTY FROM P, SPJ

WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2'; (5) 找出上海厂商供应的所有零件号码。

SELECT DISTINCT PNO FROM SPJ WHERE SNO IN ( SELECT SNO FROM S WHERE CITY='上海');

或:SELECT PNO FROM S,SPJ WHERE S,SNO=SPJ.SNO AND S.CITY=’上海’ (6) 找出使用上海产的零件的工程名称。 SELECT JNAME FROM J, SPJ, S

WHERE J. JNO=SPJ. JNO AND SPJ. SNO=S.SNO AND S.CITY='上海'; (7) 找出没有使用天津产的零件的工程号码。

SELECT DISTINCT JNO FROM SPJ WHERE JNO NOT IN

(SELECT JNO FROM S,SPJ WHERE S.SNO=SPJ.SNO AND S.CITY=’ 天津’) (8) 把全部红色零件的颜色改成蓝色。

UPDATE P SET COLOR='蓝' WHERE COLOR='红' ;

(9) 由S5供给J4的零件P6改为由S3供应,请作必要的修改。

UPDATE SPJ SET SNO='S3' WHERE SNO='S5' AND JNO='J4' AND PNO='P6'; (10) 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。 解析:注意删除顺序,应该先从 SPJ表中删除供应商S2所供应零件的记录,然后从从S表中删除S2。

DELET FROM SPJ WHERE SNO=‘S2’ DELET FROM S WHERE SNO=‘S2’

(11) 请将 (S2,J6,P4,200) 插入供应情况关系。 INSERT INTO SPJ(SNO, JNO, PNO, QTY) VALUES (‘S2’,‘J6’,‘P4’,200);

11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,JWHERE SPJ.JNO=J.JNO AND J.JNAME='三建' 针对该视图VSP完成下列查询:

( 1)找出三建工程项目使用的各种零件代码及其数量。 ( 2)找出供应商S1的供应情况。

答:(1)找出三建工程项目使用的各种零件代码及其数量。 SELECT DIST PNO,QTY FROM VSP (2)找出供应商S1的供应情况。

SELECT DIST * FROM VSP WHERE SNO='S1'