関係データ操作とSQL
要点と定義
関係代数の選択は条件に合う行を取り出し、射影は指定した列を残します。直積は二つの関係から行を一つずつ選ぶ全組合せを作ります。結合は列どうしの条件を満たす行を組み合わせる演算です。例えば、色が二種類、サイズが三種類なら、直積は色とサイズの組合せ六通りです。
和集合を行うには、二つの関係の次数、つまり列数が同じで、対応する列のドメインがそれぞれ等しい必要があります。列名や行数が同じである必要はありません。
関係代数の射影では同じ値の組を一つにまとめます。SQLで列を選ぶだけでは重複行が残ることがあるため、射影と同じ結果にするには必要に応じてDISTINCTを指定します。ORDER BYは並べ替えを行い、重複は除きません。
副問合せのINや相関副問合せのEXISTSは、別の表に条件を満たす値や行が存在するかを調べる方法です。例えば、注文の品目コードが品目表にある注文を選べます。外側の行ごとに存在を判定するので、内側に一致行が複数あっても、そのことだけで外側の行が増えるわけではありません。
ビューは問合せを定義し、表のように扱う仕組みです。更新可能性は定義全体で判断します。単一の基底表から列を選び、WHEREで行を絞る定義は更新可能になり得ます。重複排除、グループ化、複数表の結合などを含む定義は、一般に更新可能性を損ないます。これは過去の出題で扱った補足です。
結合アルゴリズムのハッシュ法は、結合キーの値からハッシュ値を作って照合するため、等値条件による結合に適用します。これは過去の出題で扱った補足です。
適用条件と例
外部キー制約は、参照する側の行に記録された値が参照先に存在することを求めます。例えば、貸出表の備品番号が備品表を参照する場合、存在しない備品番号を使った貸出行の追加は拒否される可能性があります。
集約を含むビューの問合せ結果は、グループごとに値をまとめてから条件で絞る場合があります。例えば支店別売上なら、支店ごとの合計を求め、その合計に条件を適用します。過去の出題で扱った集計例では、出荷実績数がNULLのグループは「出荷実績数が指定値以下」という条件を満たさず、合計対象から外れます。
この節の続き
- 誤りやすい点
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む