【本サイトではGoogleアドセンス、または、アフィリエイト広告を利用しています。】
データベースとは?
データベースとは、ある一定のルールで整理されたデータの集まりです。
ある一定のルールとは、決められた情報フォーマットや登録方法のことです。
普段インターネットをしたり、仕事でシステムを使ったりすると、
データを登録したり、データを検索して情報を仕入れることがあります。
データベースは、システムを開発する上で必須のものです。
では、どんな構造になっているんでしょう?
データベースの構造を知っておくことは、データを取り扱う上で重要なことです。
今から1つ1つ見ていきましょう!
RDB(リレーショナルデータベース)とは?
データベースにもいろいろと種類があるのですが、Webシステムの開発に使うデータベースのほとんどは
RDB(リレーショナルデータベース)と呼ばれるものです。
RDBとは、データを表の集まりとして管理するデータベースのことです。
例えば、お店を経営するとなった時に、顧客情報や売上情報をExcelの表で管理することがありますが、
RDBにおけるデータ管理の考え方もそれと同じです。
表と表がお互いに関係を持つ構造で管理されるので、
リレーショナルデータベース、または、関係データベースとも呼ばれます。
RDBMS(リレーショナルデータベース管理システム)とは?
RDBMS(リレーショナルデータベース管理システム)とは、
RDBで取り扱うデータを管理するためのソフトウェアです。
RDBMSでは、SQLという言語を使ってデータを登録したり、削除したりします。
同じものと勘違いされがちですが、RDBとRDBMSは別物です。
RDBのデータをRDBMSで管理するということで覚えておいてください。
RDBには主に以下のような種類があり、Webシステムの開発などでよく使われています。
サーバーとデータベースの関係
データベースはハードではなくソフトなので、サーバーの中にインストールされています。
つまり、サーバーのストレージ(HDDやSSD)の中にデータベースがソフトとして入っているということです。
一見あたり前のように思いますが、このイメージはとても大切です。
データベースと表領域とスキーマの関係
データベースの中には、表領域というものがあります。
表領域とは、RDBのデータを保存するために確保した領域のことです。
つまり、サーバーのストレージにデータを書き込むために、RDBがあらかじめ場所を予約しておくのです。
表領域は1つではなく、複数存在し、表領域によって役割が異なります。
また、表領域の中には、スキーマというものが定義されます。
スキーマとは、データベースの構造のことです。
1つのシステムを開発する時、複数の表を使ってそのデータを管理します。
複数の表はお互いに関係があって、線でつなぐと構成図が出来上がります。
つまり、それら全体を1つの構造として説明できる表の集まりのことをスキーマと呼んでいます。
また、スキーマは表領域をまたいで定義することができます。
そして、表領域は複数のスキーマのデータを持つことができます。
(お互いに束縛する関係にありません。)
スキーマとテーブルの関係
スキーマの中には、テーブルと呼ばれるものが複数あります。
テーブルとは、データのカテゴリごとに定義された表のことです。
もう少しわかりやすく例えると、
部屋の物を整理する時に、服、おもちゃ、本など、種類ごとに用意する箱のイメージです。
システムから入力されたデータは、SQLによってテーブルに登録されます。
テーブルが複数のスキーマをまたぐことはありません。
いずれか1つのスキーマに所属します。
逆に、スキーマが別のスキーマのテーブルを保持することもありません。
テーブルとレコードとカラムの関係
テーブルの中には、レコードが複数あります。
レコードとは、テーブルの中にある1つのデータのことです。
例えば、果物屋さんの商品情報をテーブルにすると、「りんご」や「みかん」がそれぞれのレコードになります。
また、レコードの中には、カラムが複数あります。
カラムとは、レコードが持つ1つの項目のことです。
例えば、人の情報を管理するレコードが1件あった時、「名前」や「年齢」がぞれぞれのカラムになります。
スキーマとユーザーの関係
データベースにおけるユーザーとは、スキーマにあるテーブルのレコードを扱う為のアカウントのことです。
簡単に言えば、データベースに入る為の会員証です。
スキーマとユーザーは1対1の関係になります。
常にセットで扱う必要があるので、ユーザーを削除する時はスキーマも同時に削除されます。
また、多くのデータベースでは、基本的にスキーマとユーザーは同じ名前で管理されます。
レコードにアクセスする流れ
ここまでの内容を踏まえて、私たちがデータベースの情報を見る流れを整理してみましょう。
このような流れでデータベースのデータを見つけに行くんですね!
ちなみに、対象のスキーマやテーブル、レコードの指定は、SQLで行います。
データファイルと表領域の関係
ここまで、RDBMSというソフトウェア上のデータ管理構造についてお話をしましたが、
サーバー上にできるファイルとデータベースの関係についても少しお話をしておきます。
パソコンのファイルと同じように、データベースのデータはサーバー上のファイルで管理されます。
データベースを扱う為にRDBMSでは表領域を作成しますが、
その際、サーバー上ではデータファイルと呼ばれるファイルが作成されます。
データファイルとは、表領域に保管するデータを扱う為のファイルです。
データファイルは、1つの表領域のみ扱います。
また、表領域には、複数のデータファイルが紐づくこともあります。
スキーマは複数の表領域をまたぐ為、データファイルも複数またぐことになります。
データを参照する上でここまで意識して操作をする必要はありませんが、
データベースの管理操作を行う時に必要となるので覚えておくと役に立ちます。
データベースの基礎 まとめ
データベースの基礎について以下説明しました。
データベースの種類はいろいろありますが、基本的な仕組みや構造は基本的に同じです。
SQLを扱う際にも、データベースの構成を知っているのと知らないのとでは、
作成したSQL構文の効率性に大きな差が出てくるので、
ここに出てくる内容はしっかり理解しておくようにしましょう!