第五章 完整性约束与模式分解――习题
问答题
问答第1题:
考虑如下关系数据库:
employee (person-name, street, city)
works (person-name, company-name, salary)
company (company-name, city)
manages (person-name, manager-name)
给出该数据库的SQL DDL定义。指出其应具有的参照完整性约束,并将它们在DDL中表示出来。
问答第2题:
考虑视图branch-cust,其定义如下(基于本章示例所用的关系模式和关系):
create view branch-cust as
select branch-name, customer-name
from depositor, account
where depositor.account-number = account.account-number
假设这一视图被实体化,也就是说,这一视图被计算并存储。请利用触发器来维护这一视图,即在depositor或account上进行插入和删除时要保持视图最新,维护数据库的一致性。不必考虑更新的情况。
问答第3题:
给出下图中的关系所满足的所有函数依赖。
问答第4题:
给定关系模式R=(A,B,C,G,H,I)及函数依赖集:
A→B
A→C
CG→H
CG→I
B→H
根据Armstrong公理证明以下函数依赖成立:
⑴A→H;
⑵CG→HI;
⑶AG→I。
问答第5题:
假设我们将模式R =(A,B,C,D,E)分解为模式(A,B,C)和模式(A,D,E)。如果有如下函数依赖集F:
A→BC
CD→E
B→D
E→A
证明该分解是无损连接分解。