[DB]データベース・リレーショナルデータベースとは

Backend

# # #

データベースとリレーショナルデータベースとは何か、なるべく初心者にも分かるようわかりやすく簡単に説明する。

また、DBMSとは何か、SQL文とは何かに関しても簡単に説明する。リレーショナルデータベースに関して簡単な例も紹介。


データベースとは?

整理されたデータの集まりであり、貯めたデータを活用するための仕組み。

まずは実際にデータベースを見てみよう。

id, 名前、住所、電話番号で構成された表が確認できる。

これはデータベースに接続するシステム「phpMyAdmin」で作成したデータベース。

仮の会員登録した人リストを作成して見た。

実際のサービスもこういった形で表が作られ、何千、何万という情報が管理されるようになる。


データベースはどのように使われているのか?

データベースで使われている事例として、ショッピングサイトでの検索などが挙げられる。

例えばショッピングサイトで本を検索すれば、本の商品一覧が出てくるはずだ。


この裏側ではデータベースに溜まっている本の商品だけを整理し、画面に表示させる操作が行われている。

このように、集まった情報を上手に整理、区分けして活用できるのがデータベースの特徴になる。

データベースはどんな情報を管理しているのか?

データベースは様々なWebサービスやシステムで使われる。

例えば一例を挙げる。

  • ショッピングサイト1:商品情報(名前、値段、在庫など)
  • ホテルや旅館:顧客情報(名前、電話番号、住所など)
  • SNS:顧客情報(名前、パスワード、アカウント名、投稿内容など)

などが挙げられる。


データベースを使うには?

データベースの機能を自分で1から作るにはかなりの労力がかかる。

そこで、予めデータベースの機能が用意されているDBMS (Database Management System / データベース管理システム)というソフトウェアを使うことができる。


DBMSとは?

DBMS (Database Management System / データベース管理システム)とは、データベースのデータの整理だったり、検索など、データの扱いが簡単にできるようにサポートしてくれるシステム。


例えばどんなDBMSがある?

下記がDBMSの例としてあげられる。

  • MySQL
  • Oracle
  • PostgreSQL


DBMSにはどんな機能が揃ってるの?

DBMSには下記の機能が備わっている。


データの登録、更新、削除

データ操作に関しての基本的な機能。


不正なデータ登録やデータ更新をブロック

例えば、データベース操作のやり方を知っている悪質な人物がデータベースのデータを削除するメッセージを送った時など、不正なデータ更新をブロックできる。


複数のユーザー間でデータを共有

複数のユーザーで同時にデータ操作を行える。


ユーザーのアクセス権限を設定

ユーザーAはどこからどこまでデータ操作ができるのかなど、権限を設定できる。



データベースのメリット

データベースのメリットは一体なんだろうか。

大量のデータを高いセキュリティで保護できる

データベースだと大量のデータを高いセキュリティ環境で保護できる。

エクセルとかだとデータの保存量に限りがあるし、各自のPCでデータを保存もできてしまうので、セキュリティ的によくない。


複数人で同時に利用できる。

データベース上では、複数人が同時に作業ができる。


データの抽出や分析が便利

データベースは単にデータを集めるための道具ではなく、集めたデータを様々な形で簡単に抽出したり編集できるのがメリット。

例えば「会員登録のリストから神奈川県の人だけ抜き出したい」、という場合だったり、「商品在庫で在庫が5つ以下の商品を見つけたい」という場合など、

様々な条件がある中、バラバラなデータの中から簡単にデータを抽出することができる。


データベースの種類

データベースには三つの種類がある。

  1. 階層型データベース
  2. ネットワーク型データベース
  3. リレーショナルデータベース

の三つがある。

リレーショナルデータベースとは、三種類あるデータベースのうちの一つとなる。


リレーショナルデータベースとは

データを行と列の表として整理し、エクセルのような表形式でデータを管理することができる。

また複数の表を組み合わせてみることで、複雑に関連している情報もシンプルに見ていくことができる。


エクセルのような表で管理

リレーショナルデータベースのデータ管理の特徴としては、エクセルのような表をイメージすると分かりやすい。

横列のデータのことを「レコード」とよび、「行」にあたる。

縦は「カラム」と呼ばれ、「列」に当たる。

このレコードとカラムを組み合わせた表を「テーブル」と呼ぶ。


リレーショナルデータベースのイメージ


複数の表を繋げてシンプルに管理

リレーショナルデータベースでは、複数の表を繋げて、複雑に関連している情報をシンプルにみることができる。

今回の一例として登山をあげる。

例えば登山者情報と山情報をそれぞれテーブルで管理しているとする。

登山者テーブル:

山テーブル:

ここで二つの表を繋げることで、「誰がどの山を登ったのか」という情報を管理することができる。

例えば「山テーブル」に「登山者ID」を作成し、誰がどこに登ったかを、IDで表記する。

リレーショナルデータベースについて


すると登山者IDが山の情報と紐づくことで、誰がどこの山に行ったかが把握できる。

山テーブルの表にも、登山者IDだけ書けば良いので、名前、住所、電話番号など重複して書く必要がなくなり、シンプルになった。

実際にphpMyAdminで繋げたテーブルを検索すると、下記のように確認できる。

こうして、表をシンプルに保ちつつもデータを関連づけることによって、多くのデータの管理を可能としている。


DBMSを操作する言語、SQL

ではDBMSを操作するには何が必要なのか?

ここでSQLが登場する。

SQLとはデータベース用言語で、データベースに命令する時に使う。

上記の例で挙げた、MySQLやOracle、PostgreSQLなどはSQLで操作することができる。


SQLの命令文の例

SQLの命令文として、基本的なものとして下記が挙げられる。

  • SELECT:データ検索
  • INSERT:データ追加
  • UPDATE:データ更新
  • DELETE:データ削除
  • WHERE:条件を絞って検索

などが挙げられる。

SQL文の使い方は詳しくはこちらに書いた。

[DB / MySQL] データベースを扱う基本SQL文一覧とSQL文の書き方

続きを見る


SQLはターミナルで操作

SQLはMACであれば、ターミナルで操作する。

ここではイメージだけ見てもらえればと思う。上記ではSQLで下記のことをやっている。

  • show databases; ... 全てのデータベースを表示
  • use hiking; ... 「hiking」というデータベースを使うよう指示
  • select * from hikers; ...「hiking」データベースの中の「hikers」テーブルに入っている内容を全て表示



ブラウザでもMySQLの操作ができる

ブラウザからMySQLのデータベースやテーブルの操作を行うことができる管理ツールもある。

例えば、「phpMyAdmin」というPHPで作られたMySQLの管理ツールを使えば、SQL文を書くことなくデータの追加、削除、検索など様々なことができる。

SQL文を書かなくても、マウス操作でデータの管理ができる。

詳しくはこちらに操作方法を書いた。

no image
phpMyAdminでのデータベースとMySQLの使い方

続きを見る


全体像を把握する


コンピューターについての全体像も把握しておくと、データベースのさらなる理解に役立つ。


コンピューターサイエンスとITの全体像

続きを見る


Related posts