ITの教科書検索
入門読了 約8分

データベースとは ― 仕組みと種類

データベースとは、データを決まった形式でまとめ、大勢が同時に読み書きしても矛盾しないよう管理する仕組みです。表計算ソフトとの違い、DBMSの働き、RDBとNoSQLの違いが分かります。

目次
  1. データベースとは
  2. DBMSの役割
  3. RDBとNoSQLの種類
  4. 練習問題

データベースとは、決まった形式で大量のデータをまとめて保存したもの

データベースとは、決まった形式でデータをまとめて保存し、複数の利用者やプログラムが同時に読み書きできるようにしたものです。ネットショップの在庫や注文、会員の情報は、たいていデータベースに入っています。多くのデータベースは、データを表の形で並べて管理します。

表計算ソフトでもデータを表の形で並べられますが、データ量が増えると検索が遅くなりがちです。複数人が同時に編集すると、片方の変更が消えてしまうこともあります。

データベースは、データ量が増えても速く検索できるように作られています。複数の利用者やプログラムが同時に使っても、データが矛盾しない仕組みも備えています。こうした管理を受け持つソフトウェアがDBMSです。

DBMSとは、データベースを管理するソフトウェア

データベースは、DBMS(データベース管理システム)というソフトウェアを通して使います。利用者やアプリケーションはデータベースのファイルに直接触れず、DBMSに問い合わせます。

注文アプリ問い合わせる在庫管理アプリ問い合わせる会員ポータル問い合わせるDBMSデータを定義する同時の更新を調整異常から復元する整合性を保って処理保存されたデータ
3つのプログラムが同時に問い合わせても、必ずDBMSという1つの窓口を通ります。DBMSは同じデータへの書き換えを1件ずつ進め、データの整合性を保ちます。

例えば、注文アプリと在庫管理アプリが、同じ商品の在庫数を同時に書き換えようとしたとします。DBMSは、片方の書き換えが終わるまで、もう片方を待たせます。これで在庫の数が食い違わなくなります。この仕組みを同時実行制御、または排他制御と呼びます。待たせるためにデータに掛ける鍵をロックといいます。ロックの種類や、ひとまとまりの処理であるトランザクションが複数絡む場面は、トランザクションとACID特性の記事で説明しています。

待たせ方によっては、複数のトランザクションが互いのロックの解放を待ち合い、どちらも進めなくなることがあります。この状態をデッドロックと呼びます。起きる仕組みと対処はデッドロックの記事にまとめました。

停電や機器の故障でデータベースが止まることもあります。DBMSはデータを書き換えるたびに、その内容をログと呼ぶ記録に残しています。故障が起きても、このログをもとに矛盾のない状態に戻せます。この仕組みを障害回復と呼びます。

DBMSは、利用者ごとに見てよいデータや、書き込んでよいデータを制限する機能も持ちます。情報セキュリティの3要素のうち、機密性と完全性をデータベースの中で守る機能です。利用者ごとに見せるデータの形を分けて定義する考え方は、3層スキーマの記事で説明しています。

データベースの種類は、表で持つRDBと、それ以外のNoSQLに分かれる

データベースの種類は、大きくRDBとNoSQLに分かれます。RDB(リレーショナルデータベース)は、どの行も同じ列を持つ表の形でデータを管理します。

RDB(表形式)キーバリュー型注文ID顧客名商品数量1001山田ノート31002佐藤ペン10どの行も同じ4列を持つキー:order:1001値:顧客名 山田商品 ノート・数量 3キー:order:1002値:顧客名 佐藤配送方法 店舗受け取り値の中の項目は注文ごとに違ってよい
同じ「注文」のデータでも、RDBはどの行も同じ4列で持ちます。キーバリュー型は、値の中の項目(オレンジの行)が注文ごとに違ってもかまいません。

NoSQLは、RDB以外の種類のデータベースをまとめて指す呼び方です。多くの種類では、データ1件ごとに項目が違ってもかまいません。

データベースの種類と、データの持ち方・向いている用途
種類データの持ち方向いている用途
RDB表(行と列)で管理する複数の表を関連付けて正確に集計する
キーバリュー型キーと値の組で管理するキーを指定して、データを素早く保存・取得する
ドキュメント指向JSONに似た文書の形で管理する項目の数や形がデータごとに違うものを扱う
列指向列ごとにまとめて管理する大量データの集計を速くする
グラフノードとつながり(エッジ)で管理するデータとデータのつながりそのものを調べる

どの種類を選ぶかは、扱うデータの形と、検索や集計のしかたで決まります。ほかに、RDBより前からある階層型・網型や、オブジェクト指向データベース・XMLデータベースもあります。

RDBが表どうしをつなぐ仕組みはRDBの記事で、表をどう分割して整理するかは正規化の記事で説明しています。NoSQLの型ごとのデータの持ち方はNoSQLの記事で比べています。AWSのサービスでは、Amazon DynamoDBがキーバリュー型とドキュメント指向の両方に対応しています。

複数の場所のサーバにデータを置き、1つのデータベースとして使うものを分散データベースと呼びます。日々の業務を記録するデータベースと、集めたデータを分析するデータウェアハウスは、役割が違います。

参考にした資料

練習問題(全5問)

Q1データベースの説明として最も適切なものはどれ?
Q2DBMSの役割として<b>適切でない</b>ものはどれ?
Q3同じデータへの書き換えが同時に来ても、DBMSが1件ずつ進めて矛盾を防ぐ仕組みを何と呼ぶ?
Q4RDBの特徴として正しいものはどれ?
Q5キーバリュー型データベースが向いているのはどれ?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

おすすめの本 PR

セキュリティとデータベースは、基本情報技術者試験の対策本でまとめて学べます。

目的別の本の選び方を見る

データベースの記事を続けて読む

データベース 全36本中1本目