データベース

RDB(リレーショナルデータベース) りれーしょなるでーたべーす

RDBSQLテーブルACIDリレーショナルモデルデータベース
RDB(リレーショナルデータベース)について教えて

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

データを「表(テーブル)」の形で管理して、表どうしを関連付けて検索できるデータベースだよ。ExcelシートをSQL言語で操作できるようにした感じで、業務システムの心臓部として50年以上使われてる定番技術なんだ!


RDB(リレーショナルデータベース)とは

RDB(Relational Database)は、データを行(レコード)と列(カラム)からなるテーブル(表)の形式で管理し、テーブル間の関係(リレーション)を使って複雑な問い合わせができるデータベースです。操作にはSQL(Structured Query Language)を使います。

RDBの最大の特徴はACID特性(後述)を保証していることです。銀行の振込処理など「絶対に中途半端な状態で終わってはいけない」処理の信頼性を担保します。在庫管理・会計・受注管理など「数字が合わないと困る」業務システムの基盤として長年使われてきました。

現在最も使われるRDB製品はPostgreSQLMySQL/MariaDBMicrosoft SQL ServerOracle Databaseなどです。クラウド時代にはマネージドRDB(Amazon RDS、Azure SQL Database、Cloud SQL)として提供され、インフラ管理の手間が大幅に削減されています。


RDBの核心概念

概念説明
テーブルデータを格納する表。行と列で構成
主キー(Primary Key)レコードを一意に識別するカラム
外部キー(Foreign Key)別テーブルの主キーを参照するカラム
インデックス検索高速化のための索引
トランザクション複数の操作を一つの処理単位としてまとめる仕組み
ビュー複数テーブルを組み合わせた仮想テーブル

ACID特性

  • Atomicity(原子性) — トランザクションは全部成功 or 全部失敗。中途半端はない
  • Consistency(一貫性) — データは常に整合性を保つ
  • Isolation(分離性) — 同時実行されるトランザクションは互いに干渉しない
  • Durability(永続性) — コミット済みのデータはシステム障害後も失われない

歴史と背景

  • 1970年 — Edgar Codd(IBM)がリレーショナルモデルを論文「A Relational Model of Data for Large Shared Data Banks」で発表
  • 1979年 — Oracleが世界初の商用RDBMSをリリース
  • 1987年 — SQLがISO標準化(SQL-87)
  • 1989年 — PostgreSQLの前身Postgresが開発開始
  • 1995年 — MySQLが誕生。Webアプリケーション時代のRDBとして普及
  • 2010年代NoSQLの台頭でRDBの使い分けが重要に
  • 現在 — マネージドRDBとしてクラウドでの利用が主流

RDBとNoSQLの使い分け

RDB vs NoSQL 使い分けガイド RDBを選ぶ場合 ✓ データの整合性が最重要 ✓ 複雑なJOINクエリが必要 ✓ トランザクション処理が必要 ✓ スキーマが安定している ✓ 会計・在庫・受注管理 ✓ 人事・ERPシステム NoSQLを選ぶ場合 ✓ 超大規模データ(億件以上) ✓ スキーマが頻繁に変わる ✓ 高速な読み書きが必要 ✓ SNSのタイムライン・ログ ✓ IoTセンサーデータ ✓ ゲームのスコア管理

関連する規格・RFC

規格内容
ISO/IEC 9075SQL言語の国際標準(SQL-92, SQL:1999, SQL:2016等)
ISO/IEC 10026分散トランザクション処理(TP)の標準

関連用語