题目:

设有一个SPJ 数据库,包括S、P、J 及SPJ4 个关系模式
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。
今有若干数据如下:

试用关系代数完成如下查询:SPJ
(1)求供应工程J1 零件的供应商号码SNO;
(2)求供应工程J1 零件P1 的供应商号码SNO;
(3)求供应工程J1 零件为红色的供应商号码SNO;
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
(5)求至少用了供应商S1 所供应的全部零件的工程号JNO。

答案

(1)
ΠSNO(σJNO=‘J1’(SPJ))
(2)
ΠSNO(σJNO='J1’∧PNO=‘P1’(SPJ))
(3)
ΠSNO(ΠJNO,PNO(σJNO=‘J1’(SPJ))∞ΠPNO(σCOLOR=‘红’ ( P) ))
(4)
ΠJNO(J)-ΠJNO(ΠSNO(σCITY=‘天津’(S))∞ΠPNO(σCOLOR=‘红’( P))∞ΠSNO,JNO,PNO(SPJ))
(5)
ΠJNO,PNO(SPJ)÷ΠPNO,SNO(σSNO=‘S1’(SPJ))

说明:把这段代码复制到软件上一步步运行即可出现题目要求的表,以及题目的答案;每道题SQL查询语言和关系代数查询语言在后面。想自己操作的话可以复制到软件上运行下。

--创建数据库
CREATE DATABASE SPJ
--使用数据库
USE SPJ
--创建S表
CREATE TABLE S(
SNO CHAR(10) PRIMARY KEY,
SNAME CHAR(50) UNIQUE,
STATUS INT,
CITY CHAR(20))
--添加数据到S表
INSERT INTO S(SNO,SNAME,STATUS,CITY)
VALUES('S1','精益',20,'天津'),
('S2','盛锡',10,'北京'),
('S3','东方红',30,'北京'),
('S4','丰泰盛',20,'天津'),
('S5','为民',30,'上海')
--检验
SELECT * FROM S
--创建P表
CREATE TABLE P(
PNO CHAR(10) PRIMARY KEY,
PNAME CHAR(50) ,
COLOR CHAR(20),
WEIGHT INT)
--添加数据到P表
INSERT INTO P(PNO,PNAME,COLOR,WEIGHT)
VALUES('P1','螺母','红',12),
('P2','螺栓','绿',17),
('P3','螺丝刀','蓝',14),
('P4','螺丝刀','红',14),
('P5','凸轮','蓝',40),
('P6','齿轮','红',30)
--检验
SELECT * FROM P
--创建J表
CREATE TABLE J(
JNO CHAR(10) PRIMARY KEY,
JNAME CHAR(50) UNIQUE ,
CITY CHAR(20))
--添加数据到J表
INSERT INTO J(JNO,JNAME,CITY)
VALUES('J1','三建','北京'),
('J2','一汽','长春'),
('J3','弹簧厂','天津'),
('J4','造船厂','天津'),
('J5','机车厂','唐山'),
('J6','无线电厂','常州'),
('J7','半导体厂','南京')
--检验
SELECT * FROM J
---创建SPJ表
CREATE TABLE SPJ(
SNO CHAR(10),
PNO CHAR(10),
JNO CHAR(10),
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),
)
--添加数据到SPJ表
INSERT INTO SPJ(SNO,PNO,JNO,QTY)
VALUES ('S1','P1','J1',200),
('S1','P1','J3',100),
('S1','P1','J4',700),
('S1','P2','J2',100),
('S2','P3','J1',400),
('S2','P3','J2',200),
('S2','P3','J4',500),
('S2','P3','J5',400),
('S2','P5','J1',400),
('S2','P5','J2',100),
('S3','P1','J1',200),
('S3','P3','J1',200),
('S4','P5','J1',100),
('S4','P6','J3',300),
('S4','P6','J4',200),
('S5','P2','J4',100),
('S5','P3','J1',200),
('S5','P6','J2',200),
('S5','P6','J4',500)
--检验
SELECT * FROM SPJ--题目:试用关系代数完成如下查询:SPJ
--(1)求供应工程J1 零件的供应商号码SNO;
SELECT * FROM SPJ
WHERE JNO='J1'
--关系代数:ΠSNO(σJNO=‘J1’(SPJ))
--(2)求供应工程J1零件P1的供应商号码SNO:
SELECT * FROM SPJ
WHERE JNO='J1'AND PNO ='P1'
--关系代数:ΠSNO(σJNO='J1'∧PNO='P1'(SPJ))
--(3)求供应工程J1零件为红色的供应商号码SNO:
SELECT * FROM SPJ
WHERE JNO = 'J1' AND PNO IN (
SELECT PNO FROM P
WHERE COLOR='红')
--关系代数:ΠSNO(ΠJNO,PNO(σJNO='J1'(SPJ))∞ΠPNO(σCOLOR='红'(P)))
--(4)求没有使用天津供应商生产的红色零件的工程号JNO:
SELECT JNO FROM J
WHERE JNO NOT IN(
SELECT JNO FROM SPJ,P,S
WHERE S.CITY='天津'
AND P.COLOR='红'
AND SPJ.PNO=P.PNO
AND SPJ.SNO=S.SNO
)
--关系代数:ΠJNO(J)-ΠJNO(ΠSNO(σCITY='天津'(S))∞ΠPNO(σCOLOR='红'(P))∞ΠSNO,JNO,PNO(SPJ))
--解析:减法运算中被减的部分是使用了天津供应商的红色零件的所有工程号,
--ΠJNO(J)是全部工程的工程号,两者相减就是题意了
--(5)求至少用了供应商S1所供应的全部零件的工程号JNO:
--由于VFP不允许子查询嵌套太深,将查询分为两步
--A、查询S1供应商供应的零件号
SELECT PNO FROM SPJ WHERE SNO='S1'--结果是(P1,P2)
--B、查询哪一个工程既使用P1零件又使用P2零件。
SELECT * FROM SPJ
WHERE PNO='P1'
AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2')--结果是J4
--关系代数:ΠJNO,PNO(SPJ)÷ΠPNO,SNO(σSNO='S1'(SPJ))

数据库系统原理--第2章作业2--习题答案相关推荐

  1. 数据库系统原理--第2章作业1--习题答案

    说明:数据库系统原理相关的习题答案都在"数据库系统原理"专栏 1.已知三个域:男人={李基,张鹏},女人={王方,刘玉 },子女={李键,张睿,张峰}.这一组域(男人,女人,子女) ...

  2. 《数据库系统原理》课程大作业——音响店VCD零售/出租管理系统(SQL Server)

    <数据库系统原理>课程大作业 课题名称:音响店VCD零售/出租管理系统 温馨提示:本文主要为了应付结课检查,仍有很多尚未完善的内容,不规范的画图之类的,忘读者谨慎食用

  3. 大学物理学(第5版)下(第14章)课后习题答案

    大学物理学(第5版)下 第9章 静电场 课后习题答案    第10章 稳恒磁场   课后习题答案      第11章 变化的电磁场   课后习题答案  第12章 光的干涉   课后习题答案  第13章 ...

  4. 网上作业c语言第三章,c语言 第3章 作业 和部分答案.doc

    网纤撤碟如背禄帆枉耸屉簿贝妙除崩凸痉篱堤匹糟隙碗挞渗福葫椅眶涂臆蹄碌整塌系亦勇蓬骡穿惊淬灼绝糠谈坊拽窝溢监怠敦惭肿昆歌慧晴秆氰圃嫩觅舅产涯梧脂魄攫阻修比琢芒涣墩促靡程断奶割字侍讽舵祥宛铅取芝饰傅坡龋减 ...

  5. 《工程伦理》网课1-13章作业单元考核答案完整版

    <工程伦理>网课1-13章作业单元考核答案完整版: 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第十二章 第十三章

  6. 速学堂第七章作业编程题答案(自写)

    速学堂第七章作业编程题答案 1. 数组查找操作:定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出&q ...

  7. 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第9章 结构 课后习题答案

    浙大版<C语言程序设计>第四版(何钦铭颜晖) 第9章 结构 课后习题答案 你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可 ...

  8. 计算机网络第二章物理层部分习题答案

    计算机网络第二章物理层部分习题答案 2-01 物理层要解决哪些问题?物理层的主要特点是什么? 答:物理层要解决的主要问题: (1)物理层要尽可能地屏蔽掉物理设备和传输媒体,通信手段的不同,使数据链路层 ...

  9. 计算机网络--第一章 概述--课后习题答案

    计算机网络原理第五版课后的全部习题答案,学习通作业答案. 说明:计算机网络原理其他章节的习题答案也在此"计算机网络"专栏. 1-01 计算机网络向用户可以提供那些服务? 答: 连通 ...

最新文章

  1. KOA 在typescript下编译找不到模板render和session错误的解决
  2. 有计算机二级证书当兵有好处吗,大学生拿到这个证书可享受的福利,当兵有什么不一样?...
  3. 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅消费
  4. 002.iSCSI服务端配置
  5. 用telnet命令,POP3接收邮件
  6. Spark Streaming(二)Flume
  7. 使用WeexSDK,网络请求信任证书的问题
  8. chkconfig命令会立即生效吗_UG绘制波纹管,整体变形命令你会用吗?
  9. 怎么用ai做出适量插画_怎么用最简单的方法,做出最炫酷的数据可视化图表?...
  10. P2415 集合求和(python3实现)
  11. Google Maps API 进级:在信息窗口GInfoWindow中嵌入Flash动画
  12. JavaScript——面向对象(封装)
  13. qt 等待线程结束_实战PyQt5: 128-使用多线程进行并行处理
  14. android 结束if循环_几款Android反编译器对循环结构的还原能力测试记录
  15. osea/Beat Classification 4.0-4.2
  16. (转)Apache服务器使用.htaccess实现图片防盗链方法教程
  17. html tooltips效果,CSS3+jQuery轻松实现工具提示(Tooltips)
  18. 虚拟机ubuntu左侧和上方工具栏消失
  19. 利用div实现遮罩层效果
  20. 标识符---概述及组成规则

热门文章

  1. 如何正确使用TreeView的HitTest方法?
  2. 计算机操作电脑试题评分标准,2014计算机一级上机试题(1—5套)评分标准.docx
  3. 批量拿webshell工具【最新】
  4. 第一个HTML页面如何写?—零基础自学网页制作
  5. Android开发最近新闻和功能都在这里了
  6. github-创建新branch
  7. MATLAB三点确定圆
  8. python3的numpy包中的numpy.logspace解析
  9. open falcon mysql参数_open-falcon 监控MySQL及自定义监控指标
  10. ubc本科计算机雅思要求,加拿大各大学的雅思要求