問題本文
レコードの関連付けに関する説明のうち,関係データベースとして適切なものはどれか。
選択肢
- ア.複数の表のレコードは,各表の先頭行から数えた同じ行位置で関連付けられる。
- イ.複数の表のレコードは,対応するフィールドの値を介して関連付けられる。
- ウ.レコードとレコードは,親子関係を表すポインタで関連付けられる。
- エ.レコードとレコードは,ハッシュ関数で関連付けられる。
正解
イ. 複数の表のレコードは,対応するフィールドの値を介して関連付けられる。
解説
関係データベース(Relational Database)では、複数の表(テーブル)のレコード間の関連は「対応するフィールドの値」を介して確立される。具体的には、一方の表の主キー(Primary Key)の値が他方の表の外部キー(Foreign Key)として保持され、同一の値を持つレコード同士を結合(JOIN)することで関連付けが実現する。これにより1対多・多対多などの関係を柔軟に表現でき、データの整合性を保ちながらSQLで効率的な検索・結合処理が可能となる。
選択肢ごとの解説
- ア.誤り。「複数の表のレコードは各表の先頭行から数えた同じ行位置で関連付けられる」は関係データベースの仕組みとして誤りである。行位置(物理的な格納順序)は関係DBでは意味を持たず、データの追加・削除により行の物理位置が変わっても論理的な関連(フィールド値による対応)には影響しない。行位置による関連付けは関係モデルの特性に反する。
- イ.正解。関係データベースでは複数の表のレコードは「対応するフィールドの値」(主キー・外部キー等)を介して関連付けられる。例えば「顧客テーブルの顧客ID」と「注文テーブルの顧客ID(外部キー)」が同じ値を持つレコードを結合することで顧客と注文の関連が表現される。これが関係モデルの本質的な仕組みである。
- ウ.誤り。「レコードとレコードは親子関係を表すポインタで関連付けられる」は階層型データベース(Hierarchical Database)の説明である。階層型DBはツリー構造でデータを格納し、ポインタで親子関係を直接参照する方式をとる。関係DBではポインタでなくフィールド値の一致によって論理的な関連を表現する。
- エ.誤り。「レコードとレコードはハッシュ関数で関連付けられる」はハッシュテーブルやハッシュインデックスを使った検索手法の説明であり、データベースのレコード関連付けモデルとして使われる概念ではない。ハッシュ関数はデータの高速検索・アクセスに用いられるが、関係DBにおけるテーブル間の関連付けの仕組みとは異なる。
ITパスポート 2018年 (平成30年 秋期) の過去問一覧へ戻る・問100