数据库系统概论书后习题答案第4版 第二章

关系代数 和 ALPHA语言 习题p75
求供应工程J1零件的供应商号码SNO
求供应工程J1零件P1的供应商号码
求供应工程J1零件为红色的供应商号码SNO
求没有使用天津供应商生产的红色零件的工程号JNO;
求至少用了供应商S1所供应的全部零件的工程号JNO;

请大家指教,不知道做的对不对,欢迎联系[email protected]
因为关系代数转sql语句感觉没有ALPHA语言转sql容易,所以只写了ALPHA语言的答案。

ALPHA语言 习题p75

设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:

供应商S(SNO , SNAME , STATUS , CITY)
零件P(PNO , PNAME , COLOR , WEIGHT)
工程J(JNO , JNAME , CITY)
供应情况表SPJ(SNO , PNO , JNO , QTY)

求供应工程J1零件的供应商号码SNO

GET W(SPJ.sno):SPJ.jno = “j1”;

求供应工程J1零件P1的供应商号码

GET W(SPJ.sno):SPJ.jno = “j1” ^ SPJ.pno=”p1”;

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

Range P px
GET W(SPJ.sno):存在px(SPJ.jno = px.jno ^ px.color = “red”);

求没有使用天津供应商生产的红色零件的工程号JNO;

Range S sx,P px,SPJ spjx
GET W(SPJ.jno):不存在spjx(spjx.sno = sx.sno ^ sx.city = “天津” ^ spjx.pno = p.pno ^ p.color = “red”);

Range S sx,P px,SPJ spjx
GET W(SPJ.x):全部spjx(spjx.sno != sx.sno ^ sx.city = “天津” 或者 spjx.pno != p.pno ^ p.color = “red”);

会漏掉暂时还没有供应情况的工程
Range S sx,P px,SPJ spjx
GET W(J.jno):不存在spjx(spjx.sno = sx.sno ^ sx.city = “天津” ^ spjx.pno = p.pno ^ p.color = “red”);

Range S sx,P px,SPJ spjx
GET W(J.jno):全部spjx(spjx.sno != sx.sno ^ sx.city = “天津” 或者 spjx.pno != p.pno ^ p.color = “red”);

求至少用了供应商S1所供应的全部零件的工程号JNO;

思路: 依次检查P中每一个零件,看S1是否供应了该零件。该如果S1供应了这个零件,再看某个工程是否用了这个零件。如果某个工程
用了S1供应的所有零件,那么这个工程可以放入结果集。

表达式涉及的表: J
操作条件涉及的表: SPJ,SPJ

Range SPJ spjx,SPJ spjy,P px
GET W(J.jno): 全部px(
存在spjx(spjx.pno=px.pno ^ spjx.sno = “S1”) => 存在spjy(spjy.pno = px.pno ^ spjy.jno = J.jno)
)

来自为知笔记(Wiz)

时间: 2024-10-16 18:46:17

数据库系统概论书后习题答案第4版 第二章的相关文章

Python核心编程第三版第二章学习笔记

第二章 网络编程 1.学习笔记 2.课后习题 答案是按照自己理解和查阅资料来的,不保证正确性.如由错误欢迎指出,谢谢 1. 套接字:A network socket is an endpoint of a connection across a computer network,Sockets are often represented internally as simple integers, which identify which connection to use. 套接字是网络通信的

Pro ASP.NET Core MVC 第6版 第二章(前半章)

目录 第二章 第一个MVC 应用程序 学习一个软件开发框架的最好方法是跳进他的内部并使用它.在本章,你将用ASP.NET Core MVC创建一个简单的数据登录应用.我将它一步一步地展示,以便你能看清楚怎样构建一个MVC 应用程序.为了让事情简单,我跳过了一些技术细节,但是不要担心,如果你是一个MVC的新手,你将会发现许多东西足够提起你的兴趣.因为我用的东西有些没做解释,所以我提供了一些参考以便你可以看到所有的细节的东西. 安装Visual Studio 要想根据本书实践的话,必须安装Visua

概率论与数理统计严继高1版第二章习题答案(含过程)

这是严继高第一版的答案!!!!!!第二版博客也有目录里面找一下!!! 2.1-2.3和第二版的一样,链接https://www.cnblogs.com/cs-learn/p/9498711.html 以下是2.4-2.7 原文地址:https://www.cnblogs.com/cs-learn/p/9800368.html

Java编程思想第四版第二章练习题答案

练习1:创建一个类,它包含一个int域和一个char域,它们都没有被初始化.将他们的值打印出来,以验证Java执行了默认初始化 public class JavaThinking { private static int i; private static char c; public static void main(String[] args){ System.out.println(i); System.out.println(c); //这里char的默认值为'\u0000'可以这样输出

python核心编程第二版第二章习题

2.1 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 def test_sum(): tup=("1","2","3","6","5") sum=0 for i in tup: sum=float(i)+sum return sum def test11(): while True: string=raw_input(">>") if strin

具体数学第二版第二章习题(2)

16 $x^{\underline{n}}(x-n)^{\underline{m}}=x^{\underline{m}}(x-m)^{\underline{n}}=x^{\underline{n+m}}$ 17 当$m>0$时,有$x^{\overline{m}}=x(x+1)(x+2)..(x+m-2)(x+m-1)$ 当$m=0$时,有$x^{\overline{0}}=1$ 当$m<0$时,有$x^{\overline{m}}=\frac{1}{(x-1)(x-2)...(x-(|m|-

Pro ASP.NET Core MVC 第6版 第二章(后半章)

增加动态输出 整个web应用平台的关注点在于构建并显示动态输出内容.在MVC里,控制器负责构建一些数据并将其传给视图.视图负责渲染成HTML. 从控制器向视图传递数据的一种方式是使用ViewBag 对象,它是一个控制器基类的成员.ViewBag是一个动态对象,你可以给他赋值任意属性给视图来渲染用.代码2-5 演示了如何在HomeController里传递简单对象. Listing 2-5. 设置视图数据 using System; using Microsoft.AspNetCore.Mvc;

王爽《汇编语言》第三版 第二章 寄存器

CPU概述 一个典型的CPU由运算器.控制器.寄存器等器件组成,这些器件靠内部总线相连. 内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其它器件的联系. 8086CPU有14个寄存器 它们的名称为:AX.BX.CX.DX.SI.DI.SP.BP.IP.CS.SS.DS.ES.PSW. 2.1 通用寄存器 8086CPU所有的寄存器都是16位的,可以存放两个字节. 8086上一代CPU中的寄存器都是8位的: 为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用. 1.

汇编语言第三版 第二章 寄存器

问题1.8086CPU的地址总线为20bit,而数据总线为16bit--也就是说每次传输的数据为16bit,那么如何使用16bit的数据总线来实现20bit的地址总线的地址传输? 答:8086CPU使用两个16bit的地址合成一个20bit的物理地址. 16bit A: XXXX 16bit B: XXXX 20bit物理地址的合成 A *16 也就是将A(16进制表示的数值),向左移动一位,然后加上B.A * 16  +  B.物理地址 = 段地址 * 16 + 偏移地址 16bit A: X