動画
講義内容 (動画スクリプト)
皆さんこんにちはProgLearnです。
今回は知ったかぶりしたいテクノロジー談義ということで、データベースについて取り上げてみたいと思います。具体的なトピックとしては、なぜデータベースが必要なのかを理解するということです。
皆さんデータベースって聞くとエクセルのように表の形になって、データが整理されているものというのを思い浮かべると思うんです。では、なぜExcelが必要なのかということについてお話ししていたいなと思います。用語としては DBMS RDB SQL っていうところが今回の動画で出てくるような言葉になります。
では早速データベースって何で必要なのってお話していきます。
まずそもそもの話なんですけど、データベースがない時家計簿どうやって記録してったらいいんだろうという話なんですね。それは紙、つまりドキュメントに記録をしていくわけです。このような紙を用意してりんご3個1000円で買いましたよ、みかん5個600円で買いましたよ、という形で文章で保存をしていく、どんどん書いていくわけですね。
じゃあこのような形で保存ができるんだったらわざわざテーブルとか作らなくていいんじゃないのっていう疑問が出てくると思うんですけれども、さっきのようなドキュメントの形では色々なトラブルが起こってしまうわけなんですね。主に4つ今回はご紹介します。
まず最初に挙げられるのが読み書きしかできない。これどういうことかって言うと、例えば「みかん今月どれぐらい買ったか知りたいからミカンのデータだけ抽出したい」というのは出来ないわけですね。メモ帳とかの機能として検索をかけたりとかできるわけなんですけれども、ドキュメント自体が読み書きしかできないわけなので、検索とかの機能は持っていないわけなんです。
続いては「エラーが起こってもデータの保護をしない」。これですねちょっと分かりづらいのでまたたとえ話を使わせていただければなと思います。
財布の中にあとどれぐらいのお金が残ってるのかっていうのを記録している A さんと B さん二人がいたとします。Aさんのところには残り500円ですよっていうのは文章として書いてある。 B さんのとこお家残り1000円ですよっていう風に文書として書いてあるわけですね。
じゃあ、 B さんが A さんに100円あげるというような処理を考えてみましょう。
そうすると、どういう手順を踏めばいいかって言うと、まず B さんの残金のドキュメントから、100円なくなったから残金900円にします。その後 A さんの方に100円送るわけなので、 A さんのドキュメント残金500円ってなってるやつを残金600円に書き換えればこれで100円の送金が完了主婦になりますよね。
しかし、もしこのには100円を送金するっていうところがエラーで出来ませんでしたで止まってしまった。そうするとどうなるか。
Aさんのドキュメントは残金が500円ってなってます。変わってないですね。ただし B さんの方は残金900円に書き換えました。しかし、エラーが起こってしまったので A さんの方は600円になっていない。
つまり100円がどっかに行ってしまうわけなんですよ。
このように、途中でエラーが起こってしまった時、データを巻き戻す – これはロールバックって言うんですけども – そういったことをしてくれないっていうのが二つ目の弊害です。
そして、データの整合性チェックができないつまりどんなデータでも書き込めてしまうわけです。100円とか300 JPY 、数字のところ漢数字で書いてみよう。いろんな書き方ができてしまうわけなんですね。なので、後で合計をしたいとか検索をしたいとか、そういうた時に分からないし見づらくなってしまうんですね。
そして最後、情報の保護はできない。例えば、僕以外の人が読めないようにする。家計簿とか見られたくないですもんね。残金がいくらか、僕以外の人にはちょっと見られたくないと思うんですけども、そういった特定の人だけ見せるといったようなユーザ管理機能が存在しないわけなんです。
このようにですねあくまでもドキュメントっていうのは記録をするだけのものであってじゃあその中のデータをどういう風に取り扱っていこうかっていう風になると様々な問題が発生してしまうわけなんですね。
そこで登場するのが DBMS です。ドキュメントだけだといろんな問題点が起こってしまいます。なので、データにいろいろなルールを設けてデータを扱いやすい形で提供してくれるシステムを作ればいいじゃないか、というのが DBMS なんですね。
DBMS とはデータベースマネジメントシステムつまりシステム、仕組みなんですね。この DBMS と呼ばれるものに様々な種類があるわけで、皆さんが聞いたことあるMySQL や Oracle など、様々な DBMS があるわけです。これが DBMS が生まれた背景であり、このような様々な製品が生まれてきた背景でもあるわけですですね。
先ほど、システムなのでルールに基づいてデータベース構築管理をしているというお話をさせて頂きました。では、このルームってどういうものがあるのって言うと、いろんな種類があるわけですよ。詳細は触れないんですけども、オブジェクトデータベースとか、最近熱を帯びてきているNoSQLなど。その中でもよく使われるルールとして存在するのが関係データベースリレーショナルデータベースです。このリレーショナルデータベースこそが普段我々が慣れ親しんでる、エクセルのような形をしているテーブル、列と行でデータを整理をしていくというルールで運用していきましょうねというものが関係データベースです。
そして最後ですねリレーショナルデータベースデータ操作をするために使う言語これが SQL なんですね。アメリカだととシークェルて言ったりとかするんですけれども、これはもともとがシークェルが語源になっているというところで SQL をシークェルって言うような方々もいます。
まとめると、 DBMS が使うルールの中でよく使われているのがRDBであり、 RDBを操作するために SQL を使うということです。
ということで、今日の動画は終わりにしたいと思います。ありがとうございました。