数据库理论2

4.12

对于图4-11中的数据库,写出一个查询来找到那些没有经理的雇员。注意一个雇员可能只是没有列出其经理,或者可能有null经理。使用外连接书写查询,然后不用外连接再重写查询。

  • 使用外连接:
1
2


  • 不使用外连接:
1
2
3
4
5
6
7
select emplyee_name
from employee
where not exists
(select employee_name
from manages
where manages.employee_name = employee.employee_name
and manages.manager_name is not null);

4.14

给定学生每年修到的学分总数,如何定义视图tot_credit(year, num_credits)

1
2
3
CREATE VIEW tot_credit AS   
select year,sum(credits)
from takes natural join course group by year;

4.18

假定用户A拥有关系r上的所有权限,该用户把关系r上的查询权限以及授予该权限的权限授予给public。假定用户B将r上的查询权限授予A。这是否会导致授权图中的环?解释原因。

答:会导致授权图的环。

​ 当A将查询权限和授权权限都给了public之后,B是包含在public之中的,所以B也拥有了这两个权限。此时B 再将其查询权限授予了A之后,A还是拥有所有权限。而public和B都拥有查询权限和授予权限,可以相互影响其他人的权限,所有形成了回路。