基本情報技術者 ~データベース[1]~
こんにちは!ポテトヘッド(@potato_head0809)です!
今回はデータベースについて学んでいこうと思います!
では、早速始めましょう!
DBMS(Data Base Management System)とは...?
日本語で言うと、データベース管理システムです。
データベースを利用したいアプリケーションに対して、
データベース機能を提供するミドルウェアのことです。
ミドルウェアなどについてはソフトウェアの基本的なところで
触れていますので、宜しければご覧ください。
potato-head0809.hatenablog.com
データベースにはいくつか種類があり、代表的なものは
「関係型」「階層型」「ネットワーク型」などがあります。
現在の主流は「関係型」となっています。
今回は関係型である関係データベースについて見ていきましょう!
関係データベース
関係データベースは表の形でデータを管理するデータベースです。
表、列、行と呼ばれるものがあるのでぜひ覚えてください。
また、参考書などでレコードやテーブルなど別の呼び名で書かれていることもありますが、
それらはただの別の呼び名なので焦らないでくださいね。
データベースは基本的に1件のデータを1つの行として記録していきます。
また、削除や追加する際も、行単位で行っていきます。
ちなみに関係データベースの呼び名は
「リレーショナルデータベース」と言います。
正規化
関係データベースでは記録されているデータに矛盾や重複が発生させないように
最適な形にすることが大切になります。
その方法として、表を分割したりして最適な形に作り上げていきます。
これを正規化と言います。
例えば下の図では、ある学校の生徒と所属する部活動を記した表があるとします。
そこで、現在の「芸術部」を「美術部」に変更するという指示が出た場合、
最初の表のままだと、部活動の「芸術部」の部分をすべて書き換えなければなりません。
では、どうするのか。それが分割です。
部活動の名前が書かれていた列を、部活動IDとして記録するとします。
こうすることで、たとえ部活動の名前が変わっても部活表の方の名前を帰るだけで済みます。
正規化をすることで、修正が楽になるだけではなく、
書き換える際のミスや記入漏れの可能性を減らすことができます。
本来の正規化はもう少し複雑ですが、基本的な知識はこのくらいで大丈夫です。
関係演算
表を正規化して最適な形にするメリットはわかりましたでしょうか。
しかし正規化をして分割を繰り返した表はどのようにして使っていくのかという問題になります。
そこで出てくるのが関係演算です。
関係演算には「選択」「射影」「結合」などがあります。
代表的なものを1つずつ見ていきましょう。
選択
「選択」は行を取り出す演算で、表の中から特定の
条件に合致する行のみを取り出します。
射影
「射影」は列を取り出す演算で、表の中から特定の
条件に合致する列のみを取り出します。
結合
「結合」は表と表を合わせる演算で、表の中にある共通の列を繋いで
2つの表を1つにします。
このように関係演算を用いて表をさまざまな形にしてデータを活用します。
この時に作られる仮想的な表のことを「ビュー表」と言います。
さて今回の最後に「スキーマ」について見ていきましょう。
スキーマはデータベースの構造や仕様を定義するものです。
標準的に使用されている規格では3層スキーマ構造を採用しており、
「外部スキーマ」「概念スキーマ」「内部スキーマ」という3層に分けることで、
データの独立性を高めています。
関係演算を使って仮想的な表を触っても、
データベースのデータの構造には影響は出ません。
また、物理的に記憶させているハードウェアに変更があっても
プログラムの修正は必要ありません。
さいごに。
今回も最後までご覧頂きありがとうございました。
データベースはプログラミングの勉強をしていると
多くの方が学ぶことにあんる分野だと思います。
勉強しておいて損はありません。
SQLとか触れるとかっこいいですね〜!!!
宜しければツイッター(@potato_head0809)のフォローをしてくださいね!
以上になります。お疲れ様でした。