基本情報技術者 データベース「関係データベース・正規化・SQL の結合・主キーと参照整合性・トランザクションと ACID・排他制御・インデックス・正規形」の練習問題8問です。解けなかった問題は、各問の解説末尾のリンクから対応する解説記事に進んでください。
Q1. 関係データベースにおける「行(レコード)」が表すものとして、もっとも適切なものはどれですか?
回答
解説
正解は「A」です。
関係データベースはデータを表(テーブル)で管理します。表の行(レコード)は1件分のデータのまとまりを表し、列(属性)はその項目を表します。たとえば社員表なら、1行が1人の社員、列が氏名や部署にあたります。表計算ソフトの1行をイメージすると分かりやすくなります。
B は列見出しの説明、C は結合結果に限定した誤った説明で、いずれも行の意味とは異なるため誤りです。
Q2. データベースの正規化を行う主な目的として、もっとも適切なものはどれですか?
回答
解説
正解は「D」です。
正規化は、表を適切に分割してデータの重複を取り除く設計手法です。重複があると、同じ情報を複数箇所で直す必要が生じ、直し忘れによる矛盾(更新時の不整合)が起きやすくなります。正規化はこれを防ぎ、データの整合性を保ちます。
A は検索速度の最大化を保証するものではなく、B は1表に集約するのは正規化と逆方向、C は暗号化とは別概念なので、いずれも誤りです。
Q3. SQL で複数の表を、共通する列の値をもとに1つに結びつける操作として、もっとも適切なものはどれですか?
回答
解説
正解は「B」です。
JOIN(結合)は、共通する列(たとえば社員表の部署コードと部署表の部署コード)の値をもとに、複数の表を1つに結びつける操作です。これにより、別々の表に分けて保存したデータをまとめて取り出せます。正規化で分割した表を、必要なときに組み合わせ直すための仕組みです。
A は行の並べ替え、C は集計のためのグループ化を指す句で、いずれも表を結びつける操作ではないため誤りです。
Q4. 外部キーと参照整合性の関係として、もっとも適切なものはどれですか?
回答
解説
正解は「C」です。
外部キーは、他の表の主キーを参照する列です。たとえば注文表の「顧客ID」が顧客表の主キーを指す場合、注文表には存在しない顧客IDを登録できないようにします。この「参照先に実在する値だけを持つ」状態を保つことを参照整合性と呼びます。
A は主キーの説明、B は索引(インデックス)の説明、D は外部キーが関係を表す点を否定しており、いずれも誤りです。
Q5. トランザクションが満たすべき性質「ACID」のうち、「処理の途中で中断しても、全部実行されたか、まったく実行されなかったかのどちらかになる」性質として、もっとも適切なものはどれですか?
回答
解説
正解は「A」です。
ACIDはトランザクションが備えるべき4つの性質の頭文字です。このうち原子性(Atomicity)は、一連の処理が「全部成功」か「全部なかったことにする(ロールバック)」のどちらかになる性質を指します。送金で「引き落としだけ成功して入金が失敗」を防ぐ、と考えると分かりやすくなります。
B の一貫性は処理の前後でデータの整合が保たれること、C の耐久性は確定した結果が障害後も残ることを指し、設問の性質とは異なるため誤りです。
Q6. 複数の利用者が同時に同じデータを更新しようとするときの矛盾を防ぐ仕組みとして、もっとも適切なものはどれですか?
回答
解説
正解は「D」です。
排他制御は、あるトランザクションがデータを操作している間、他のトランザクションが同じデータを更新できないようロックをかける仕組みです。これにより、同時更新によるデータの矛盾を防ぎます。会議室を使う間は予約して他の人が入れないようにするイメージです。
A の正規化は設計手法、B のインデックスは検索の高速化、C の結合は表の結びつけで、いずれも同時更新の制御とは別の役割なので誤りです。
Q7. データベースにインデックス(索引)を設ける主な効果として、もっとも適切なものはどれですか?
回答
解説
正解は「B」です。
インデックスは、特定の列の値と行の位置をあらかじめ整理して持っておく仕組みで、その列を条件にした検索を高速化します。本の巻末索引から目的のページへ直接飛べるのと同じ発想です。ただし更新時に索引も保守する必要があり、登録・更新はやや遅くなる面もあります。
A の最大件数や C の暗号化はインデックスの効果ではないため、いずれも誤りです。
Q8. 第1正規形(1NF)が満たすべき条件として、もっとも適切なものはどれですか?
回答
解説
正解は「C」です。
第1正規形(1NF)は、1つのマス(列と行の交点)に値が1つだけ入り、繰り返し項目をなくした状態です。たとえば1行に商品名を複数並べるのをやめ、1商品ごとに行を分けます。これが正規化の出発点で、ここから 2NF・3NF へと段階的に重複を減らしていきます。
A は第2正規形(2NF)、B は第3正規形(3NF)で解消する条件にあたるため、いずれも 1NF の説明としては誤りです。
試験全体の流れを俯瞰したい時は、基本情報技術者 試験全体概要 に戻れます。