Web関連コラム

【非エンジニア向け】データベースの概念

パソコンを触ったことがある、エクセルを触ったことがあるくらいの方に、データベースを説明するときはどうしたらいいでしょうか?
技術に疎い営業の担当の方にシステムの説明をする際、何に例えて説明すれば解りやすいでしょうか。
ここでは、Excelを触ったことがある程度の方、データベースについて何も知らない方、どんなものか知りたいを対象に、
データベースとは何か、考え方やイメージを纏めてみました。
ここでは難しいことは書いていません。

目次

    1. データベースとは
    2. データベースの種類
    3. データベースのイメージ
    4. データを保存する場所はどこか
    5. データを操作する命令がある
    6. イメージしやすくエクセルで例えてみる。命令文のイメージ。
    7. まとめ

1.データベースとは

データベースとは、一言でいえば「情報を整理したファイル」のことです。
これらの情報を管理するシステムをDBMS(Data Base Management System)といい、
DBMSでデータを効率よく保存、取得したりといった操作が可能になります。
DMBSを単純にデータベースと呼ぶこともあります。

2.データベースの種類

データベースでは大きく分けて3種類あるそうで、下記のように分けられるそうです。
・階層型データベース
・ネットワーク型データベース
・リレーショナルデータベース(※)

出展元:https://proengineer.internous.co.jp/content/columnfeature/6411#section200

主要なデータベースは最後の「リレーショナルデータベース」ですので、
ここではリレーショナルデータベースについて説明したいと思います。

具体的なイメージとして、エクセルで作成した住所録などをイメージすると解りやすいと思います。
ただ、エクセルの場合は件数が少なければ問題はありませんが、10万件・100万件…といった感じで膨大なデータ数の場合、
Excelだとスクロールしてデータを探して・・・とか、検索をかけて・・・とか。
特にデータが多いとエクセルが固まったりとか、管理できなくなると思います。
そこで、このデータベースを使う訳です。

解りやすい使われ方として、Amazonや楽天の様な、ショッピングサイトのシステム(商品情報や購入情報)、
スマートフォンのアプリ(ゲームの勝ち負けの履歴)などでしょうか。

3.データベースのイメージ

例えば、あるショッピングサイトをイメージします。
会員登録済みのショッピングサイトで、ログインして買い物をするという流れを考えます。

※スクリーンショットは楽天市場のサイトです。
実際のシステムはもっと複雑で異なっているはずなので、説明として参照してください。

ショッピングサイトにアクセス

ログイン【会員ID、パスワードを入力】
(データベースから会員IDと一致するパスワードを検索して一致するものを確認)
ログインOK

商品一覧ページにアクセス
(データベースから販売している商品の名称・価格・説明を取得)
商品一覧を表示

商品を選ぶ

カート画面【住所やカード番号を入力】
(データベースに購入者情報を保存。カード会社に問い合わせ)
購入完了

4.データを保存する場所はどこか

データを保存する場所として、種類別の情報を保存する「箱」があることをイメージしてください。
データはこのこの箱に保存されていて「テーブル」と呼ばれます。
データの種類ごとに仕分けできるよう、種類別にこの箱(テーブル)を用意します。

前述のショッピングサイトでいえば、
「ユーザ情報」のテーブル、「商品情報」のテーブル、「購入履歴」のテーブル・・・といった感じで種類別の情報がそれぞれの保存されています。
ユーザが増えれば、ユーザ情報のテーブルに1件、商品が1つ増えたら、商品情報のテーブルに1件、
何か購入されたら、購入履歴のテーブルに1件…といった感じで情報を追加していくわけです。

5.データを操作する命令がある

データベースでデータを操作する際の主要な命令文は下記のとおりです。

・SELECT(選択する)
・INSERT(挿入する)
・UPDATE(更新する)
・DELETE(削除する)

これらを命令文を文法に倣って正しく書いたものを、SQL(エスキューエル)といい、
SQLの形でデータベースに命令を送ると、前述の「テーブル」から情報を取ってきたり、
テーブルに追加で保存したり、修正ができたりします。

6.イメージしやすくエクセルで例えてみる。命令文のイメージ。

ではここで、先ほどのショッピングサイトの「購入履歴」の入った箱(テーブル)をイメージします。
箱の中には、購入番号(ID)、購入した人の会員番号、商品名、価格、個数、登録日時という、更に専用の列で仕切られていることをイメージしてください。
これらの枠をカラムと言います。

これらをエクセルで例えると下記のような形です。
「購入履歴」の箱(テーブル):シート
「いつ」「誰が」「何を」「金額」など細かい情報:列

ここで会員番号が2番の人の情報をすべて取ってくる場合、
「購入履歴の箱から、会員番号が8番の購入情報をすべて選ぶ」という命令文を投げます。
下記の黄色の部分が該当する箇所です。(判りやすく色を付けています)

これをデータベースの命令文(SQL)で書くと、下記のようになります。

 SQLの例
SELECT * FROM 購入履歴 WHERE 会員番号 = 2;

なにやら記号も入っていますが、殆ど簡単な英語ですよね?
中学生程度の英語が解れば、そんなに難しくないのではと思います。

実際には、箱の名前「購入履歴」は「history」とか、
会員番号は「user_id」とかいう名前を付けますが、解り難くなるので割愛します。

*(アスタリスク)は、「全て」という意味で、テーブルの中にある詳細の何を取ってくるか(カラム)を指定することで、
金額だけとか、購入者のIDだけとか、部分的に取ってくることも可能です。

ちなみに、このSQL文をデータベースに送ると、下記の様な結果が帰ってきます。
(わかりやすく説明するために、エクセルのスクリーンショットを載せています)

まとめ

  • データベースは、整理されたデータの集まり
  • データベースを操作するには、DBMSというシステムが必要。これを単にデータベースと言ったりする。
  • データベースはSQLを操作してデータを出し入れする。
  • データベースで主要なリレーショナルデータベースは、エクセルをイメージすると解りやすい。

-Web関連コラム
-, ,