跳过正文

数据库-4作业

·401 字· loading · loading ·
Masterlong
作者
Masterlong
熬夜,但是世界之夜
目录
数据库系统 - 这篇文章属于一个选集。
§ 5: 本文

数据库作业 - chapter 4
#

题目1
#

延误航班的三种延误情况
#

列出所有延误航班的性质。

各三种情况:出发未延误,到达延误;出发延误,到达未延误;出发到达均延误。

利用view和natural join,将三种情况组合成一张表的查询形式:

img

create view v1 as(with delay1 as (select Tail_Number from airline where DepDelay > 0) 
 select *, count(*) as cnt1 from delay1 group by Tail_Number); 
 create view v2 as(with delay2 as (select Tail_Number from airline where ArrDelay > 0) 
 select *, count(*) as cnt2 from delay2 group by Tail_Number); 
 create view v0 as (select Tail_Number from v1) union (select Tail_Number from v2); 
create view con1 as 
 select * from v2 where not exists 
 (select * from v1 where v1.Tail_Number = v2.Tail_Number); 

create view con2 as 
 select * from v1 where not exists 
 (select * from v2 where v1.Tail_Number = v2.Tail_Number); 
 create view con3 as select * from v1 natural join v2; 


 select * from v0 natural left outer join con2 
 natural left outer join con1 where cnt1 is not null or cnt2 is not null
 union all 
 select * from con3;

各机场与航班延误的关系
#

列出各机场始发、到达及总的延误次数,组合为一张表的查询形式。

img
利用view和natural join:

create view v1 as(with delay1 as (select Origin as City from airline where DepDelay > 0) 
 select *, count(*) as cnt1 from delay1 group by City); 
 create view v2 as(with delay2 as (select Dest as City from airline where ArrDelay > 0) 
 select *, count(*) as cnt2 from delay2 group by City); 
 select *, (cnt1+cnt2) as total from 
 v1 natural join v2 
 order by total desc;

航班目的地与始发地对延误的影响
#

列出各城市始发、到达及总的延误次数,组合为一张表的查询形式。

img
利用view和natural join:

create view v1 as(with delay1 as (select OriginCityName as City from airline where DepDelay > 0) 
 select *, count(*) as cnt1 from delay1 group by City); 
 create view v2 as(with delay2 as (select DestCityName as City from airline where ArrDelay > 0) 
 select *, count(*) as cnt2 from delay2 group by City); 
 select *, (cnt1+cnt2) as total from 
 v1 natural join v2 
 order by total desc;

题目2
#

假设我们有三个关系 R(A, B)、S(B, C) 和 T(B, D),所有属性都被声 明为非空。 a. 给出关系 R、S 和 T 的实例,使得在 (R NATURAL LEFT OUTER JOIN S) NATURAL LEFT OUTER JOIN T 的结果中,属性 C 具有空 值,但属性 D 具有非空值。 b. 是否存在关系 R、S 和 T 的实例,使得 R NATURAL LEFT OUTER JOIN (S NATURAL LEFT OUTER JOIN T) 的结果对于 C 具有空值, 但对于 D 具有非空值?解释为什么或为什么不。

a.

不妨令R、S、T分别为:

B C
5 6
6 7
A B
1 2
2 3
B D
2 3
3 4
A B C D
1 2 NULL 3
2 3 NULL 4

结果是:

b. 显然不存在。在(S NATURAL LEFT OUTER JOIN T)的步骤中,连接得到的新表属性(B, C)必然都不为空(S的部分)。当R对它再进行NATURAL LEFT OUTER JOIN时,C、D属性只有两种大的情况:

要么C、D属性都具有空值(R中B属性与后者没有相等的);要么C不具有空值,D或为空值,或不为(B属性相等,连接得到C、D属性与(S NATURAL LEFT OUTER JOIN T)相同)。总之,不存在“结果对于C具有空值,但对于D具有非空值”的情况。

数据库系统 - 这篇文章属于一个选集。
§ 5: 本文

相关文章

数据库-3作业
·386 字· loading · loading
数据库-c1&2作业
·251 字· loading · loading
数据库-1
·125 字· loading · loading