pulpul 日本の試験

ITサービスマネージャ 概念書 · データベース

SQLによる問い合わせと関係演算

関係データベースでは、表を関係とみなし、SQL文によって必要な行や列を取り出す。その土台となるのが和、差、直積、射影、選択といった関係演算であり、SQLの各句、ビュー、ストアドプロシージャもこの考え方に沿って理解すると整理しやすい。本単元では、集合演算と射影、ビューの仕組み、ストアドプロシージャの利点、集約条件の書き方を扱う。

関係演算と集合演算の仕組み

関係演算は、表の行や列を組み替えて新しい関係を得る操作である。和は、同じ属性構成をもつ二つの関係(和両立な関係)の行をまとめ、同じ行は一度だけ残す演算である。差は一方の関係にだけ含まれる行を取り出す演算であり、直積は一方の各行と他方の各行をすべて組み合わせる演算である。直積では列数が両者の和になり、行数は両者の積になる。二つの関係を合わせて結果を求める問題では、同一の行が一つにまとめられる点が判断の決め手になる。

射影と重複の除去

関係の射影では、指定した属性の値の組が同じ行は一つにまとめられるため、結果には重複が含まれない。SQLのSELECT文は既定で重複行を残すため、関係の射影と同じ結果を得るにはDISTINCTを指定して重複を除く必要がある。一方、ALLは重複行を含めて返す指定であり、射影の結果とは一致しない。 ORDER BYは結果の並び順を指定する句であり、重複を除く働きはない。また、REFERENCESは外部キー制約で参照先を指定する語であり、問い合わせの重複処理には使わない。

ビューの仕組みと更新の制約

ビューは、基の表から定義された問い合わせによって導出される仮想的な表である。ビューの列には基の表とは異なる名称を付けて定義でき、利用者に分かりやすい名前で見せることができる。また、列を選ぶだけでなく、条件を指定して行を抜き出す形でも定義できる。 一方で、複数の表を結合したビューは、結合の方法などによって更新できない場合がある。したがって、ビューを通じて更新を行うときは、そのビューが更新可能かを事前に確認する必要がある。和集合演算を用いたビューも、和両立な表に対して定義できる。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む