# データベースについて
Web サイトやアプリには会員登録や投稿機能のある SNS などたくさんの機能があります。 これらの情報は保存し、必要なときにすぐに取り出せるようにするために、データベースを使用します。 このページでは、データベースについて説明しています。
# データベースについて知ろう
Web サイトやアプリケーションにはメールアドレスや名前の登録、投稿などの機能があり、情報を保存する必要があります。保存するために必要なものが「データベース」になります。データベースは一言で言うと、「整理した情報の集まり」のことを指します。例えば Amazon のページにアクセスすると、大量の商品が閲覧できるようになってます。このように大量の商品データを登録して、整理して保存しておき、必要なときに必要なデータを探し出せるようにしているデータの集まりがデータベースです。
データベースの使用例(ほんの一例です)
- Amazon のユーザー情報、買い物履歴、商品
- Twitter のツイート、いいね、ブックマーク
- 食べログのお店情報、評価、コメント
データベースは、単なるデータの集まりです。そのため、極端に言うと、データを集めればそれは立派なデータベースです。 しかし、「データを管理する」ということを行う際には、様々な課題があります。 既存のデータベース管理システムは以下のような問題を解決することに役立ちます。
- 毎日何万人も利用され、頻繁にアクセスされるときに、大量のデータの中から目的のデータをすぐに探したい。
- ユーザー登録画面を作成する際に、他で登録済みの電話番号は登録できないようにしたい。すでに登録済みかどうかをチェックしたいし、必ず重複しないようにしたい。
- 同時にたくさんのデータを更新する必要があるが、値の変更中に問題が起きたときに前の状態に戻したい。
- お金管理システムでプリペイド残高を変更する処理中に、他のプログラムから残高を書き換えられないようにロックしたい。
- いくつかの条件でデータを検索し、それを並び替えて最新の 10 件だけがほしい。早くほしい。
- 保存済みのデータは消えてほしくない。復元できるように定期的にバックアップしておきたい。
上記のような仕組みを、自力で解決するのは大変です。そのため、一般に データベース管理システムを使います。
# データベースの種類
データベースには以下のような種類があります。
- 階層型
- ネットワーク型
- リレーショナル型
中でも、リレーショナル型は特によく利用されています。この学習サイトでは、リレーショナル型のみ説明しています。
# リレーショナルデータベース(RDBMS / RDB)
RDBMS とは、Relational DataBase Management System の略であり、SQL を利用してリレーショナルデータベースを管理するシステムです。 関係データベース管理システムともいいます。
RDBMS のイメージは 表計算ソフトです。列と行で構成されている表のイメージが RDBMS です。
# MySQL
MySQL は、Oracle が開発してサポートするオープンソースの SQL リレーショナルデータベース管理システムです。Community Edition であれば、用途を問わず無料で利用できます。代表的な RDB のうちの一つです。 多くの企業やウェブサービスで採用されているので、最初に覚えるデータベースとしておすすめです。
# PostgreSQL
PostgreSQL(ポストグレスキューエル)はオープンソースのリレーショナルデータベース管理システム(RDBMS)です。用途を問わず無料で利用できます。代表的な RDB のうちの一つです。
# データベースの仕組み
実践編では実際にデータベースを扱っていきます。もう少し詳しく見ていきます。
本教材では Web 開発でよく利用されている MySQL を扱います。MySQL は RDBM に分類され、テーブルごとにデータを分けて保存・管理するデータベースシステムです。
# データベースとテーブルの関係
DBMS は複数の DB を管理しています。各 DB の中には、表形式のテーブルが存在し、テーブルの中に実際のデータが入っています。
# データベースにおける用語
適切にデータベースを管理するためには、最低限必要な専門用語を理解しておくと、上手な活用に繋がります。また、テーブルと Excel は似ているため比較しながら覚えるのがおすすめです。ここからはテーブルの関連用語を説明していきます。
- 「テーブル」
データがひとまとまりの表形式になっている状態を「テーブル」と呼びます。 テーブルは複数の列と行で構成され、それぞれを「カラム」、「レコード」と呼びます。 Excel で例えるとシートがテーブルを表します。データベースは複数のテーブルを保持し、テーブルごとにデータを管理しています。
- 「カラム」
カラムは「コラム」とも呼ばれ、「属性」を意味します。Excel で例えると「列」に該当する垂直方向にあるデータのことです。
- 「レコード」
レコードはデータそのものを意味する言葉です。Excel でいうとレコードは「行」に該当する、水平方向にあるデータのことです。「行」はほかにも「ロウ」という用語を使う場合もあるため、併せて覚えておくと良いでしょう。
- 「フィールド」
フィールドはデータベースに存在しているデータの最小単位のことです。このフィールドの集合体がカラムやレコードであり、テーブルに該当します。Excel で例えると「セル」を意味する言葉です。
引用:IT トレンド(データベースにおけるテーブルとは?レコードなどの関連用語も解説) (opens new window)
# 主キー
ID のように、レコード 1 件ずつに違う番号を割り当てるようなものを主キー(Primary Key)といいます。
学校のクラスにおける出席番号のようなものだと捉えるとイメージしやすいかと思います。クラスには同姓同名の子がいるかもしれませんが、個人に割り当てられた出席番号ならば、同姓同名の子も区別することができます。
上表では商品 ID が主キーです。
# まとめ
- データベースは、電話帳やショッピングサイトの商品一覧、住所録などの「整理した情報の集まり」。
- データベース管理システム( DBMS )を用いてデータを管理、構築できる。
← Web の仕組み 2 インフラについて →