データベース基本概念

DBMS(データベース管理システム) でーたべーすかんりしすてむ

データベースSQLRDBMSトランザクションデータ管理Oracle
DBMSについて教えて

簡単に言うとこんな感じ!

DBMSは「データを安全に・効率よく・みんなで使えるように管理してくれるソフトウェア」だよ!図書館で言えば、本(データ)を棚に整理して、貸し出し記録をつけて、同時に複数の人が使えるようにしてくれる「司書さん+管理システム」みたいな存在なんだ!


DBMSとは

DBMS(DataBase Management System:データベース管理システム)とは、大量のデータを組織的に保存・管理し、複数のユーザーやアプリケーションから安全かつ効率的に利用できるようにするためのソフトウェアのことです。ExcelやCSVファイルのような「ただファイルにデータを並べる」だけの仕組みとは異なり、データの整合性の保証・アクセス制御・同時利用の調整など、実用的なシステムに必要な機能を一手に担います。

DBMSがあることで、アプリケーション開発者は「データをどのファイルのどのバイト位置に書くか」といった低レベルな処理を意識せずに済みます。その代わり、SQL(Structured Query Language)などの標準的な言語を使って「この条件に合うデータを取ってきて」と命令するだけでよくなります。業務システム・ECサイト・会計ソフトなど、ほぼすべての企業向けITシステムの裏側にDBMSが動いています。


DBMSの主な機能と役割

機能説明身近な例え
データ定義(DDL)テーブルの構造を作成・変更・削除する棚を作ったり並べ方を決めたりする
データ操作(DML)データの検索・追加・更新・削除を行う本を取り出す・入れる・書き換える
トランザクション管理複数の処理を「まとめて成功」または「まとめて取り消し」にする振込処理を途中で止めない
同時実行制御複数ユーザーが同時に使っても矛盾が起きないようにする同じ在庫を二重に売らない
障害回復(リカバリ)クラッシュ時もデータを失わず元に戻せるバックアップ+更新ログで復元
アクセス制御ユーザーごとに読み書きの権限を分ける経理しか給与データを見られない

ACID特性:トランザクションの4大原則

DBMSの信頼性を語るうえで欠かせない概念が ACID特性です。「アシッド」と読み、次の4つの頭文字から来ています。

頭文字英語意味
AAtomicity(原子性)処理は「全部成功」か「全部取り消し」のどちらか
CConsistency(一貫性)処理前後でデータの整合性が保たれる
IIsolation(独立性)複数の処理が互いに影響しない
DDurability(永続性)完了した処理は障害が起きても消えない

覚え方:「A(当然)C(一貫して)I(いつも)D(大丈夫)」


歴史と背景

  • 1960年代前半 — 磁気テープへのファイル管理が主流。データの重複・不整合が深刻な問題に
  • 1968年 — IBMが階層型データベース「IMS」を開発。NASA のアポロ計画でも使用
  • 1970年 — Edgar F. Codd(エドガー・コッド)が関係モデル(リレーショナルモデル)を論文で発表。現在のRDBMSの理論的基盤
  • 1979年 — Oracle(当時 Relational Software)が商用RDBMSを世界初リリース
  • 1986年 — SQLがANSI(米国規格協会)により標準化。データ操作の共通言語が確立
  • 1990年代 — PostgreSQL・MySQL などオープンソースDBMSが台頭。コスト削減に貢献
  • 2000年代後半 — SNS・IoTのビッグデータ需要で NoSQL DBMSMongoDB・Cassandraなど)が登場。柔軟なデータ構造に対応
  • 2010年代〜現在 — クラウド上のマネージドDBMS(Amazon RDS・Google Cloud SQLなど)が普及。運用コストの大幅な削減が実現

DBMSの種類と代表製品

大きく分けると、RDBMS(関係型)NoSQLの2系統があります。

DBMSの種類 RDBMS(関係型) テーブル形式・SQL使用 Oracle Database 大企業・基幹系に強い商用DB MySQL WebシステムでNo.1シェアのOSS PostgreSQL 高機能・拡張性に優れたOSS Microsoft SQL Server Windows環境と親和性が高い SQLite 軽量組込み用・スマホアプリ等 NoSQL(非関係型) 柔軟な構造・大量データ向け MongoDB ドキュメント型・JSONで保存 Redis キー・バリュー型・超高速キャッシュ Cassandra 列指向・超大規模分散処理向け Amazon DynamoDB AWSのフルマネージドNoSQL Elasticsearch 全文検索特化・ログ解析に多用 vs

RDBMSとNoSQLの選び方

観点RDBMS向きNoSQL向き
データ構造項目が決まっている(顧客情報・受注管理)構造が不定形(SNS投稿・センサーデータ)
一貫性厳密さが必要(金融・在庫)多少のズレを許容できる(アクセスログ)
データ量数百万〜数千万行数十億行以上のビッグデータ
開発速度設計を丁寧に行う必要があるスキーマ変更が柔軟で素早い

関連する規格・RFC

規格・RFC番号内容
ISO/IEC 9075SQL言語の国際標準規格(SQL:2016など)
ISO/IEC 13249SQLマルチメディア拡張(空間・テキスト等)

関連用語

  • データベース — データを構造化して蓄積する仕組み全般
  • RDBMS — DBMSの中でも関係モデルを採用したもの(Oracle・MySQLなど)
  • SQL — DBMSにデータを問い合わせるための標準言語
  • トランザクション — 一連の処理をまとめて扱う単位。ACID特性の核
  • NoSQL — 関係モデルにとらわれない新世代のDBMSの総称
  • ER図 — データベース設計時にテーブル間の関係を表す設計図
  • インデックス — DBMSが検索を高速化するための索引機能
  • クラウドデータベース — クラウド上で提供されるマネージドDBMSサービス