第五章 完整性约束与模式分解――习题

问答题

问答第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
证明该分解是无损连接分解。