どうもshoto です。
現代のデジタル社会においてエンジニアでない一般の人も【データベース】というワードを耳にするようになりました。
CoinHack-Labもデータベースにお世話になっています。ありがとうデータベース!
でも実際には「データベースって何なの?」という方も多いかと思います。
そこで、この記事ではデータベースの基礎や関連知識についてなるべくわかりやすく解説していきたいと思います!
- データベースの意味
- データベースとユーザーの間を取り持つDBMSの役割について
- データベース方式の種類
- リレーショナルデータベースを操作するSQL言語の簡単な概要
データベースの基本

データベースは様々な捉え方があるのですが、ここでは2つの認識を知ってもらえたらいいと思います。
2つの認識とは…
- 数値やテキストなどのデータがまとめられた情報。
- 数値やテキストなどのデータや情報を入力、変更、保存、削除するツール。
この2つの認識を知っていればOKだと思います!
もう少しわかりやすく噛み砕くと、数値やテキストという意味では昔の電話帳などを思い浮かべるとわかりやすいかと思います。
電話帳には指名や電話番号、場合によっては住所が記載されていて、テキストや数値などの情報がまとめられた立派なアナログデータベースですよね。
それらがデジタル情報になったと思えばイメージしやすいかと思います!
次にデータベースを管理するシステム、DBMSについて解説していきます。
データベース管理システムDBMSについて

DBMSとは【Database Management System】の略称で、データベースの構築や管理をするシステムになります。
DBMSを利用することでアプリケーションを通じてデータの追加や変更、削除を効率的に行うことができるほか、権利制御や順序制御などを実装する事ができます。
「権利制御と順序制御とは…?」
例えば企業の顧客データを管理しているデータベースがあるとしましょう!
このデータベースに企業外部のユーザーがアクセスして、顧客の個人データを閲覧するのはまずいですよね?
そこで権利制御では、認証されたユーザー以外をデータベースにアクセスできないように制御します。
また、順序制御では、複数のユーザーが同一のデータを同時に編集しようとした場合、どちらの編集を採用するかの判断に利用される制御です。
例えば先に編集を始めた人のデータを採用するなどが順序制御です!
このようにデータベースのアクセスなどに制約を実装したり、利便性を向上させたりするものがDBMSであり、ユーザーとデータベースの間を取り持つ役割を担います。
ありがとうDBMS!
データベースの種類について
ここでは一般的に知られるリレーショナルデータベースとその他のデータベースについて紹介していきたいと思います!
階層型データベース

階層型データベースは文字通り階層型に管理されたデータベースをいいます。
そのためアクセスルートは一通りしか存在せず、データの冗長(無駄なデータが増える)が発生しやすくなります。
この方式では無駄な複製データが増えたり、データにアクセスする際にデータ構造を理解しておく必要があります。
ネットワーク型データベース

ネットワーク型データベースでは個別のデータが繋がっており、任意の親と子のデータレコードを持つ事ができます。
この方式により階層型データベースにあったデータの冗長が軽減されましたが、階層型同様にデータの更新や変更には複雑なプログラムやデータ構造の理解が必要です。
リレーショナル型データベース
そして最も代表的とも言ってもいいデータベース方式がリレーショナルデータベースです。
リレーショナルデータベースでは、事前に定義された関連あるデータの集合体で、列(カラム)と行(レコード)を持つテーブルのセットとして構成されます。

データ同士は複数の関係によって関連し、SQL言語というものでユーザーが自由にデータベースを操作することができます!
リレーショナルデータベースはプログラムとデータの独立性が高く、データを変更してもプログラムへの影響はほぼありません。
また、柔軟なデータ操作性(入力、変更、削除)や操作の簡略性において階層型やネットワーク型よりも優れています。
データベースで有名な「Oracle」や「MySQL」もこの方式ですね!
次にデータベースを操作するSQL言語について解説したいと思います!
リレーショナルデータベースを操作するSQL言語
SQLは【Structured Query Language】の略称で、「エスキューエル」や「シークェル」と呼ばれたりする言語です。
ここでいう言語とはコンピュータに命令する機械語(プログラム)だと思ってください!
SQLはリレーショナルデータベースのデータを操作する際の言語で、RDBMS(relational database management system)に命令を出してデータの格納や取出を行い、データ分析やサービスなどに活用することができます。
また、RDBMSへのデータの要求はクエリ(問い合わせ)と呼ばれたりしていますね。
ということでデータベースについて簡単に解説しました。
最近ではAWS(Amazon Web Services)などで個人がデータベースを利用し何かサービスをする事も多くなってきました。
今後はさらにデータベースが身近になっていきそうですね。