データベース(DataBase)

データベース(DataBase、略称:DB)とは、大量のデータを整理・蓄積し、後から高速かつ正確に「検索・追加・更新・削除」ができるように管理されたデータの集まり、またはその管理システム(DBMS)のことです。

システム開発において、ユーザー情報、商品の在庫、アプリの投稿内容など、永続的に保存し、状況に応じて引き出す必要のあるデータはすべてデータベースに格納されます。

ファイル保存(CSVなど)との違い

単にデータを保存するだけなら「ストレージにExcelやCSVファイルを置いておく」ことでも可能ですが、システム開発においてはデータベースが不可欠です。その理由は以下の表のような違いがあるためです。

項目 ファイル保存(CSVなど) データベース(DB)
検索スピード ファイル全体を上から探すため、データ量が増えると非常に遅くなる。 インデックス(索引)などの仕組みにより、何百万件のデータからでも一瞬で目的のデータを見つけ出せる。
同時アクセス 複数人が同時に書き込もうとすると、ファイルが壊れたり上書きの競合が起きやすい。 何千人が同時にアクセス・更新しても、順番を整理して矛盾なく安全に処理できる。
データの安全性 途中でエラーが起きると、データが中途半端な状態になりやすい。 処理が失敗した場合は「処理の直前」の状態まで自動で巻き戻すことができる。

代表的なデータベースの種類

現代のシステム開発では、扱うデータの特徴に合わせて主に2つのタイプのデータベースが使い分けられます。

  • リレーショナルデータベース(RDBMS)
    データを「行と列」からなる表形式(Excelのようなイメージ)でカッチリと管理する、最も伝統的で標準的なデータベースです。データ同士の関係性(リレーション)を厳密に定義でき、複雑な集計やお金が絡むような正確性が求められるシステムに向いています。
    代表例:MySQL(WordPressの裏側でも使われています)、PostgreSQL、Oracle Database など
  • NoSQL(Not Only SQL)
    表形式にとらわれず、より柔軟なデータ構造(ドキュメント型やキーバリュー型など)でデータを保存する次世代のデータベースです。事前に厳密な表の枠組みを決める必要がないため、仕様変更に強く、リアルタイムな通信やスケーラビリティ(拡張性)に優れています。モバイルアプリやPWAの開発などでよく採用されます。
    代表例:Firebase Firestore、MongoDB、Redis など

主なデータベース製品

実際の開発現場でよく名前が挙がる代表的なデータベース製品を、種類別にまとめました。用途や規模に応じて使い分けられています。

製品名 種類 特徴
MySQL RDBMS 世界で最も普及しているオープンソースDBの1つ。WordPressの裏側でも使われている。
PostgreSQL RDBMS オープンソースの本格派RDBMS。機能が豊富で拡張性が高い。
Oracle Database RDBMS 大企業の基幹システムなどで古くから使われている商用DB。
SQL Server RDBMS Microsoft製の商用DB。Windows環境やAzureとの親和性が高い。
MongoDB NoSQL(ドキュメント型) JSONに近い柔軟な形式でデータを保存する、代表的なNoSQL製品。
Redis NoSQL(キーバリュー型) データをメモリ上で扱う高速なDB。キャッシュ用途でよく使われる。
Firebase Firestore NoSQL(ドキュメント型) Googleが提供するクラウド型DB。モバイルアプリやPWAの開発で人気。

あわせて知っておきたい用語

  • SQL(シークエル / エスキューエル)
    リレーショナルデータベースに対して、「この条件に合うデータを抽出して」「このデータを更新して」といった命令を出すためのデータベース専用のプログラミング言語です。
  • クエリ(Query)
    データベースに対する「問い合わせ(命令)」そのもののことです。「クエリを投げる」「クエリが重い(処理に時間がかかっている)」といった使い方をします。
  • トランザクション(Transaction)
    複数のデータ更新処理を「絶対に分割できない1つのセット」として扱う仕組みのことです。例えば「Aさんの口座から引き落とし、Bさんの口座に入金する」という処理の途中でエラーが起きた場合、両方とも元の状態に戻す(ロールバックする)ことで、お金が消えるなどの矛盾を防ぎます。

コメント

タイトルとURLをコピーしました