【超ざっくり解説シリーズ5】 データベースとは?なぜ必要?使うとどんなメリットがあるの?わかりやすく解説するよ
とよももだよ!!
「データベース」と聞くと、なにを思い浮かべるかな?
もしかすると、「データが入っている何かだよね?」とか、「よく聞くけど、はっきりとは知らないかなぁ」と、明確な答えが出ないかもしれない。
今日は、プログラミングを勉強している人やエンジニアとしてもう活躍している人が必ず扱うことになる「データベース」について、ざっくり解説していくよ!
◾️データベースとは「ファイル」のこと
最初に一言で言い切ってしまうと、データベースは「簡単にアクセス・管理・アップデートできる巨大なデータが入ったファイル」だよ。
ここで重要なのは、データベースは「ただの巨大なファイル」だということ。「ただのファイルだからどうしたの?」と思ったかな?ファイルということは、そのファイルを開くための専用のソフトウェアが必要なんだ。
◾️ファイルを開くには専用のソフトウェアが必要
例えば、JPGファイルは「ペイント」、PDFファルは「Adobe Reader」などだよ。あまり普段意識しないけど、それぞれのファイルは専用のソフトウェアで開く必要があるよね。ソフトウェアがPCにない場合、インストールするように促されたり、「このファイルは開けません」とエラーメッセージが表示されたりするよね。
何が言いたいかというと、「データベース」はなんだかすごく高機能そうな名前がついているけど、結局は「ただの巨大なファイル」だということだよ。
専用のソフトウェアなしでは「データベースというファイルを開くこと」も、「何かのデータをデータベースに入れること」も、「データの内容を変更すること」も、「データを削除すること」も、何もできないんだ。
じゃあどうする? そう、データベース専用の「ソフトウェア」を使う必要があるよね。
そのソフトウェアが「データベース管理システム」だよ。英語で「Database Management System」、略して「DBMS」とよく呼ばれるから覚えておこう。
◾️データベース管理システムで何ができるの?
データベース管理システム(DBMS)は、データベースにアクセスして下の4つの操作を行い、データベースを管理してくれるソフトウェアのことだよ。
1. 新しいデータをデータベースに登録する(CREATE)
2. 必要なデータをデータベースから読み取る(READ)
3. データベースに登録されているデータを更新する(UPDATE)
4. データベースに登録されているデータを削除する(DELETE)
DBMSと呼ばれるソフトウェアは、色々と種類があるんだ。代表的なものは「MySQL」、「Oracle Database」、「 PostgreSQL」、「Microsoft SQL Server」などだよ。
◾️データベース管理システム(DBMS)の違いは?
「なぜこんなにいろんな種類のDBMSがあるの?」と不思議にならないかな?それは、サポートの有無、性能や信頼性、OSとの相性、解説書の充実度などが異なり、用途やデータの重要度により、異なるDBMSを使うからなんだ。
それぞれの使い方も微妙に違ったり、完全無料で使えるものもあれば、有料&月額制だったりと特徴があるので、興味がある人は下記サイトをみてみてね!
・【DB】データベース一覧 - 種類と特徴まとめ
・SQLの観点から「Oracle Database」「PostgreSQL」「MySQL」の特徴を整理しよう!
◾️DBMSはアプリとデータベースの仲介役
ところで、DBMSは一体どこに位置しているんだろう?
DBMSはデータベースとアプリ(またはユーザ)の間にいて、仲介してくれているイメージを持つとわかりやすいよ。
データベースそのものとDBMSは「別のものを指している」ことをなんとなくでいいので頭の中に入れておこう。
でも、大体はデータベース=DBMSとして話が進められることが多いよ。ちなみにDBMSは「データベースアプリケーション」と呼ばれることもあるよ。混乱しないように気をつけてね!
◾️SQLって何?どうして使うの?
最後に「SQL(Structured Query Language)」について説明するよ。SQLは、「データベースに入っているデータに対し、どのようなCRUD操作を行いたいのか」をDBMSに伝えるための言語だよ。
上で説明した通り、DBMS自体は「データを管理する」ソフトウェアだよね。だけど、そのデータをどのように管理したいか・どのデータに対してどの様なCRUD操作を行いたいか、などは私たち人間がDBMSに伝えてあげる必要があるんだ。
しかも、ただ伝えるだけじゃダメだよ。「私たち人間と、DBMS両方が理解できる言葉」で伝えてあげる必要があるよ。
例えば、カフェに行った店員さんに「コーヒーをください」と伝えないと、コーヒーを買うことはできないよね。日本語しかわからない定員さんに『un café noisette, une noisette』とフランス語でコーヒーを注文しようとしても店員さんには理解できないよね。
この様に、DBMSにわかる言葉で指示を与えるための言語が「SQL」なんだ。SQLは標準化されていて、一度伝え方を覚えれば、どのDBMSでもほぼ同じ様にCRUD操作を行えるよ。ぜひ習得してDBMSと対話してみてね!
◾️なぜデータベースを使うの?
ところで、なぜデータを管理するのに「データベース」を使う必要があるんだろう?「顧客データを管理するなら、エクセルファイルでもいいんじゃない?」と疑問に思わないかな?
その疑問はもっともだし、私とよもも自身も、同じことを思ったよ。でももし、顧客データをエクセルファイルで管理したら、下の様な問題が起こるかもしれないね。
・10000万人の顧客がいたら?ファイルが重くて固まらない?
・9999番目の顧客情報を見るのに、いちいちスクロールダウンするの?
・エクセルファイルへのアクセス権はどうするの?
・エクセルファイルが壊れたら?10000万人の顧客データがなくなるよ
・同じ顧客のデータが間違って複数入っている可能性は?
・生年月日や氏名など、間違ったデータが入っているかも?
小さなデータを管理するのはエクセルファイルで十分かもしれない。でも、上の問題を解決し、より多くのデータを扱いやすくしてくれているのが「データベース」と「DBMS」なんだ。
◾️まとめ
たくさん説明したのでまとめるよ。
・データベースとは、「たくさんのデータが入った巨大なファル」
・データベース管理システム(DBMS) とは、「データを管理しやすくしてくれるソフトウェア」
・SQLとは、「データベースに登録してあるデータに対し、どの様な操作をしてほしいかDBMSに伝えるための言語」
それぞれ調べ始めるととても奥が深いし、同時にとても面白いのでぜひネットや書籍などで色々と調べてみてね!
■ もっと詳しく知りたい方へ(参考資料)
・基礎から始めるデータベース入門セミナー
→ Oracle公式サイト。めちゃくちゃ丁寧に詳しくデータベースについて解説してあります。何度も何度も読み返して完全理解することをオススメします。
・おうちで学べるデータベースのきほん(書籍)
→ データベースの運用フローなどや費用の考え方なども解説してあります。チョットムズカチイ、けど勉強になる。
・SQL攻略
→ SQLを実際に書いて練習できるサイト。初心者さんに超おすすめです。
■ 広告だじょ〜
株式会社X-HACKではプログラミング初学者向けの勉強会や、複数回に渡るプチスクールを開催しています興味がある方はこちらの「connpassページ」をご確認ください
Twitterで「#xhack勉強会」と検索しても色々と情報が見れます