いまさら聞けないデータベースとは?〜基礎の基礎を学ぼう〜

eyecatch_template
佐野裕史
書いた人 佐野裕史

こんにちは!インストラクターの佐野( @HiroshiSano0711)です。

初心者の方が理解しづらい用語の1つとして「データベース」があげられます。

実際に

「そもそもデータベースって何ですか?」
「データベースの学習って必要ですか?」
「データベースがよくわかりません」

といった声をよくいただきます。

データベースは、今の情報社会を支える非常に重要な技術となっています。

そこで今回は初心者の方向けにデータベースについて徹底的に解説します。

この記事を読んでいただければ、データベースについて体系的に理解できるでしょう!

データベースとは

shutterstock_300344546

定義

まずはWikipediaの解説を読んでみましょう!

データベース(英: database, DB)とは、検索や蓄積が容易にできるよう整理された情報の集まり。 通常はコンピュータによって実現されたものを指すが、紙の住所録などをデータベースと呼ぶ場合もある。 狭義には、データベース管理システム (Database Management System, DBMS) またはそれが扱う対象のことをいう。

なんとなく理解できますが、具体的にどういうものかイメージしづらいですね。

かんたんにいうと、データベースとは「一定の形式で整理されたデータの集まり」のことです。

一定の形式で整理されたデータの集まり

厳密にいうと、一定の形式で、「複数で共有、利用すること」「検索、加工すること」を目的に整理されたデータの集まりを指します。

そもそもデータベースは、コンピューターの分野だけで使われる用語ではありません。

家に置いてある「タウンページ」「辞書」なども立派なデータベースなのです。

タウンページや辞書は、家族や友達など「複数で共有」され「検索」されるデータの集まりだからですね。

逆に、ただ単に一定の形式でデータを並べた「メモ帳」はデータベースではありません。

「複数で共有、利用されること」「検索、加工すること」の2つの条件も満たさないとデータベースとは呼べないのです。

なぜデータベースを使うのか?

shutterstock_375140896
データベースを使う理由は大きく2つあります。

「データを整理して貯める」
「データを情報として活用しやすくする」

の2つです。

データは活用されるためにあります。

なぜなら、データを活用しないのであれば、そもそもデータを持つ必要がないからです。

データは多ければ多いほど活用できる幅が広がるため価値が上がります。

そのため、貯まったデータのことを「資産」と呼ぶことも多いです。

貯められたデータをいかに整理して上手に活用できるかが鍵となります。

そこで、データをどうやって整理し、管理するかが非常に重要になってくるのです。

このデータをどうやって整理して管理するかの方法を「データ・モデル」と呼びます。

これまでさまざまなデータ・モデルを利用したデータベースが生み出されました。

現在もっとも効率が良いといわれているデータ・モデルは「関係モデル(リレーショナルモデル)」と呼ばれるものです。

「関係モデル(リレーショナルモデル)」を使ったデータベースのことを「リレーショナルデータベース」と呼びます。

リレーショナルデータベースは、現在、標準としてもっとも広く利用されているデータベースです。

リレーショナルデータベース(RDB)とは

shutterstock_38800492
リレーショナルデータベース(RDB)とは、「テーブル」といわれる表形式の構造でデータを管理する関係モデルを使ったデータベースです。

エクセルの表のようなものと似ているイメージです。

リレーショナルデータベースでは、エクセルのシートにあたるものを「テーブル」と呼びます。

1つのテーブルごとに、「商品」「スタッフ」「売り上げ」など関連性のある一連のデータがそれぞれ格納されます。
Screenshot_2016_07_26_10_19
また、行を「レコード」と呼び、列を「フィールド」と呼びます。
Screenshot_2016_07_26_9_51
Screenshot_2016_07_26_9_51
1行に1件のデータが格納され、1レコードとなります。

ここで重要なことは、レコードにはルールがあることです。

それは各レコードのデータは、必ず「一意」にならないとダメだということです。

つまりデータの重複は許されないのです。

データベースは検索されることを念頭におく必要があるので、重複したデータがあると検索時に支障がでます。

まずはこのルールをしっかり覚えておくようにしましょう!

次に、管理がしやすいように「どのようなデータを格納しているのか?」を判別する必要があります。

何のデータか分からなければ活用がしづらいからですね。

具体的には、列名にあたる「商品名」「販売価格」などです。

これらは、「属性」と呼ばれます。
Screenshot_2016_07_26_9_51

これらの各テーブルのデータを関連づけて組み合わせることで、データを検索したり利用しやすくしているのです。

例えば、「商品名」「スタッフ」「売り上げ」テーブルをそれぞれ関連づけて組み合わせることで、「各スタッフが販売した商品数」や「各スタッフの売り上げ」などを表すことができるのです。

なぜリレーショナルデータベースが使われるのか?

リレーショナルデータベースが使われる理由は大きく2つあります。

「データの重複を避けられること」
「検索能力が高い」

の2つです。

データの重複を避けることで、データを検索するスピードを上げることができます。

なぜなら同じデータは1つしかありませんので、1つ見つかればそこで検索作業を終了できるからです。

同じデータが複数あると、検索する手間が単純に2倍、3倍と膨れ上がってしまいますし、編集や削除にも手間がかかってしまいます。

また、同じはずのデータに「差異」があった場合も面倒です。

どちらが正しいデータなのかを判断する方法や、データを修復する方法も決めておかなければならないからです。

重複したデータがあるということは、データを利用する側からするとものすごく面倒なのです。

リレーショナルデータベースを使うことでこのような問題を避けることができます。

さらに、リレーショナルデータベースを簡単に管理、運用できるように「データベース管理システム(DBS)」というソフトウェアが利用されています。

データベース管理システム(DBS)とは

shutterstock_153737483

データベースを効率よく管理、運用するソフトウェア

データベースを現実世界のものに例えると「図書館」が似ています。

ただ、図書館にはたくさんの書籍や資料があります。

新しい書籍を入荷したり、破けてしまった書籍を入れ替えるなど管理や運用をする人が必要ですよね。

ちょうど「図書館司書」にあたるのが「データベース管理システム」です。

なお、リレーショナルデータベースを管理、運用するデータベース管理システムのことを特に、「リレーショナルデータベース管理システム(以降RDBSと呼称)」と呼びます。

データベース管理システムはなぜ必要なのか?

データベースは自動でデータを追加、更新、削除などの操作を行ってくれません。

かならず管理する人が必要です。

ただ、管理する人が間違って同じデータを追加してしまったり、誤ってデータを削除してしまったのでは元も子もないですよね。

人間の手でデータベースを管理することは非常に危険なので、コンピュータのシステムに管理してもらう方が断然良いのです。

コンピュータで管理することで、人間が間違ってデータを追加した場合にも「それは重複したデータなのでダメですよ」とミスを防ぐこともできます。

さらに、データベースのデータ操作には「SQL」という専用のプログラムを使って効率良く操作できるようになっています。

SQLとは

shutterstock_278070971

SQLとは問い合わせ言語である

SQL(エスキューエル)は、RDBMSのために作られた、データの操作を行うためのデータベース言語(問い合わせ言語)です。

プログラミング言語とは違い、RDBMS専用に作られたプログラムです。

それにしても、問い合わせ言語とは面白い名前ですね。

これは本屋に行った場合に「こんな名前の本はありますか?」と問い合わせすることが、「こんな名前のデータありますか?」とデータベースに問い合わせする様子と似ていることに由来しているのでしょう。

なぜSQLを使うのか?

SQLは問い合わせのプロフェッショナルです。

一番少ない質問で目当てのデータを検索できるように、もっとも効率のいい問い合わせすることができます。

さまざまな検索条件やデータの操作を論理的に指定できるようになっており、どのようなデータでも効率良く検索できるようになっているのです。

また、専用のプログラムでデータを操作することにより、同じ操作でも間違えずに何度も操作することができます。

それによってデータの重複を許すなどのミスを防ぐこともできるので「データの一貫性」を保つことができます。

最近注目のデータベース「NoSQL」とは

shutterstock_132470936
「NoSQL」というデータベース管理システムをご存知でしょうか?

これはRDBMSに取って代わると言われている新しいデータベース管理システムです。

NoSQLは「ビッグデータ」などの大量のデータを扱う場合に威力を発揮します。

リレーショナルデータベースの場合は、大量のデータを扱っても探すデータは1つなので「同時にデータを探す」ことに意味がありません。

同じデータを探しても二度手間になってしまうからですね。

しかし、NoSQLは同時にデータを探すことが得意です。

それによって、大量のコンピューターを使って「同時に大量のデータを検索」したりできます。

ビックデータなどの巨大なデータを扱うのは時間がかかってしまうため、NoSQLが使われてきているのです。

これから主流になるかもしれない技術なので、ぜひ知っておいてください。

データベースときっても切り離せない「MySQL」とは

MySQLとは、世界でもっとも利用されている「データベース管理システム」です。

大容量のデータに対しても高速で動作し、便利な機能がたくさんあるので、非常に実用性が高くなっています。

また、オープンソースなので非商用利用であれば無償で使用できるため、初心者でも導入しやすいです。

データベースといえば…というくらい有名なシステムです。

詳しく知りたい方は、下記の記事をご覧ください。

最後に

いかがでしたでしょうか?

データベースはもっとも土台となる基本的な技術です。

しっかり学ぶことで、他の学習にも役立つこと間違いないでしょう!

自分にプログラミングなんて・・・と思っていませんか?

今後10年間で今ある職業の『77%』はなくなると言われています。

人工知能や機械学習を筆頭にVR、AR、ドローンなどの最先端技術の発達はこれからのあなたの働き方に間違いなく影響を与えるでしょう。

将来を見据えてプログラミングができるようになってエンジニアになりたい、自分だけにしかできないクリエイティブな仕事がしたい、、、とお考えの方も少なくないでしょう。

と、同時に「難しそう、、自分にはできないだろう、、、」と諦めている方も多いのではないでしょうか。

弊社マンツーマンレッスンは、お一人お一人に専属のインストラクターがつくので、通常のスクールでは難しい、オリジナルアプリ開発や、フリーランスとしての仕事獲得まで支援しています。

まずは『無料体験レッスン』で弊社コンサルタントと一緒にあなた専用の学習カリキュラムを考えてみてはいかがでしょうか?

詳しくは下の画像をクリックしてください。

cta_mtm2

プログラミング学習者必見

専属講師に質問し放題、レッスンし放題、最短1ヶ月でフリーランスエンジニア
プログラミング学習カリキュラム無料公開中
Ruby学習カリキュラム無料公開中
 1記事最大11,000円!テックライター募集


LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

佐野裕史

佐野裕史

侍エンジニア塾インストラクター。
主に技術担当をしています。

【経歴】
力仕事、接客業、営業職など様々な業界を経てIT業界に参入。
IT未経験からスタートし、1ヶ月で仕事獲得に奇跡的に成功。
1年半後にフリーランスに転身。

Web開発を主に行っており、得意とするのはRails、Ruby。
【技術スキル】
Rails、Ruby、Swift、Java(Android)、JavaScript

【趣味、趣向】
麻雀
MTG(マジックザギャザリング)
ダーツ、卓球、野球、ボウリングなどの球技

【Facebookページ】
https://www.facebook.com/hiroshi.sano.7
【Twitter】
プログラミング講師@佐野裕史
自分でプログラミングができない人のために情報を発信しています。
お気軽にフォローください。