平成18年春期試験午前問題 問70

事業本部体制をとっているA社で,社員の所属を管理するデータベースを作成することになった。データベースは表a,b,cで構成されている。新しいデータを追加するときに,ほかの表でキーになっている列の値が,その表に存在しないとエラーとなる。このデータベースに,各表ごとにデータを入れる場合の順序として,適切なものはどれか。ここで,下線は各表のキーを示す。
70.gif

  • 表a→表b→表c
  • 表a→表c→表b
  • 表b→表a→表c
  • 表b→表c→表a
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データベース設計
表a,b,cの列間にある参照関係を整理すると次のようになります。
70_1.gif
表a、表cにデータを追加するときは、そのデータの事業本部コード列の値が、表bの事業本部コード列に存在しなければエラーとなります。表bが空だと、表aと表cには一切データを追加することができませんから、まずは表bに事業本部コードと事業本部名を登録する作業が必要となります。

同様に、表cは{事業本部コード、部門コード}を主キーとしており、表aはそれを参照しているので、表cに事業本部コードと部門コードの組合せを登録した後でなければ、表aにデータを追加することはできません。

したがって、エラーを起こさないためには「表b→表c→表a」の順序でデータを入れなければなりません。

まず外部参照列のないb表にデータを追加し、次にb表を外部参照しているc表にデータを追加、最後にb,c両方の表を外部参照してるa表という順序と考えることも可能です。

Pagetop