データベースの操作(1)

この記事での学習内容 ITパスポート 基本情報 応用情報

関係データベースのデータの操作として,集合演算(和,差,積,直積),関係演算(選択,射影,結合,商)などを理解する。

用語例:関係代数

データベースの操作

関係データベースにおけるデータ操作には、検索系のデータ操作と更新系のデータ操作があります。

データベースの関係演算

関係データベースにおける主な操作には、選択、射影、結合があり、これらを関係演算といいます。

選択

選択とは、評価ら行を抽出する操作です。すべての行のうち、ある条件に当てはまるものだけを選び出します。多くのレコードから必要なレコードだけに絞り込むための操作です。

選択の条件

選択は、「商品名=ジュース」のように、一つだけの条件で選ぶ以外に、複数の条件をANDまたはORで組み合わせて使うことができます。

例えば、単価が150で、かつ仕入先がB飲料である行を選択する場合、「単価=150  AND  仕入先=B飲料」という、二つの条件をANDで結ぶ論理積の関係になります。

また、仕入先がA食品の行とB飲料である行の両方を選択する場合、「仕入先=A食品  OR  仕入先=B飲料」という、二つの条件をORで結ぶ、論理和の関係になります。

仕入先がA食品以外の行を選択する場合は、「仕入先≠A食品」という否定の関係となります。

ワイルドカード

選択の条件文に、「%」や「_」といったワイルドカードを文字の代わりに用いて、列の内容の一部を使った選択ができます。

  • %: 任意の文字列を表します。文字数は0文字以上で何文字でも構いません。
  • _: 任意の1文字を表します。

上の表の場合、ワイルドカードを用いて以下のように選択できます。

  • 「商品名=%パン」:「クリームパン」「あんパン」「チョコパン」を選択。
  • 「商品名=_ _パン」:「あんパン」を選択。

射影

射影とは、表から列を抽出する操作です。幾つかの列からなる表のうち、必要な列のみを表示し、他を非表示にできます。

結合

結合とは、複数の表を一つに結合して表示する操作です。

別々の表にある共通の項目を結合キーとして表同士を結びつけ、それぞれの表に含まれる列からなる一つの表として表示することができます。

表の結合の際、”のりしろ”となる項目を結合キーといいます。結合キーには同じデータ型、同じ桁数の列同士を使います。
上の例の場合、それぞれの「商品番号」が結合キーとなっています。

二つの表で一方の表と同じ項目を含むレコードを、もうひとつの表から取り出し、その後結果からその項目を削除する。

ビュー表

選択や射影、結合などの結果表示される表のことをビュー表といいます。これに対し、実際に保存されている表のことを実表といいます。

選択も射影も結合も、データベースのスキーマとして作られている表(実表)から、DBMSが必要な部分を読み込んで表示した結果です。実表そのものを変えてしまう操作ではありません。

例えば、結合の操作をすると今までなかった列の組み合わせを持つ表を表示できますが、これによってスキーマに新しい表が追加されるというわけではありません。

きちんと正規化されたスキーマは、選択や射影といった操作でデータを抽出したり組合せたりし易いだけではなく、演算した結果を表示することも可能で、いろいろな用途に利用できます。(正規化のプロセスで導出項目を削除するのは、関係演算の実行時に演算できるため)