RDB(リレーショナルデータベース) りれーしょなるでーたべーす
RDBSQLテーブルACIDリレーショナルモデルデータベース
RDB(リレーショナルデータベース)について教えて
RDB(リレーショナルデータベース)とは
RDB(Relational Database)は、データを行(レコード)と列(カラム)からなるテーブル(表)の形式で管理し、テーブル間の関係(リレーション)を使って複雑な問い合わせができるデータベースです。操作にはSQL(Structured Query Language)を使います。
RDBの最大の特徴はACID特性(後述)を保証していることです。銀行の振込処理など「絶対に中途半端な状態で終わってはいけない」処理の信頼性を担保します。在庫管理・会計・受注管理など「数字が合わないと困る」業務システムの基盤として長年使われてきました。
現在最も使われるRDB製品はPostgreSQL、MySQL/MariaDB、Microsoft SQL Server、Oracle 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の使い分け
関連する規格・RFC
| 規格 | 内容 |
|---|---|
| ISO/IEC 9075 | SQL言語の国際標準(SQL-92, SQL:1999, SQL:2016等) |
| ISO/IEC 10026 | 分散トランザクション処理(TP)の標準 |
関連用語
- NoSQL — RDBとは異なるデータモデルのデータベース群
- RDS・Azure SQL・Cloud SQL — クラウドで使えるマネージドRDB
- Aurora・Aurora Serverless — AWSのクラウドネイティブRDB
- リードレプリカ — RDBの読み取り負荷分散技術
- マルチAZ配置 — RDBの高可用性構成