数据库系统概论第五版第三章 第五章课后习题

课本第三章课后第五大题、  第五章第六题

建供求表

 create table S(
sno char(10) unique,
sname char(20),
statu smallint,
city char(20)
);
create table P(
pno char(10) unique,
pname char(20),
color char(9),
weigh smallint
);
create table J(
jno char(10) unique,
jname char(40),
city char(20)
);
create table spj(
sno char(10),
pno char(10),
jno char(10),
qty int
);

insert 
into S(sno,sname,statu,city)
values('s1','
精益',20,'天津');
insert 
into S(sno,sname,statu,city)
values('s2','盛锡',10,'北京');
insert 
into S(sno,sname,statu,city)
values('s3','东方红',30,'北京');
insert 
into S(sno,sname,statu,city)
values('s4','丰盛泰',20,'天津');
insert 
into S(sno,sname,statu,city)
values('s5','为民',30,'上海');

insert 
into P(pno,pname,color,weigh)
values('p1','螺母','红',12);
insert 
into P(pno,pname,color,weigh)
values('p2','螺栓','绿',17);
insert 
into P(pno,pname,color,weigh)
values('p3','螺丝刀','蓝',14);
insert 
into P(pno,pname,color,weigh)
values('p4','螺丝刀','红',14);
insert 
into P(pno,pname,color,weigh)
values('p5','凸轮','蓝',40);
insert 
into P(pno,pname,color,weigh)
values('p6','齿轮','红',30);

insert 
into J(jno,jname,city )
values('j1','三建','北京');
insert 
into J(jno,jname,city )
values('j2','一汽','长春');
insert 
into J(jno,jname,city )
values('j3','弹簧厂','天津');
insert 
into J(jno,jname,city )
values('j4','造船厂','天津');
insert 
into J(jno,jname,city )
values('j5','机车厂','唐山');
insert 
into J(jno,jname,city )
values('j6','无线电厂','常州');
insert 
into J(jno,jname,city )
values('j7','半导体厂','南京');

insert 
into spj(sno,pno,jno,qty)
values('s1','p1','j1',200);
insert 
into spj(sno,pno,jno,qty)
values('s1','p1','j3',100);
insert 
into spj(sno,pno,jno,qty)
values('s1','p1','j4',700);
insert 
into spj(sno,pno,jno,qty)
values('s1','p2','j2',100);
insert 
into spj(sno,pno,jno,qty)
values('s2','p3','j1',400);
insert 
into spj(sno,pno,jno,qty)
values('s2','p3','j2',200);
insert 
into spj(sno,pno,jno,qty)
values('s2','p3','j4',500);
insert 
into spj(sno,pno,jno,qty)
values('s2','p3','j5',400);
insert 
into spj(sno,pno,jno,qty)
values('s2','p5','j1',400);
insert 
into spj(sno,pno,jno,qty)
values('s2','p5','j2',100);
insert 
into spj(sno,pno,jno,qty)
values('s3','p1','j1',200);
insert 
into spj(sno,pno,jno,qty)
values('s3','p3','j1',200);
insert 
into spj(sno,pno,jno,qty)
values('s4','p5','j1',100);
insert 
into spj(sno,pno,jno,qty)
values('s4','p6','j3',300);
insert 
into spj(sno,pno,jno,qty)
values('s4','p6','j4',200);
insert 
into spj(sno,pno,jno,qty)
values('s5','p2','j4',100);
insert 
into spj(sno,pno,jno,qty)
values('s5','p3','j1',200);
insert 
into spj(sno,pno,jno,qty)
values('s5','p6','j2',200);
insert 
into spj(sno,pno,jno,qty)
values('s5','p6','j4',500); 

 

 

Selectdistinct sno

From spj

Where  jno=’j1’ and pno in(

Selectpno

Fromp

         Where color=’红’

);

P71

select distinct sno from spj

where jno='j1'

 

 

select distinct sno from spj

where jno='j1' and pno='p1'

 

select sno

from spj

where jno='j1' and pno in(

      select pno

      from p

      where color='红'

      )

select jno
from j
where not exists(
select * 
from spj
where sno in(
select sno
from s
where city='天津'
)
and   pno in(
select pno
from p
where color='红')
and spj.jno=j.jno
)

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

select jno
from j
where not exists(
select *
from spj,s,p
where spj.sno=s.sno
and spj.pno=p.pno
and s.city='天津'
and p.color='红'
and jno=j.jno

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

select jno

from j

where not exists (

      select *

      from spj x

      where x.sno='s1' and not exists(

                       select *

                       from spj y

                       where y.pno=x.pno and

                       y.jno=j.jno and

                       y.sno='s1'

      )

)


第二章 关系数据库 1 .试述关系模型的三个组成部分。 答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 2 .试述关系数据语言的特点和分类。 答:关系数据语言可以分为三类: 关系代数语言。 关系演算语言:元组关系演算语言和域关系演算语言。 SQL:具有关系代数和关系演算双重特点的语言。 这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。 3 (略) 4 . 5 . 述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空? 答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。即属性F本身不是主属性,则可以取空值,否则不能取空值。 6.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: 1)求供应工程J1零件的供应商号码SNO: πSno(σJno=‘J1’(SPJ)) 2)求供应工程J1零件P1的供应商号码SNO: πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ)) 3)求供应工程J1零件为红色的供应商号码SNO: πSno(πSno,,Pno(σJno=‘J1‘ (SPJ))∞πPno(σCOLOR=’红‘ (P))) 4)求没有使用天津供应商生产的红色零件的工程号JNO: πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P) 5)求至少用了供应商S1所供应的全部零件的工程号JNO: πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ)) 7. 试述等值连接与自然连接的区别和联系。 答:连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。 8.关系代数的基本运算有哪些 ? 如何用这些基本运算来表示其他运算? 答:并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值