皆さんこんにちは。WEBサービスと切っても切り離せない関係にあるデータベース。
よく名前は聞くものの改めてデータベースとは?ときかれるとなかなか上手く答えられませんよね。
そこでここでは初心者の方の疑問を解消するべくデータベースについて説明していきながら、データベース管理システムやデータベースの種類なども取り上げていきます。
目次
データベースとは?定義や機能を紹介
まず初心者の方のためにデータベースとは?という疑問に簡潔に解説していきます。
簡単に言うとデータベースというのは沢山のデータを一つにまとめたもの、データの集合体です。この時データはただ集めればいいというわけではなく、同じ形式で整然と管理されている必要があります。
そして一般的にデータベースと言うとコンピュータ上に保存されたデータ群のことを指します。なぜデータベースを使うのかというとこのようなメリットがあるからです。
・データが大量にあったとしても管理しやすい
・データを共有できる
・必要なデータを探しやすい
例えば会社の顧客情報などデータベースでなくてもエクセルで管理したらいいじゃないかと思うかもしれません。顧客の数が少なければそれでもいいのかもしれませんが、数万件というデータを扱う場合エクセルのシートでは管理しきれないでしょう。
データベースを活用できれば大量のデータの中から瞬時に必要なデータを見つけたり、編集して色々な用途で使ったりできるようになるのです。
・会社の顧客情報
・社員の情報
・電話帳
・病院のカルテ
こういったものもデータベースで管理することができます。
WEBサービスとデータベース
データベースはWEBサービスを開発する時に必ずと言っていいほど必要になります。WEBサービスのサーバーはたいていWEBサーバー、アプリケーションサーバー、データベースの3つで構成されています。
WEBサービスでのデータベースの役割はサービス上のデータを整理して保管し、必要な時に必要なデータを顧客に提示することです。
WEBサービスの運営で必要になるデータには次のようなものがあります。
・ログイン情報
・ショッピングサイトの商品
・予約サイトのホテルやレストランの情報
大規模なサービスになるとこういったデータは膨大な量になりますが、データベースを構築することで管理や検索が容易になるのです。
データベース管理システムとその種類
データベースをコンピューター上で管理する時に欠かせないデータベース管理システム(DBMS)。データベースはデータの集積ですが、データベース管理システムはそのデータベースを管理し運用するためのシステムです。
・データーの編集
・データの追加
・データの検索
・複数人でのデータの共有
IT業界の初心者の方の中にはもしかするとデータベース管理システムとデータベースは同じものだと思っていたという方もいるかもしれません。システムやWEBサービスのデータベースでデータベース管理システムが使われていないことはまずないので混同してしまっても不思議ではありません。
WEBサービスではユーザーが操作した内容がまずデータベース管理システムに届き、データベータ管理システムからデータベースを操作し欲しい情報を得るという仕組みになっています。それではよく使われるデータベース管理システムを紹介しておきましょう。
Oracle Database
https://www.oracle.com/jp/index.html
世界的に高いシェアを獲得しているOracle Database。高額ですがセキュリティがしっかりしていて安定しているため、企業のデータベースで使われることが多いです。
いくつかの部署で個別に管理されていたデータベースをまとめて管理できる統合データベースで、導入するとさらに業務を効率化することができます。
SQLServer
https://www.microsoft.com/ja-jp/sql-server
マイクロソフトによって提供されているSQLServer。こちらも企業で利用されることが多いです。
自社設備で管理するオンプレミス型とクラウド上のサーバーを利用するクラウド型2種類のシステムから好きな方を選んで導入できます。
基本的に有料ですがテストをする開発者向けと小規模なアプリケーション向けに無料版も提供されています。
MySQL
MySQLはオープンソースのデータベース管理システムで、提供しているのは先ほど紹介したOracle社です。WEBシステム開発の現場で使われることが多いです。
安定感と信頼性から世界的に有名なサービスでもよく使われています。無料版もありますが商用利用する場合は有料のライセンスを購入してください。
PostgreSQL
PostgreSQL商用向けかどうかに関係なく無償で使えるオープンソースのデータベース管理システムです。大規模なデータを扱うのにはあまり向かないものの、多機能で使いやすいのが魅力です。
WEB開発の初心者の方が自作のWEBシステムを開発する時や開発現場でのテストなどでも気軽に利用できます。
SQLの役割
データベースやデータベース管理システムについて調べていると必ずSQLという単語が目に入りますね。SQLというのはデータベース言語の1つで、データーベース管理システムはSQLで操作します。SQLほぼすべてのデータベース管理システムで使うことができますよ。
SQLを書くことでデータベース管理システムに指示を出しますが、その指示にはこの3種類の内容があります。
・データ定義分(DDL) テーブルやインデックスを追加したり削除したり定義づけしたりする
・データ制御文(DCL) データを操作できる権限の付与や制限をする
・データ操作文(DML) データの編集や検索をする
ここまで見てきたようにデータの集積であるデータベースを操作し運用するためには、データベース管理システムとSQLが不可欠なのです。
データベースには種類がある
データの蓄積であるデータベースですが、データの保存形式は1種類ではありません。いくつかの型に分かれていて、必要に応じて使い分けられています。
ツリー構造の階層型
階層型はデータをツリー構造に保存します。階層の上にあるデータから順に親、子、孫と考えた時、子は1つの親にしか、孫は1つの子にしか関連付けられません。
そのため2種類の親に関連する子が出てきたときに、何ヶ所にも同じ子を入力しないといけないなど、複雑なデータ管理にはあまり向かないというデメリットがありました。
網の目構造のネットワーク型
ネットワーク型は階層型を発展させたデータ保存形式です。一つの子を一つの親にしか関連付けられないというデメリットを克服し、網の目のように子や孫をいろいろな親や子に関連付けられるようになっています。
票形式のリレーショナル型
リレーショナル型はスプレッドシートのように行と列で管理される表でデータを保存します。複数の表を関連させることができ、複雑なデータを管理・編集するのに向いています。またこのタイプのデータを操作・編集する場合SQLを使います。
階層型やネットワーク型とは根本的に違う数学の集合論からできたデータ保存方法で、今はデータベースというとほとんどこの形式で作成されます。データベース管理システムはこのリレーショナル型のデータベースの管理に使われています。
高速処理が可能なNoSQL型
リレーショナル型のデータ保存だとデータ量が膨大で複雑になった時に、データを処理するスピードが遅くなることがありました。このデメリットを解消するために新しく登場したのがNoSQL型の保存形式です。
データを速く処理することが一番の目的で、整合性についてはリレーショナル型に劣ります。
NoSQLとなっていますがSQLを絶対使わないわけではなく、使うことも使わないこともできるという意味合いがあります。
まとめ
いかがでしたか?今回は初心者の方に向けてデータベースとは一体どんなものでどのように運用するのかについて紹介してきました。
データベースは企業などで大規模なデータを管理したり、WEBシステムを運用したりするのに欠かせません。その重要性からデータベースを専門に扱うデータベースエンジニアという職種もあります。
プログラミングを勉強しゆくゆくはWEBシステム開発現場で活躍したいという方にとってデータベースに関する知識は必須とも言えます。
この記事がデータベースがどういうものかいまいちわからなくて困っているという初心者の方の役に立てばうれしいです。