データベーススペシャリスト過去問令和5年午後1問3設問2(5)の解説
2024年08月18日
データベーススペシャリストで、令和5年午後1問3(5)について、答え合わせをしていて、理解に時間がかかった箇所があったので、解説したいと思います。
問題(5)
表7中のイ~カに入れる手順を、それぞれ次の①~⑤の中から1つ選べ。①~⑤が全て使われるとは限らない。ただし、バックアップの取得と索引の保守については考慮しなくてよい。
区分化前
1.圃場カレンダに翌年の行を追加する。
2.イ’(①圃場カレンダから古い行を削除する)
3.圃場カレンダを再編成する
4.ゥ(④観測を再編成する)
区分化後
1.圃場カレンダに翌年の行を追加する
2.観測に翌年度の区分を追加する
3.エ(⑤観測から古い区分を切り離す)
4.オ(①圃場カレンダから古い行を削除する)
5.カ(②圃場カレンダを再編成する)
解説
私は、この問題の中で回答にある③「観測から古い行を削除する」が、なぜ含まれないのかと疑問に思いました。
問題に、「5年以上前の不要な行を効率よく削除し」とあるためです。
しかし、それは問題文をよく読むと、理由が分かりました。
表2の「観測」テーブルの定義についてを読んでいるのですが、よく見ると、観測テーブルには外部キーにON DELETE CASCADE がついているのです。
FOREIGN KEY(観測日付、圃場ID) REFERENCES 圃場カレンダ(標準日付、圃場ID) ON DELETE CASCADE
このため、圃場カレンダの外部キーの行が削除されると、合わせて観測テーブルも削除される仕様になっているというわけです。
そのため、どちらの手順においても、観測から古い行を削除する必要がないわけです。
また、区分化後では、観測テーブルについては年度ごとに区分化がされているため、該当の古い区分を切り離すだけで、観測テーブルの再編成は必要がないということになります。