ソフトウェア開発技術者平成18年春期 午前問70

問70

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

分類

テクノロジ系 » データベース » データベース設計

正解

解説

表a,b,cの列間にある参照関係を整理すると次のようになります。
70_1.gif/image-size:374×230
表a、表cにデータを追加するときは、そのデータの事業本部コード列の値が、表bの事業本部コード列に存在しなければエラーとなります。表bが空だと、表aと表cには一切データを追加することができませんから、まずは表bに事業本部コードと事業本部名を登録する作業が必要となります。

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

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

まず外部参照列のないb表にデータを追加し、次にb表を外部参照しているc表にデータを追加、最後にb,c両方の表を外部参照してるa表という順序と考えることも可能です。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop