一言で!
リレーショナルデータベースとは
データを集めた表同士をつなぐ保管庫。
他には?
1枚の表に全部は書かない。ただし、番号をたどれば、欲しい形で取り出せる。
データベースの中で、いま主流の形だ。
リレーショナルデータベースとは?
そもそもデータベースとは
データベースは、データを1か所に集めてためておき、頼めば出し入れしてくれる仕組みだ。
人、商品、注文など、整理された情報をしまっておける(Oracle「What Is a Database?」)。
手元のファイルと違い、たくさんの人やアプリが同じデータを使える。
リレーショナルデータベースはテレビ局の保管庫
テレビでは、スポーツの大会の前などに、過去の映像の総集編をやることがある。
何十年分もの映像から、必要な場面だけが集まって1本になる。
できるのは、テレビ局の保管庫が整理されていて、編集担当がいるからだ。
テレビ局
ディレクター
| 頼む ^ 渡す
v |
編集担当
| 探す ^ 取り出す
v |
保管庫 (映像)
ディレクターが「この選手の決勝の場面だけほしい」と頼む。
すると編集担当が保管庫から探し、番組で使える形にして渡す。
リレーショナルデータベースの仕組みもコレに近い。
リレーショナルデータベースの編集担当は、DBMS(データベース管理システム)という。
リレーショナルデータベース
ディレクター (人・アプリ)
| 頼む ^ 渡す
v |
編集担当 (DBMS)
| 探す ^ 取り出す
v |
保管庫 (表に整理されたデータ)
表に分けて、番号でつなぐ
保管庫では、映像に番号を振り、一覧表で管理する。
映像の一覧と選手の一覧を別々の表にして、番号でつなぐ。
映像の一覧
映像番号 内容 選手番号
5001 決勝 101
5002 準決勝 102
5003 予選 101
選手の一覧
選手番号 名前
101 佐藤
102 鈴木
映像5001の選手番号は101。選手の一覧で101を引くと、佐藤だと分かる。
選手の名前の表記が変わっても、選手の一覧を1か所直せば足りる。
「リレーショナル」は「関係づけられた」という意味。
1枚ずつの表を、テーブルと呼ぶ。
表で持ち、表同士を番号でつなぐ。これがリレーショナルデータベースだ。
Excelとの違い
Excelは、自宅の棚に並べたホームビデオに近い。
自分で撮り、自分で並べ、見たくなったら自分で探す。
もともと表計算ソフトは、1人で使う前提で作られたものだ(Oracle「What Is a Database?」)。
何をどう書いても止められない代わりに、整えるのも守るのも自分になる。
Excel | リレーショナルデータベース | |
|---|---|---|
置き場所 | 手元のファイル | 1か所に集める |
使う人 | 基本は1人 | たくさんの人やアプリが同時に |
書き方 | 自由 | 決まった形だけ |
探し方 | 自分で探す | 頼むと合うものだけ返る |
Excelが劣っているわけではない。向いている場面が違う。
1人で使うならExcel、みんなで使うならリレーショナルデータベース。
みんなで使っても崩れない理由
Excelのファイルと違い、大勢で使う前提で作られている。
- 同時に頼まれても:複数のパソコンからの接続を、同時にさばく(PostgreSQL「Architectural Fundamentals」)。
- 途中で止まっても:複数の手順を、全部やるか全部やらないかの1つにまとめる(PostgreSQL「Transactions」)。半端な総集編は渡さない。
- 控えを取りやすい:1か所に集まっているので、控えも1か所で取れる。そのぶん、定期的なバックアップは欠かせない(PostgreSQL「Backup and Restore」)。
全部やるか全部やらないかのまとまりを、トランザクションという。
たとえば、作業の担当を佐藤さんから鈴木さんへ付け替えるとする。
佐藤さんの分を減らしたところで止まると、合計が合わなくなる。
トランザクションなら、失敗した時点で全部なかったことになる。
まとめ・私見
リレーショナルデータベースの仕組みは、ためておくことはもちろん。
探すという一点において非常に有効な仕組み。
撮りためた映像も、効率よく探せなければ、ないのと同じ。
けど、紐付けて探せる仕組みさえあれば、いつでも自分のお気に入りの、いいとこ取りが作れる!
豆知識
- データベース: データをためて出し入れする仕組みの総称。
- DBMS: データベースを扱うソフト。データベース管理システムの略。
- PostgreSQL: 無料で使える、リレーショナルデータベースのソフト。
- トランザクション: 全部やるか全部やらないかでまとめた、ひとかたまりの手順。
- IDS: 1960年代にGEで生まれた、初期のDBMS。
歴史
はじまり:工場の生産管理から生まれた
1960年代、コンピューターが扱うデータの量は急に増えていった(IBM「The relational database」)。
このころGE(ゼネラル・エレクトリック)にいたチャールズ・バックマンが、工場の生産管理の仕組みを作る。
そこから生まれたのがIDS(Integrated Data Store)だ。
ディスクに置くDBMSとして、日々の仕事で使われた最初のものとされる(Computer History Museum「Charlie Bachman」)。
バックマンはこの業績で、1973年にチューリング賞を受ける(IEEE Computer Society「Charles Bachman」)。
壁と転換点:道順から、表へ
ただ、当時のデータベースは、データの親子関係や保存場所の道順に縛られていた(IBM「The relational database」)。
1970年、IBMのエドガー・コッドが、データを表で持つ考えを論文にする(Codd「A Relational Model of Data for Large Shared Data Banks」)。
置き場所ではなく、中身の値でつなぐ。これが新しかった。
IBMは1973年からSystem Rで実用性を試し、1983年に製品のDB2を出荷する(IBM「The relational database」)。
1980年代に広まったこの形が、いまも主流だ(Oracle「What Is a Database?」)。
次の壁は、インターネットだった。
2007年、Amazonは論文で、買い物かごへの書き込みを障害時にも断らない仕組み、Dynamoを示す(Werner Vogels「Amazon’s Dynamo」)。
一部の整合性を手放してでも、止まらないことを取った。
表が唯一の答えではなくなり、用途で選ぶ時代に入った。
いま進んでいる開発
- 2025年5月、AWSがAmazon Aurora DSQLの一般提供を始めた。止まりにくさを重んじた、サーバーの管理が要らない分散データベースだ(AWS(2025年5月27日))。
- 2026年10月、PostgreSQL 19の最初のリリース候補が公開された(PostgreSQL(2026年10月15日))。
この先
保管庫の置き場所は、社内のサーバーから外のサービスへ広がっている。
それでも、表で持って番号でつなぐ形は、1970年の考えのまま残っている。
次の50年も表のままかは、まだ分からない。
年表
| 年代・年 | 主な出来事 | 主な人物・組織 | 主な国・地域 | 特徴 |
|---|---|---|---|---|
| 1960年代 | GEでIDSが生まれる | チャールズ・バックマン | アメリカ(GE) | 工場の生産管理から生まれた、初期のDBMS。[Computer History Museum](https://computerhistory.org/profile/charlie-bachman/) |
| 1970年 | データを表で持つ考えの論文 | エドガー・コッド | アメリカ(IBM) | リレーショナルデータベースの出発点。[Codd(1970)](https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf) |
| 1973年 | System Rの開発が始まる | IBM | アメリカ | 表の考えが実用になるかを試した。[IBM](https://www.ibm.com/history/relational-database) |
| 1983年 | DB2が出荷される | IBM | アメリカ | 表で持つデータベースが製品になった。[IBM](https://www.ibm.com/history/relational-database) |
| 2007年 | AmazonがDynamoの論文を発表 | Amazon | アメリカ | 障害時にも書き込みを断らないことを優先した。[Amazon’s Dynamo](https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html) |
| 2025年5月 | Amazon Aurora DSQLの一般提供 | AWS | アメリカ | サーバーの管理が要らない分散データベース。[AWS](https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-aurora-dsql-generally-available/) |
| 2026年10月 | PostgreSQL 19の最初のリリース候補 | PostgreSQL Global Development Group | 国際 | 正式版の手前の版が公開された。[PostgreSQL](https://www.postgresql.org/about/news/postgresql-19-rc-1-released-3409/) |