見出し画像

非ITエンジニア向けにデータベースとは何か解説してみる

こんにちは、Mikenerianです。

最近「データベース」の概念についてITエンジニアではない方に対して説明する機会が多いので、記事にしてみたいと思います。

意外とそのような記事は少なく、ググってもなかなか「これだ!」という解説に出会えないというのが実情です。

よく検索でヒットするのが某プログラミングスクールの解説なのですが、最初の方で「SQL」から入っている時点で「非ITエンジニアには無理や」となってしまいます。

そこで本解説では、そのような専門用語を一切使わず解説します。
当然エンジニア目線では厳密でないところが多々ありますが、そこは目をつぶってあくまで「わかりやすさ」にこだわっているという点ご了承いただければと思います。

一言でいうと

私がたどり着いた、究極にわかりやすいざっくりとした説明は以下です。

あらゆるサービス、アプリケーションの裏側にある、機械(プログラム)が参照するためのエクセル表

順を追って解説します。

まず「あらゆるサービス、アプリケーション」とは文字通り世の中のサービスのほとんどを意味します。あなたがお買い物で利用するショッピングのwebサイトも、連絡に使うメッセージングアプリでも、裏側では精巧に作られたデータベースが機能しています。

続いて「機械(プログラム)が参照する」ということですが、ショッピングサイトで例えると、利用者が検索した結果に応じて、必要な商品を「参照する」必要があります。これを実行しているシステムを広義にとらえるため「機械(プログラム)」と表現しています。

最後に「エクセル表」という部分ですが、この例えが最も理解しやすいと気づきました(多くの方が仕事で使うと思います)。
エクセル表でも、例えば都道府県ごとに並べて「埼玉県」のデータだけを眺めたり、条件に沿って並び替えを行うことがあると思います。エクセル表の場合はデータを眺め、それを基に表や資料を作成するのは人間が実施しますが、世の中のサービスでは機械(プログラム)が人の代わりに、見栄えをいい感じに整えたり様々な処理を実行します。


データベースの存在意義

先ほどの解説でも触れた通り、世の中のサービスにおいてデータベースは無くてはならない存在です。
それでも、データベースがなくてもシステムは作れるのではないか?と思う方のために存在意義について解説します。

まずは「データベースが無いシステム」を考えるところから始めましょう。

あなたはとある「商品A」を宣伝するためにwebサイトを立ち上げるとします。
宣伝のために、商品Aの写真や値段、使い方などをwebサイトに記載するはずです。

ラッキーなことに宣伝が好評だったため、次に「商品B」も同じwebサイトで宣伝することになりました。
データベースが無いため、あなたは「商品A」と全く同じ要領で「商品B」の写真や値段、使い方のwebページを作成しました。

結果的に、多少の慣れによる時短はあったものの、「商品B」を追加するときにかけた労力は「商品A」と変わらない状況となってしまいました。

長くなりましたが、これが「データベースが無いシステム」での更新作業となります。

一方で、データベースが存在していた場合はどうでしょうか。

おそらくあなたがするべきことは、データベースに商品Bの写真や値段、使い方などを登録するだけです。

そして、webページのプログラム側で参照する商品を「商品A」から「商品B」に変えるだけでwebページの更新が完了します。

このように、webページやサービスで必要となる情報をまとめ、編集や加工をしやすくするために「データベース」が存在しています。


身近なサービスのデータベース

直感的な理解を促進するため、具体例を2つ挙げたいと思います。

まずは某フリマアプリのデータベースについてです。
おそらくどのアプリにおいても、出品者が掲載する商品情報を一元管理するデータベースがあるはずです。
そして商品を探しているユーザーが検索したとき、条件にマッチする商品をデータベース上で抽出し、表示させる機能があります。


続いて、某チャットアプリのデータベースです。
チャットアプリの場合、「ユーザー」の情報を管理するデータベースと、「チャット」の内容を管理するデータベースの最低限2つが必要なはずです。
そしてチャット画面では、選択している友達に応じて「ユーザー名」を表示し、チャット内容を最新のものから吹き出しに表示させています。

どの友達のトークルームでも、似たような形式で表示されるというのはまさに「データベース」が裏側にあり、画面(UI)のデザインは統一されているということの最たる例ですね。

まとめ

「機械(プログラム)が参照するためのエクセル表」という私独自の表現から、「データベースとは何か?」について解説してきました。

データベースはあらゆるサービスを支えているといっても過言ではないので、アプリ開発事業の担当になった際には本記事だけでなく、ぜひSQLの基礎が理解できる知識を身に着けていただきたいと思います。。。

データベースについて、みなさんの理解が少しでも深まれば幸いです。
まだどうしても納得できないという方は、身近なエンジニアへの質問で解決しましょう。どうしても納得できない場合は、私までDMお願いします。

この記事が気に入ったらサポートをしてみませんか?