はじめに
「リレーショナルデータベース(RDB)とExcelって何が違うんや」
今回はこんな疑問に対して、回答していこうと思います。
また、
「そもそもリレーショナルデータベースってなんや?」
という方や
「リレーショナルデータベース、知ってるけどパッとしないんよな」
という方は、以下の記事を参考にしてください。
補足:以下、「データベース」と書かれている箇所がありますが、「データベース」は「リレーショナルデータベース」のことですので、悪しからず。
リレーショナルデータベースとエクセルは違うのか
結論からいいますと、リレーショナルデータベースとExcelは、全くの別物です。
用途も違ければ、できることや操作性も違います。
しかし、似通っている箇所が多いのもまた事実。
「Excelは使うけどマジなデータベースはいじらないなあ」という人が、「リレーショナルデータベースは表形式だよん」と聞けば「Excelやんけ」となるのもわかります。
ということで、リレーショナルデータベースとExcelの似ているところ、違うところを、順番に解説していこうと思います!
リレーショナルデータベースとExcel ~似てるとこ編~
ということで、まずはリレーショナルデータベースとExcelの似ているポイントを解説していきます。
表形式
早速ですが、まぁこれが一番の勘違いポイントというか、紛らわしい原因ですよね。
リレーショナルデータベースもExcelも表形式を採用しているので、何となく同じような感じがするし、こればっかりは仕方ないと思います。
しかし、あくまでも表形式を採用しているというだけですので、その雰囲気に騙されてはいけません。
後々できますが、表形式といってもお互い見た目は全く異なっていますからね。
一応、Excelもリレーションできる
リレーショナルデータベースとExcelの違いとして「複数のシートをリレーション(関連付けること)ができない」というのがよく挙げられます。
しかしですね、一応Excelでもシート同士を結合することはできるっちゃできるんですよ。
セルに関数ぶち込んで繋げればいいわけで、そういう使い方をしている人も結構多いと思います。
とはいっても、Excelでは複雑な結合はできません。すべてのセルに関数をぶち込む必要があるのでめちゃくちゃ重くなりますし、またシンプルなものでないと難しいです。そして作りこみが甘いと大量にエラーが出ます。
一応、Excelもデータベースっぽく使える
上記2つをまとめると、Excelは表形式かつリレーションもできる、ということになります。
この事実を踏まえると、実はExcelもデータベースっぽく使うこともできちゃうんですよね。
なんなら、そこまで規模が大きくない中小企業なんかは、Excelをデータベースっぽく使っているところも多々あるのではないでしょうか。というか、実際ありました(経験談)。
しかしですね、ここで意識して欲しいことは、あくまでもデータベース「っぽく」というとこです。
次で説明しますが、Excelは「っぽい」だけで、Excelはデータベースではないことに留意してください。
リレーショナルデータベースとExcel ~違うとこ編~
次に、リレーショナルデータベースとExcelの違うところを解説していきます。実は結構たくさんあるのですが、ここではその中でも重要なものだけを3つ抜粋しました。
用途
これが一番大きな違いですが、リレーショナルデータベースとExcelは用途が違います。
具体的には、リレーショナルデータベースはデータ(情報)を格納しておくもので、Excelは計算をするものです。
データを格納するのも、計算するのも表形式の方が良かったというだけで、使い方が同じなわけではありません。
実際、リレーショナルデータベースを使ってExcelのような計算はできないです。
一方で、リレーショナルデータベースは行や列がほぼ無限にありますが、Excelは行や列に上限があります。これも、用途が違うためにこのような設計に違いが表れているのです。
さらにさらに、当然ですがリレーショナルデータベースは、データを格納する存在として最適な構造をしており、Excelは計算をするものとして最適な構造になっています。
レコードという概念
上記で説明した「リレーショナルデータベースは、データを格納する存在として最適な構造」ということの代表例がレコードという概念です。
Excelは個々のセルが独立しているため、個別に操作することができます。例えば、ExcelではA列の2行目に該当するセルだけ中身を変える、といったことができるすよね。Excelだけを使っていると、まぁ当然だよな、という感じがします。
しかしですね、リレーショナルデータベースに関しては、そのような使い方はできないのです。上記で紹介した『リレーショナルデータベース(RDB)とは』という記事でも軽く触れていますが、リレーショナルデータベースでは行のことをレコードと呼びました。
では、なぜレコードと呼ぶかというと、ただ単純に行をそのように言い換えているのではなく、行の中にあるそれぞれの値を一つのまとまりとして考えるためです。
つまり、リレーショナルデータベースでは、レコード内にあるそれぞれの値を個別に編集するということはできず、レコード全体を編集しなければならないのです。
一方で、Excelには「セル」という単位があり、これを一つ一つ編集することが可能です。見た目は行でまとまっていますが、実態としては個々のセルで独立しています。
このように比べると、一見中身を個別に編集できるExcelの方が便利そうですが、データベースになると独立していることはとんでもない悲劇を生みます。
どんな感じで悲劇かというと・・・
何ということでしょう。情報が一つずつズレたではありませんか。悲劇的ビフォーアフターですね。もしこの状態で注文票なんかを作っしまった時には、各ご家庭に見覚えのない商品が届きまくることになります。
このように、「独立している」というのは、言い換えれば「まとまりが無い」ということでもありますので、データを規則的に整理しなければいけないデータベースにとって、致命的な欠陥となります。
『似ているところ編』で、「Excelはデータベースっぽく使うことができる」と説明しましたが、データベースとして使うにはあまりに危険な要素をを含んでいるということなんですね。
ちなみに、リレーショナルデータベースでは、以下のような感じになります。
レコード単位で編集することで、順番がズレたり、中身が崩れたりしなくなりました。
見た目
「え、見た目って表の形じゃないのか!?」と思った人、実は見た目も全く違うのです。
もちろん表形式であることには間違いないのですが、リレーショナルデータベースはよく見るExcelのあの表とは違う見た目をしています。
なんなら、リレーショナルデータベースに関しては、そもそもその「見た目」というのを普通に見ることができません。
どういうことかというと、Excelは特に何もしなくてもデータが常に表示されており、スッキリと全体を見ることができますよね。しかし、リレーショナルデータベースの中身を見る際には一定の手続きが必要なのです。
というのも、少々難しい話になるのですが、リレーショナルデータベースのデータはサーバーの中に格納されているため、人間様から常に見えるような形にはなっていないのですね。
ちなみに、リレーショナルデータベースの中身(データ)を見るためには、SQLという言語を用います。このSQLを使って、リレーショナルデータベースに「データよこせ」と命令することで、初めてデータを見ることができるんですね。
まとめ
ということで、Excelとリレーショナルデータベースの違いについて解説していきましたが、いかがだったでしょうか。
両者は重要なポイントが一部同じだったりするので、違いが分かりづらくなりがちですが、今回の解説で全くの別物であることを理解してもらえたかと思います。
とはいっても「Excelをリレーショナルデータベースのように使いたい!」という人も結構いるのではないでしょうか。データベースは環境構築だけでも面倒ですし、DBMSやSQLなど、ある程度の専門性も必要になってきますからね。
ということで、「Excelをリレーショナルデータベースのように使いたい!」という方のために、以下の記事を用意しました。
また、一からデータベースに知りたいよ、という方は、併せて以下の記事からデータベースの基礎を学んで頂ければと思います。
~今日はここまで!~