データベースとリレーショナルデータベースとは何か、なるべく初心者にも分かるようわかりやすく簡単に説明する。
また、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つ以下の商品を見つけたい」という場合など、
様々な条件がある中、バラバラなデータの中から簡単にデータを抽出することができる。
データベースの種類
データベースには三つの種類がある。
- 階層型データベース
- ネットワーク型データベース
- リレーショナルデータベース
の三つがある。
リレーショナルデータベースとは、三種類あるデータベースのうちの一つとなる。
リレーショナルデータベースとは
データを行と列の表として整理し、エクセルのような表形式でデータを管理することができる。
また複数の表を組み合わせてみることで、複雑に関連している情報もシンプルに見ていくことができる。
エクセルのような表で管理
リレーショナルデータベースのデータ管理の特徴としては、エクセルのような表をイメージすると分かりやすい。
横列のデータのことを「レコード」とよび、「行」にあたる。
縦は「カラム」と呼ばれ、「列」に当たる。
このレコードとカラムを組み合わせた表を「テーブル」と呼ぶ。

複数の表を繋げてシンプルに管理
リレーショナルデータベースでは、複数の表を繋げて、複雑に関連している情報をシンプルにみることができる。
今回の一例として登山をあげる。
例えば登山者情報と山情報をそれぞれテーブルで管理しているとする。
登山者テーブル:

山テーブル:

ここで二つの表を繋げることで、「誰がどの山を登ったのか」という情報を管理することができる。
例えば「山テーブル」に「登山者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文の一覧について説明する。 基本的なSQL文「INSERT, SELECT, UPDATE, DELETE」の ...
続きを見る
SQLはターミナルで操作
SQLはMACであれば、ターミナルで操作する。

ここではイメージだけ見てもらえればと思う。上記ではSQLで下記のことをやっている。
- show databases; ... 全てのデータベースを表示
- use hiking; ... 「hiking」というデータベースを使うよう指示
- select * from hikers; ...「hiking」データベースの中の「hikers」テーブルに入っている内容を全て表示

ブラウザでもMySQLの操作ができる
ブラウザからMySQLのデータベースやテーブルの操作を行うことができる管理ツールもある。
例えば、「phpMyAdmin」というPHPで作られたMySQLの管理ツールを使えば、SQL文を書くことなくデータの追加、削除、検索など様々なことができる。
SQL文を書かなくても、マウス操作でデータの管理ができる。
詳しくはこちらに操作方法を書いた。
-
-
phpMyAdminでのデータベースとMySQLの使い方
ここではphpMyAdminでのデータベースとMySQLの使い方について説明する。 phpMyAdminとは何か、説明するとともに、phpMyAdminのデータベースの作り方や、SQL文のINSERT ...
続きを見る
全体像を把握する
コンピューターについての全体像も把握しておくと、データベースのさらなる理解に役立つ。
-
-
Screen-Shot-2021-06-11-at-11.45.16
続きを見る