データベースとテーブルについて知ろう

前のページでは、SQL は RDBMS とやりとりするんだよ、ということを学びました。

ここでは、RDBMS が内部で管理しているデータベースとテーブルについて理解を深めます。

RDBMS は、データベースとテーブルを複数管理している

RDBMS が内部で管理する対象は、複数のデータベースと、それらのデータベースそれぞれに内包される複数のテーブルとなります。

さきほどのページのイメージ図では、RDBMS は一つの箱として表現していましたが、
実はRDBの頭脳としてRDBMSが存在し、内部には複数のデータベースと、データベースそれぞれに複数のテーブルが入っていたのです。

こんな感じのイメージです。

test

ところで、データベースとテーブルというものは一体何なのでしょう。

そもそもデータベースとかテーブルって何?

SQL という言葉を聞くときに、一緒に"データベース"って言葉もよく耳にするのではないでしょうか。

さて、"データベース"って言葉を聞いたときに連想するものは何でしょうか。データの集まり?

かんたんに説明すると、データベースの中にはたくさんのテーブルと言われるデータを入れる表のようなものが入っており、その関係するテーブルの集まりを、一つのデータベースとして定義します。

Excelで例えると、シートそれぞれがテーブル、ブックそれぞれがデータベースに相当します。

例えば、事業Aと事業Bの2つの事業でデータを貯めたい場合、以下のようにデータベースとテーブルを定義します。

  • 事業 A に関してのみ使用するデータと、事業 B に関してのみ使用するデータは、同じデータベースの中で管理するのではなく、事業 A に関してのみ使用するデータベースと、事業 B に関してのみ使用するデータベースのように、データベースを分けて定義します。

    • 事業 A に関するデータを保管したければ、事業 A のデータベースの中に保管するための場所であるテーブルを必要なだけ定義し、そのテーブルの中にデータを貯めていきます。
    • 一方、事業 B に関するデータを保管したければ、事業 B のデータベースの中にテーブルを必要なだけ定義し、そのテーブルの中にデータを貯めていきます。
  • ツリー状で表すとこのようになります。

    • RDB
      • 事業 A を管理するデータベース
        • 製品コードのテーブル
        • 受注データのテーブル
        • 入金データのテーブル
      • 事業 B を管理するデータベース
        • 従業員データのテーブル
        • 給与データのテーブル
        • 所属部署のテーブル
  • このように、RDBMS は複数のデータベースを持ち、データベースそれぞれが複数のテーブルを持ちます。そして、テーブルそれぞれに実際のデータが入ります。

  • そのため、RDBMS にアクセスする際には予めどのデータベースのデータを使用したいのかを教え、その後に SQL を発行してデータのやりとりを行う流れになります。

    • つまり、基本的にデータベース同士をくっつけて一度に複数のデータベースからデータを引き抜くことは行わず、いずれかのデータベースに限定してデータのやり取りを行う必要があるということです。
    • 例えば、上記の物を作る事業 A を管理するデータベースと、社内の総務関係を管理する事業Bのデータベースをくっつけてデータを一度にやりとりする必要がないのはお分かりかと思います。

まとめ

RDB の頭脳である RDBMS は複数のデータベースを管理することができ、データベースの中には複数のテーブルが入っている。

そして、そのテーブルの中に実際にデータが入っている。

RDBMS と SQL でやりとりをしたい場合には、予めどのデータベースのデータを使用したいのか RDBMS に教えた後、SQL を発行して任意のテーブルとのデータのやり取りを行うことになる。