1. OSSのレキシラジオ
  2. PostgreSQLのレキシ〜「遅すぎ..
PostgreSQLのレキシ〜「遅すぎて直せない」から始まった40年の革命〜
2026-03-23 18:52

PostgreSQLのレキシ〜「遅すぎて直せない」から始まった40年の革命〜

今週のテーマは「PostgreSQLのレキシ」です。


自分が作ったデータベースを「遅すぎて直しようがない」と言い切り、ゼロから作り直した研究者がいました。

マイケル・ストーンブレイカーがINGRESの成功を捨ててまで追い求めた「拡張性」という設計思想。それが40年後、AI時代のpgvectorを支えることになるとは誰が想像したでしょうか。


2人の大学院生によるSQL対応、4カ国4人のボランティアから始まったコミュニティの成長、そしてデータベースの"App Store"とも呼べるCREATE EXTENSION。


良い骨格は30年持つ——その言葉の意味を、このエピソードで体感してください。

データベースに興味がある方はもちろん、ソフトウェア設計の哲学に触れたいすべての方へ。


https://github.com/postgres/postgres

感想

まだ感想はありません。最初の1件を書きましょう!

サマリー

PostgreSQLは、40年以上の歴史を持つオープンソースのリレーショナルデータベースであり、現在最も広く利用されているデータベースの一つです。その起源は、1970年代にマイケル・ストーンブレイカー氏が始めたINGRESプロジェクトに遡ります。INGRESの成功後、ストーンブレイカー氏は、地理情報システムへの応用における「遅すぎて直しようがない」という限界に直面し、拡張性を重視した新しいデータベース「Postgres」をゼロから設計し直しました。このPostgresは、ユーザーが自由にデータ型を定義できる仕組みなどを盛り込み、学術プロジェクトでありながら多様な分野で利用されました。 1993年にバークレーでのプロジェクトが終了した後、大学院生によって独自クエリ言語がSQLに置き換えられ、オープンソースとして公開されました。その後、世界中のボランティアによってコミュニティが形成され、カナダ、アメリカ、ロシアなど、4カ国4人の開発者から始まったプロジェクトは、現在では463名のコントリビューターを擁するまでに成長しました。特に、ユーザーが新しい機能を追加できる「CREATE EXTENSION」の仕組みは、PostgreSQLの拡張性を飛躍的に高め、AI時代のpgvectorのような機能も容易に統合可能にしました。 PostgreSQLは、その堅牢な設計思想とコミュニティによる継続的な改善により、クラウド時代においても主要なクラウドプロバイダーに採用され、AIアプリケーションの基盤としても選ばれています。良い骨格は30年持つという言葉通り、そのアーキテクチャは長年にわたり進化し続け、業界標準としての地位を確立しています。

PostgreSQLの起源と拡張性の追求
こんにちは、OSSのレキシラジオです。このポッドキャストでは、エンジニアであり、ポコアポケモンを買おうか迷っているhentekoが、毎週一つのOSSプロジェクトを取り上げて、そのプロジェクトにまつわる歴史を紹介する番組になります。
最近ですね、ポコアポケモンという新しいポケモンのゲームが出たじゃないですか。 買おうかどうかめっちゃ迷ってるんですよね。
ポケモン好きとしては、もちろん気になるんですけど、ちょっと価格がちょっと高いかなと思ってまして。 悩ましいなぁと思いつつ、まぁ結局後々買っちゃうんだろうなぁとは自分でもわかってるんですけどね。
さて、ポケモンの図鑑データも、なんかもうきっと裏側ではデータベースに入っているわけですけども、 今週のテーマはまさにそのデータベースです。
PostgreSQLについて見ていけたらなと思います。 皆さんデータベースって使ってますかね?
ウェブアプリを作ったことがあるエンジニアなら、まず間違いなく触ったことがあると思います。 ユーザー情報を保存したり、注文履歴を管理したり、ログを記録したり、そういうデータの置き場所ですよね。
PostgreSQLっていうのは、そのデータベースの中でも今一番使われているオープンソースのリレーショナルデータベースです。
スタックオーバーフローという開発者向けのQ&Aサイトの調査では、 2025年に開発者の55.6%が使っていると回答していて、3年連続で最も使われるデータベースの一位です。
2位のマイSQLに10個ポイントの差をつけているっていうから、もうダントツかなと思います。 今日お話ししたいのは、このPostgreSQLの約40例に渡る歴史なんですけど、これがまたすごいんですよね。
一人の研究者のデータベースはもっと自由であるべきだっていうような問いから始まって、大学のプロジェクトが終わっても、世界中のボランティアに引き継がれて、今や世界のデファクトスタンダードになりました。
しかもその根っこにある設計思想は40年前からずっと変わっていません。 これすごいですよね。それでは早速見ていけたらなと思います。
まずはPostgreSQLの源流からお話しします。
1970年、IBMのエドガー・コットさんというような方が、ジュレーショナルモデルっていうデータベースの考え方を発表します。
データをテーブル、つまり表の形で管理しましょうというような考え方で、今のデータベースの基礎になっているものです。
この考え方に触発されて、1973年にUCバークレイ、カルフォルニア大学バークレイ校のマイケル・ストーンブレイカーさんがイングレスというプロジェクトを始めます。
リレーショナルモデルって本当に実用的に動くのかっていうようなことを証明するプロジェクトでした。
そしてイングレスは見事に成功して、データを素早く検索するためのビートリーインデックスっていう、今でも使われているような重要な技術を生み出したりしました。
ところがですね、イングレスの成功の後、ストーンブレイカーさんは自分の成功策の限界に直面することになります。
イングレスを地理情報システム、いわゆるGISとして使おうとしました。地図の上にポリゴンを描いたり、設計図の図形を扱ったりしたかったんですね。
でも結果はストーンブレイカーさん自身の言葉で任意に遅く修正不可能というような、めちゃくちゃ遅くて、しかも直しようがないっていうようなことを言ってるんですよね。
これ自分が作ったものに対してですからね、相当悔しかったかなと思います。
数値や文字列の処理には優れていたんですけど、地図上のポリゴンとか設計図の図形とか、世の中にあふれる多様なデータを扱おうとすると壁にぶつかりました。
ユーザーがこういうデータ型も追加したいと思っても追加する仕組みがなかった。つまり拡張性がなかったんですよね。
でもですね、ここがストーンブレイカーさんのすごいところなんです。
普通だったらまあしょうがないかって諦めるか、パッチを当ててごまかすかするかもしれません。
でもストーンブレイカーさんの答えは明快でした。
大きく複雑なデータモデルではなく、拡張可能な小さくシンプルなモデルに基づく新しいシステムを作るべきだ。
自分の成功策を捨ててゼロから作り直すというような決断をしました。
1986年、ストーンブレイカーさんとローレンス・ローさんが
The Design of Postgresという論文をACM-SIGMOTという国際会議で発表します。
プロジェクト名はPostgres、ポストイングレス、つまりイングレスの先へというような決意を込めた名前でした。
アメリカの国防や科学技術の研究資金を出す機関、DARPAやNSFなどから資金提供を受けて
ユーザーが自由にデータ型を定義できる仕組みとか、拡張可能なアクセスメソッドとか、革新的なアイディアをたくさん盛り込んだんですね。
同時に、ジョー・ヘラースタインさんというような方が
ポストグレスはフレッド・ブルックスさんの第二システム効果に逆らったって表しています。
ブルックスさんは明朝人月の神話の著者なんですけど
第二システム効果というのは、最初のシステムの構型を作ると、あれもこれもと、機能を詰め込みすぎて複雑になりがちというような法則です。
ポストグレスは拡張性という一方の柱があったからこそ、そこに踏みとどまれたというような形でした。
そしてポストグレスは学熟2プロジェクトでありながら、実は驚くほどいろんな分野で使われていきました。
金融データの分析、ジェットエンジンの性能監視、さらには小惑星の追跡データベースまで
どんなデータ型でも扱えるというような思想が複雑なデータを抱える現場を引きつけたんですね。
しかし1993年、ユーザーコミュニティが倍増して保守の負担が研究時間を圧迫するようになり、バークレーでのポストグレスプロジェクトはバージョン4.2をもって終了しました。
商業的にもストーンブレーカーさんが設立したエルストラという会社がインフォミックスにたらえ回しされるように買収され、
インフォミックスもIBMに買収されてDB2に統合されて消えていってしまいました。
でもこれは死ではなかったんですね。オープンに公開されたコードは次の担い手を静かに待っていました。
オープンソース化とコミュニティの成長
ここからの展開がすごいんですよね。
1994年、バークレーの大学院生だったアンドリュー・ユーさんとジェリー・チェンさんが重大な決断をしました。
ポストグレスの独自クエリ言語を捨てて、業界標準のSQLに置き換えたんです。
これどういうことかというと、独自の方言で書かれた名称を世界中の人が読める標準語に翻訳し直したようなものなんです。
しかも翻訳の過程でコードを完全に書き直して、報道サイズを25%スリム化、パフォーマンスも30%から50%向上させました。
大学院生がこれをやったっていうのがすごいことかなと思います。
1995年9月5日、ポストグレス95としてバージョン1.0がオープンソースとして公開されました。
そして1996年、ここでまた大きな出来事が起きます。
カナダのマーク・フルニエさんが初めて大学の外の開発サーバーを提供しました。
これ何がすごいかというと、大学の庭で育てた苗木が世界中のボランティアが手入れする公園に植え替えられた瞬間です。
それまでは大学の中だけで育てていたものがオープンな場に出ていったというようなわけです。
メーリングリストを通じてカナダのフルニエさん、米国のブルース・モムジアンさん、そしてロシアのバディム・ミケイフさんが集まりました。
世界4拠点にまたがるこの4人がポストグレスSQLの初期コアチームになりました。
4人ですよ。たった4人から始まりました。
同じ1996年、ポストグレス95じゃ時代遅れに聞こえるよねっていうようなことでポストグレスSQLに解明されます。
1997年1月29日にはポストグレスSQLバージョン6.0がリリースされました。
さてこの時期にですねポストグレスSQLは重要な捨てる決断もしています。
初期設計ではデータを上書きしないで過去のバージョンも全部残すというような仕組みを使っていました。
タイムトラベルっていう過去のデータベース状態にクエリを投げられる面白い機能を支えていました。
でも過去のデータを全部残すのでディスクがどんどん膨らんで性能が落ちていってしまいました。
魅力的だけど実用的ではなかったというようなものかなと思います。
そこで思い切ってですねこの仕組みを改めて1999年にはMVCCっていう仕組みをポストグレスSQL6.5で本格導入しました。
導入前は誰かがデータを更新している間他の人はその処理が終わるまで待たされていたんですけど
MVCCはこれを解消して読み取りが書き込みをブロックしないという確信を実現しました。
図書館で例えると誰かが本を借りて修正の書き込みをしている最中でも
別の人がその本の元の内容を閲覧できるようにする仕組みです。
あともう一つ重要なのがライセンスの選択です。
ポストグレスSQLはBSDやMITに導入した官業なライセンスを選びました。
つまりAWSもGoogleも自由にポストグレスSQLを作ったサービスを作れる。
この選択が後のクラウド時代で爆発的に効いてきます。
派手さはないかもしれないんですけど
でもオープンソースコミュニティの持続的な改善の積み重ねが
後の大きな飛躍の土台を作っていきました。
大学一世でも歴史を変えられるし
4人のボランティアから世界は動き始めました。
すごい話かなと思います。
PostgreSQLの進化とクラウド時代への対応
さてここからポストグレスSQLは一気にギアを上げていきます。
2005年ポストグレスSQL 8.0でWindowsネイティブサポートが実現しました。
それまではLinuxやUNIXの世界にいたポストグレスSQLが
世界のPCの大多数が使うWindows上でも動くようになりました。
組織的な面でも成長していきます。
実はポストグレスSQL 8.3のリリースでは
パッチが大量に止まって誰がどれをレビューするかわからなくなり
深刻な遅延が発生していました。
でもコミュニティはこの失敗から学んで
次の開発サイクルからコミットフェストという制度を導入しました。
年5回集中的にパッチをレビューする期間を設けるような仕組みです。
失敗を認めてそこから自分たちのプロセスを修正できるというのは
健全なコミュニティの証拠かなと思います。
2008年から2014年にかけてポストグレスSQLは
検索機能分析機能公開要請等次々と進化していきます。
特に2010年のストリーミングレプリケーション
これそれまでは会社のエースが一人で
全プロジェクトを回していたようなものだったんですけど
チーム全体でバックアップし合える
社式に変わっていったようなものです。
メインのデータベースに何かあっても
機械のデータベースがリアルタイムでデータを受け取って
すぐに引き継げる。
企業が安心して本番環境で使える体制が
ようやく整ったというようなわけです。
そして2011年、ポストグレスSQL 9.1で導入された
Create Extension
これがポストグレスSQLの未来を決定付けたといっても
過言じゃありません。
どういうものかというと
スマートフォンのアップストアみたいなものだと思ってください。
ここはチームの優先事項を待たずに
誰でもポストグレスSQLに
新しい機能を追加できる仕組みです。
ただしですね
アップストアのアプリと違って
ポストグレスSQLの拡張は
データベースの内部に深く組み込まれているので
専用データベースに匹敵するような性能を出せます。
これがすごく重要なポイントかなと思います。
ここに美しい連環構造があるんですけど
覚えてますかね
ストンブレイカーさんが
任意に予測修正不可能って嘆いた
地理情報の問題です。
PostGISっていう
地理空間データを扱う拡張機能があるんですけど
これが2001年から存在していて
クリエイトエクステンションの仕組みによって
管理がさらに容易になりました。
かつて修正不可能だった地理情報の問題が
ポストグレスSQLの拡張性設計を通じて
見事に解決された形です。
40年越しに最初の問題が解かれた
これすごいことかなと思います。
そして2014年にはJSON B型も導入されました。
当時SQLはもう古い
ノーSQLだっていうような流れがあったんですけど
ポストグレスSQLはその機能を
リレーショナルデータベースの中に取り込んじゃいました。
別のデータベースいらないじゃんっていうような形ですね。
そして同年の2014年には
ストンブレイカーさんがチューリング賞を受賞します。
チューリング賞っていうのは
コンピューターサイエンスの中の
ノーベル賞みたいなものなんですけど
イングレスやポストグレス
その後のプロジェクト群を含む
データベース分野への長年の貢献が
評価された形になります。
自分が作ったものがノーベル賞級の評価を受けるって
すごいことですよね。
そしてここまで
アメリカやカナダ、ロシアの話をしてきたんですけど
実は日本もポストグレスSQLに大きく貢献しています。
JPGっていう日本のポストグレスSQLユーザー界は
1999年頃から活動を続けています。
ドキュメントの翻訳や
年次カンフォレンスを運営していくような形です。
NTTグループ、富士通、SRA、OSSが
メジャースポンサーとして参画して
コミッターも輩出しています。
世界的なプロジェクトに日本企業が
しっかり貢献していってるっていうのは
ちょっと誇らしいかなと思います。
この時期の話をまとめると
ストーンブレイカーさんが掲げた
拡張性っていう設計思想が
クリエイトエクステーションっていう仕組みとして
結実してエクシステムを爆発させました。
この仕組みが後のAIブームにも
直前に対応できた理由になります。
さて、いよいよ現在の話です。
AI時代におけるPostgreSQLの役割と将来性
Just use Postgresって聞いたことありますかね。
とりあえずPostgresを使えっていうような意味なんですけど
これが今のエンジニア界隈の
合言葉みたいになっています。
まず、クラウドの話から。
AWS、Google Cloud、Microsoft、Azure
全メジャークラウドが
マネージドポストグレスSQLサービスを
競い合っている時代になりました。
覚えていますかね。
簡易なライセンスを選んだことで
どの企業も自由にポストグレスSQLベースの
サービスを作れます。
あの判断がここで爆発的に効いてきたんですね。
スーパーベースっていうサービスも面白くてですね。
Firebaseのオープンソース代替として急成長して
2025年に50億ドル。
日本円で7500億円くらいの評価額を
達成しているサービスです。
このサービスもポストグレスSQLを
ベースとしたサービスになっています。
400万人以上の開発者が利用していて
カーソルやクラウドコードみたいな
AIを使ったコーディングツールの
バックエンドとしても人気です。
2025年には産業界からポストグレスSQLXシステムへの
巨大な信任投票がありました。
Databricksがネオンを10億ドルで買収。
Snowflakesがクランチデータを
約2.5億ドルで買収。
どちらもポストグレスSQLをベースにしたサービスです。
合計12.5億ドル。
日本円で約1900億円です。
オープンソースの無料プロジェクトに
これだけの投資が集まる。
ポストグレスSQLのXシステムは本物だという
産業界からの強烈なメッセージかなと思います。
そしてAIの時代にも
ポストグレスSQLは選ばれています。
PG Vectorという拡張機能があるんですけど
これがGitHubで1万9千スターを超えています。
AIのアプリケーションでは
テキストや画像をベクトルという
数値の配列に変換して
似ているものを検索する処理が必要なんですけど
専用のベクトルデータベースを
あたりに導入しなくても
使い慣れたポストグレスSQLに
Create ExtensionでPG Vectorを入れるだけで
ベクトル検索機能が追加できます。
ここで思い出してほしいんですけど
1986年にストーンブレイカーさんが掲げた
拡張可能なデータベースというような構想
それが約40年後のAI時代に花開きました。
ストーンブレイカーさん自身も
40年後にAIのためにこの仕組みが使われるなんて
想像もしていかなかったかなと思います。
でもですね、新しい設計思想は
創造者自身が想像もしなかった未来に対応できます。
これが拡張性の力なんかなと思います。
もう一つ、2024年の出来事もお話しして
数字の話もしておくと
2025年のスタックオーバーフロー調査で
開発者の55.6%がポストグレスSQLを使用していて
3年連続で1位
コントリビューターは463名までに成長しました。
1996年にたった4人のボランティアから始まった
このプロジェクトは4人から463名へ成長します。
そして48,000社以上が
ポストグレスSQLを採用しています。
さらにですね、ポストグレスSQLの通信プロトコルや
SQL方言が事実上の業界標準になっています。
ポストグレスSQL五感を歌うような
新世代のデータベースが
次々と登場してきています。
ポストグレスSQLそのものだけじゃなくて
ポストグレスSQLの言葉が
業界標準になっていったってことです。
最後にですね、2人の言葉を紹介させてください。
ヘラースタインさんはこう指摘しています。
ポストグレスSQLの基本アーキテクチャは
1991年のリリースとかなり随時していると。
バークレーのポストグレスチームのコードは
優れた骨格を持っていた。
内部はどんどん更新されているのに
骨格はずっと止まられています。
良い骨格は30年持つっていうことかなと思います。
そしてモムジアさん。
初期コアチームの4人のうちの1人で
約30年間ずっとプロジェクトに
関わり続けている方なんですけど
コアチームの役割を
地球のコア核にたどいています。
構造に不可欠だけど
普段はほとんど表に出ない存在。
やはり約30年にわたり
1つのプロジェクトに関わり続ける
その持続力がポストグレスSQLの
安定を支えています。
というわけで今回は
ポストグレスSQLの約40年の歴史を
駆け足で見ていきましょう。
ストーンブレーカーさんの
データベースはもっと自由であるべきだ
という問いから始まり
大確認性がSQLに翻訳して
命を吹き返し
4人のボランティアが
世界中からサーバーを立てて
拡張性という種が
クリエイターエクステンションとして花開き
今やAI時代のデータ基盤にまでなりました。
一番大事なのは
正しい設計思想は
創造者が想像もしなかった未来に
対応できるということかなと思います。
皆さんがクリエイターエクステンションで
PGベクターを入れるとき
実は1986年の
ストーンブレーカーさんの設計思想に
触れていることになります。
40年前のもっと自由にという思いが
今の手元でちゃんと動いている。
これってすごいことかなと思います。
さて今回のお話は以上となります。
もし少しでも今回のお話が
ためになったなと思ったら
お聞きのプラットフォームでの高評価と
フォローの方をお願いします。
また、Xなどでハッシュタグ
OSSの歴史ラジオをつけて感想をつぶやいてもらえると
僕のマチュベーションになりますので
ぜひよろしくお願いします。
次回はですね、世界で最も
使われているCMS
ワードプレスの歴史について見ていけたらなと思います。
それではまた次回お会いしましょう。
バイバイ。
18:52

コメント

スクロール