《2022年数据库系统概论课后习题答案汇编 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库系统概论课后习题答案汇编 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 1 章 绪论 习题参考答案13某工厂生产若干产品, 每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用E-R 图画山此工厂产品,零件,材料,仓库的概念模型。第 2 章 关系数据库习题参考答案5设有一个 SPJ数据库,包括 S,P,J,SPJ四个关系模式:1)求供应工程 J1 零件的供应商号码SNO :Sno( Jno=J1(SPJ )) 2)求供应工程 J1 零件 P1的供应商号码 SNO :Sno( Jno=J1 Pno=P1(SPJ) 3)求供应工程 J
2、1 零件为红色的供应商号码SNO :Sno( Pno=P1(COLOR=红(P)SPJ)) 4)求没有使用天津供应商生产的红色零件的工程号JNO :Jno(SPJ)- JNO(city= 天津Color= 红(SSPJ P)5)求至少用了供应商S1所供应的全部零件的工程号JNO :Jno,Pno(SPJ) Pno(Sno=S1 (SPJ ) )第 3 章 SQL语言习题参考答案用 SQL语句建立第二章习题5 中的四个表。S(SNO ,SNAME,STATUS ,CITY); P(PNO,PNAME,COLOR,WEIGHT) ; J(JNO ,JNAME ,CITY); SPJ(SNO,PNO
3、 ,JNO ,QTY);供应商表 S由供应商代码 (SNO)、供应商姓名 (SNAME) 、供应商状态 (STATUS) 、供应商所在城市(CITY) 组成:CREATE TABLE S ( Sno CHAR(2) UNIQUE ,Sname CHAR(6) ,Status CHAR(2) ,City CHAR(4) ); 零件表 P由零件代码 (PNO)、零件名 (PNAME) 、颜色 (COLOR) 、重量 (WEIGHT) 组成:CREATE TABLE P ( Pno CHAR(2) UNIQUE ,产品零件原材料仓库构成存储制成存储m m n n L n n 1 名师资料总结 - -
4、 -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - Pname CHAR(6) ,COLOR CHAR(2) ,WEIGHT INT ); 工程项目表 J 由工程项目代码 (JNO)、工程项目名 (JNAME) 、所在城市 (CITY) 组成:CREATE TABLE J ( JNO CHAR(2) UNlQUE ,JNAME CHAR(8) , CITY CHAR(4) ); 供应情况表 SPJ由供应商代码 (SNO)、 零件代码 (PNO)、 工程
5、项目代码(JNO)、 供应数量(QTY )组成:CREATE TABLE SPJ ( SNO CHAR(2),PNO CHAR(2) ,JNO CHAR(2), QTY INT);4针对上题中建立的四个表试用SQL语言完成第二章习题5 中的查询 : 求供应工程 J1 零件的供应商号码SNO: SELECT SNO FROM SPJ WHERE JNO= J1求供应工程 J1 零件 P1的供应商号码 SNO: SELECT SNO FROM SPJ WHERE JNO=J1 AND PNO=P1 求供应工程 J1 零件为红色的供应商号码SNO: SELECT SNO FROM SPJ,P WHE
6、RE JNO=J1 AND SPJ.PNO=P.PNO AND COLOR=红 求没有使用天津供应商生产的红色零件的工程号JNO: SELECT JNO FROM SPJ WHERE JNO NOT IN ( SELECT JNO FROM SPJ,P,S WHERE S.CITY= 天津 AND COLOR=红 AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO);或者: SELECT JNO FROM J WHERE NOT EXITS ( SELECT * FROM SPJ,S,P WHERE S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO);求至少用
7、了供应商S1所供应的全部零件的工程号JNO 。解法一:将查询分为两步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) 解法二:SELECT DISTINCT JNO FROM SPJ SPJZ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
8、心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - WHERE NOT EXISTS ( SELECT * FROM SPJ SPJX WHERE SPJX.SNO= S1 AND NOT EXISTS( SELECT * FROM SPJ SPJY WHERE SPJY.PNO=SPJX.PNO AND SPJY.JNO=SPJZ.JNO AND SPJY.SNO= S1 ); 5针对习题 3 中的四个表试用 SQL语言完成以下各项操作: (1)找出所有供应商的姓名和所在城市。 SELECT SNAME,CITY FROM S (2) 找出所有零件
9、的名称、颜色、重量。SELECT PNAME,COLOR,WEIGHT FROM P (3)找出使用供应商S1所供应零件的工程号码。 SELECT DIST JNO FROM SPJ WHERE SNO=S1 (4) 找出工程项目 J2 使用的各种零件的名称及其数量。SELECT PNAME,QTY FROM SPJ,P WHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2 (5)找出上海厂商供应的所有零件号码。SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY=上海 (6) 找出使用上海产的零件的工程名称。SELECT JNA
10、ME FROM SPJ,S,J WHERE S.SNO=SPJ.SNO AND S.CITY=上海 AND J.JNO=SPJ.JNO (7)找出没有使用天津产的零件的工程号码。注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN ( SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY=天津) (8) 把全部红色零件的颜色改成蓝色。UPDATE P SET COLOR=蓝 WHERE COLOR= 红 (9) 由 S5供给 J4 的零件 P6改为由 S3供应。 UPDATE SPJ SET S
11、NO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P6 (10) 从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。 A、DELETE FROM S WHERE SNO= S2 B、DELETE FROM SPJ WHERE SNO= S2(11) 请将(S2,J6,P4,200) 插入供应情况关系。 INSERT INTO SPJ VALUES( S2 , J6 , P4 ,200)第 4 章 数据库安全性8、(a)GRANT SELECT ON 职工,部门 TO 王明;(b)GRANT INSERT,DELETE ON 职工,部门 TO 李
12、勇;(c)GRANT SELECT ON 职工 WHEN USER()=NAME TO ALL; (d)GRANT SELECT,UPDATE(工资) ON 职工 TO 刘星;(e)GRANT ALTER TABLE ON 职工,部门 TO 张新;(f)GRANT ALL PRIVILEGES ON 职工,部门 TO 周平名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - WITH GRANT OPTION; (g)CREATE V
13、IEW 部门工资 AS SELECT MAX( 工资),MIN(工资) ,AVG( 工资) ,部门名称FROM 职工,部门WHERE 职工. 部门号 =部门 . 部门号GROUP BY 职工. 部门号;GRANT SELECT ON 部门工资 TO 杨兰;第 5 章 数据库完整性6、CREATE TABLE DEPT (Deptno NUMERIC(2), Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12), CONSTRAINT PK_SC PRIMARY KEY(Deptno); CREATE TABLE EMP
14、(Empno NUMERIC(4), Ename VARCHAR(10), Age NUMERIC(3), CONSTRAINT C1 CHECK (Age=60), Job VARCHAR(9), Sal NUMERIC(7,2), Deptno NUMERIC(2), CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno) REFERENCES DEPT(Deptno); 第 6 章关系数据理论习题参考答案2建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系名、系号
15、、系办公地点、人数。学会:学会名、成立年份、办公地点、人数。语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在 ? 解:(1) 关系模式如下:学生: S(Sno,Sname ,Sbirth ,Dept,Class ,Rno) 班级: C(Class,Pname ,Dept,Cnu
16、m ,Cyear) 系:D(Dept,Dno,Office ,Dnum) 学会: M(Mname ,Myear,Maddr,Mnum) (2)每个关系模式的最小函数依赖集如下: A、学生 S (Sno ,Sname ,Sbirth ,Dept,Class ,Rno) 的最小函数依赖集如下 : SnoSname ,SnoSbirth ,SnoClass ,ClassDept,DEPT Rno 传递依赖如下:由于 SnoDept,而 DeptSno ,DeptRno (宿舍区)所以 Sno与 Rno之间存在着传递函数依赖。由于 ClassDept,Dept Class ,DeptRno 所以 Cl
17、ass 与 Rno之间存在着传递函数依赖。由于 SnoClass ,ClassSno,ClassDept 所以 Sno与 Dept 之间存在着传递函数依赖。 B、班级 C(Class ,Pname ,Dept,Cnum ,Cyear) 的最小函数依赖集如下 : ClassPname ,ClassCnum ,ClassCyear,Pname Dept. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 由于 ClassPname ,
18、Pname Class ,Pname Dept 所以 C1ass与 Dept 之间存在着传递函数依赖。 C、系 D(Dept,Dno ,Office ,Dnum) 的最小函数依赖集如下: DeptDno ,DnoDept,DnoOffice ,DnoDnum 根据上述函数依赖可知,Dept 与 Office ,Dept 与 Dnum 之间不存在传递依赖。 D、学会 M(Mname ,Myear,Maddr,Mnum) 的最小函数依赖集如下: MnameMyear,Mname Maddr,Mname Mnum 该模式不存在传递依赖。 (3)各关系模式的候选码、外部码,全码如下: A 、学生 S候选码: Sno;外部码: Dept、Class ;无全码 B 、班级 C候选码: Class ;外部码: Dept;无全码 C 、系 D候选码: Dept 或 Dno ;无外部码;无全码 D 、学会 M候选码: Mname ;无外部码;无全码名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -