PostgreSQLって何?わかりやすく解説

データベースって聞いたことあるけど、実際には何か、どう使われてるのか、よくわかんないよね。でも実は、君が毎日使ってるスマホアプリやWebサイトの裏側には、ほぼ確実に「データベース」が動いてるんだ。その中でも特に重要な存在が「PostgreSQL」(ポストグレスキューエル)というやつ。この記事を読めば、PostgreSQLが何なのか、なぜそんなに使われてるのか、スッキリ理解できるよ。

先生、PostgreSQLって何ですか?データベースって聞いたことあるけど…

いい質問だね。PostgreSQLはデータベース管理システム、つまり「情報を整理して保存・管理するための道具」なんだ。例えば、君が図書館の貸出記録を管理する場合、本の題名、著者、貸出日、返却日…こういった情報をどう整理する?ただのメモ帳じゃ混乱するよね。データベースは、そういう情報をキレイに整理して、必要な時にサッと取り出せる仕組みなの。
へぇ〜。でもデータベースって種類いっぱいあるんじゃ…?

そうなんだ。実はいっぱいある。中でもPostgreSQLはリレーショナルデータベース、つまり「表形式で情報を管理するタイプ」なんだ。Excelの表をイメージしてくれればいい。行と列で情報を整理して、複雑なデータの関係を管理できるんだよ。
あ、Excelみたいな感じなんですか!

そう。ただExcelより何倍も賢いんだ。Excelは手で操作する道具だけど、PostgreSQLはプログラムが自動で大量のデータを処理できる。何百万件、何十億件の情報を素早く整理・検索できるんだよ。だからGoogleとかTwitterとか、大きなWebサービスが使ってるんだ。
へぇ〜!そんなに凄いんですか。なんでPostgreSQLなの?

いい質問だ。PostgreSQLはオープンソース、つまり「誰が作ったコードでも誰でも使える」って形式なんだ。だから企業も個人も自由に使える。しかも信頼性がめちゃくちゃ高くて、何か問題が起きても直してくれる人がいっぱいいるんだよ。だから大企業から小さなスタートアップまで、みんなが使ってるわけ。
📝 3行でまとめると
  1. PostgreSQLはリレーショナルデータベースで、Excelのような表形式で大量のデータを管理できる
  2. オープンソース信頼性が高いため、世界中の企業やWebサービスで使われている
  3. プログラムから自動でデータを整理・検索・更新できるので、Excelより何倍も使いやすい
目次

もうちょっと詳しく

PostgreSQLが「ポストグレス」と呼ばれる理由は、昔の有名なデータベース「Ingres」(インガレス)の後を継いで開発されたから。名前の「Post」は「後」という意味だね。開発がスタートしたのは1986年で、30年以上前。その間に世界中のエンジニアが改善し続けて、今では最も信頼できるオープンソースデータベースとして認識されてるんだ。特に金融機関や病院といった「データが絶対に失われたらダメ」という場面でも使われるほど。

💡 ポイント
30年以上の歴史があって、世界中のエンジニアが信頼してる。だからこそ大企業が安心して使える。

⚠️ よくある勘違い

❌ 「PostgreSQLはGoogleやAppleが作った有料ツール」
→ 違うんだ。PostgreSQLはボランティアのエンジニアたちが作ってる無料のオープンソース。有料でもなければ、大企業の専売特許でもないんだよ。
⭕ 「PostgreSQLは誰でも自由に使える、信頼度の高いデータベース」
→ 正解。無料で使える。ただし自分でサーバーの管理をする必要がある場合もあるってわけ。
なるほど〜、あーそういうことか!

[toc]

そもそもデータベースって何なの?

まず「データベース」という言葉から説明しよう。データベースは「情報を整理して保存する仕組み」なんだ。例えば、君が学校の成績を管理したいとしよう。自分のノートに「○月○日のテストで数学は70点」「英語は80点」と書いてたら、後で「あ、数学って何点だったっけ?」って探すのに時間がかかるよね。でもExcelみたいな表に「学年」「科目」「点数」「日付」みたいに欄を分けて整理しておけば、「あ、ここだ」ってすぐ見つかる。

Webサイトやアプリの裏側も同じ。Instagramなら「ユーザー名」「プロフィール写真」「いいね数」「フォロワー」…こういう情報を、バラバラに保存してたら、「あ、このユーザーの情報を全部知りたい」ってなった時に大変だ。だからキレイに整理して、必要な時にサッと取り出せるようにしてるんだ。これが「データベース」。

データベースの基本的な使い方

データベースは3つの基本的な操作がある。

1つ目は「保存する」操作だ。新しい情報を追加する時、データベースに「ね、この情報を保存しておいてよ」って指令を送る。すると、データベースはその情報を整理して、どこかに保存する。

2つ目は「検索する」操作だ。「あ、あの情報を見たいな」って思った時、「ね、こういう情報ある?」って質問を送ると、データベースが「ありますよ」って該当する情報を返してくれる。Googleで「猫」って検索すると猫の情報がいっぱい出てくるのと同じ仕組み。

3つ目は「更新・削除する」操作だ。「あ、この情報、間違ってた」「もう不要だから消して」みたいな時に使う。

実はこのシンプルな3つの操作だけで、ほぼ全てのWebサービスは動いてるんだ。スマホの連絡先アプリだって、「連絡先を保存する」「連絡先を検索する」「連絡先を削除する」という同じ3操作で成り立ってるんだよ。

リレーショナルデータベースって何が特別?

データベースには色々な種類がある。中でもPostgreSQLは「リレーショナルデータベース」という種類だ。「リレーション」って「関係」という意味なんだ。つまり「データとデータの関係を管理できるデータベース」ってわけ。

例えば、学校の成績管理を考えよう。「学生テーブル」(表1)には「学生ID」「名前」「学年」が入ってる。「テストテーブル」(表2)には「学生ID」「科目」「点数」「日付」が入ってる。この2つのテーブルは「学生ID」という共通の情報でつながってる。だから「山田太郎の全教科の点数を知りたい」って時に、「学生テーブルで山田太郎を探して、その学生IDで、テストテーブルを検索する」みたいなことが簡単にできるんだ。

この「テーブル同士をつなげる」「関係を作る」ってのが、リレーショナルデータベースの大きな特徴。複雑に絡み合った現実の世界の情報を、キレイに整理できるんだよ。

PostgreSQLが選ばれる理由

世界中のWebサービスが、なぜPostgreSQLを選ぶのかって話をしよう。実はデータベースって、大きく分けると「商用の有料版」と「オープンソースの無料版」がある。有料版には「Oracle」(オラクル)とか「Microsoft SQL Server」(マイクロソフト・エスキューエル・サーバー)とかがあるんだけど、これらはめちゃくちゃ高い。ライセンス料だけで、年間何千万円とかかることもあるんだ。

一方、PostgreSQLは無料。でもただ無料なわけじゃなくて、信頼性も高い。「信頼性が高い」ってのは「データが壊れない」「何か問題が起きたら直ちに対応してくれる」「セキュリティがしっかりしてる」っていう意味だね。金融機関とか、病院とか、本当に大事な情報を扱う場所でも、PostgreSQLは使われてるんだ。

オープンソースって何が良いの?

PostgreSQLが「オープンソース」ってのは「誰でも中身のコードを見ることができる」「誰でも改善できる」という意味だ。これが実は、すごく強い。

例えば、もし有料のデータベースに「あ、バグがある」「セキュリティの穴を見つけた」ってなったら、その会社に報告して、修正してくれるのを待つしかない。でもオープンソースなら、世界中のエンジニアが「あ、この問題、俺が直そうか」って勝手に直してくれるんだよ。だから問題が見つかって、修正されるまでのスピードが速い。

また「俺たちの会社に必要な機能ってこれだから、PostgreSQLに足そう」みたいなことも、できるわけ。だから色々な企業の「こういう使い方したい」「こういう機能がほしい」っていう声が反映されて、どんどん改善されていくんだ。

30年以上の歴史がある

PostgreSQLは1986年から開発されてる。もう30年以上前だ。その長い間に、世界中のエンジニアたちが「あ、この使い方だと困る」「もっとこうしたい」っていう経験を積み重ねてきたんだ。

例えば、スマホのOSだって、iPhoneが出たのは2007年で、Androidが出たのも2008年くらい。それから15年以上、みんなが「あ、こういう機能いる」「あ、こういう時に困る」って経験を積み重ねて、今のiOSやAndroidがあるんだ。PostgreSQLもそれと同じ。長い歴史と、世界中のエンジニアの経験が詰まってるんだよ。

PostgreSQLはどこで使われてるの?

君が毎日使ってるアプリやWebサイトの裏側に、PostgreSQLがいるかもしれないんだ。例えば:

・Spotify(音楽配信)は、ユーザーの聴音履歴やプレイリストを管理するのにPostgreSQLを使ってる。「あ、最近ジャズばっかり聴いてるから、ジャズをおすすめしよう」みたいなことを判断するために、膨大なデータを整理する必要があるわけだ。

・Instagram(SNS)も、ユーザーの投稿や「いいね」の情報を管理するのにPostgreSQLを使ってる。

・Slack(ビジネスチャット)も、メッセージの履歴やユーザー情報を管理するのにPostgreSQLを使ってる。

・不動産サイトのhotels.comとか、Airbnbとか、物件情報を膨大に管理する必要があるサービスも、PostgreSQLを使ってることが多い。

こうして見ると「えっ、あんなに大きなサービスが?」って思うかもしれないけど、実は有名なサービスほど、オープンソースを使ってることが多いんだ。なぜなら「信頼できる」「自分たちでカスタマイズできる」「コスト安い」という3つの理由があるからね。

スタートアップからメガサービスまで

PostgreSQLが使われてるのは、大企業だけじゃない。むしろ、今の大企業も、最初はスタートアップだったわけ。その時に「あ、データベースどうしよう」って時に、PostgreSQLを選んでるんだよ。

なぜかというと、スタートアップは予算がない。だからお金がかかるOracleとか、Microsoft SQL Serverは選べない。でもPostgreSQLなら無料だし、信頼性も高い。だから「じゃあ、これで行こう」ってなるわけ。そして会社が大きくなっても「あ、PostgreSQL、けっこう良いな」ってそのまま使い続けることが多いんだ。

つまり、スタートアップの「お金がない時代」から、大企業の「大量のデータを処理する時代」まで、ずっと一緒に成長していける道具ってわけだね。

PostgreSQLの強い機能

PostgreSQLが選ばれる理由は「無料で信頼性高い」だけじゃない。実は、めちゃくちゃ強い機能をいっぱい持ってるんだ。

複雑な検索が簡単にできる

例えば、学生の成績管理の例で考えよう。「2023年度に、数学で80点以上取った女子学生で、学年は3年生。その学生の全教科の平均点を出して、ランキング順に表示してよ」みたいなめちゃくちゃ複雑な条件を、PostgreSQLはサッと処理できる。

これを手で計算したら、何時間かかるかわからない。でも、PostgreSQLに「SQL」(エスキューエル)という専用の言葉で指令を送れば、一瞬で答えが返ってくるんだ。このSQL言葉がめちゃくちゃ強力で、複雑な条件を、直感的に書ける。

大量のデータを高速に処理できる

「数百万人のユーザーの情報から、こういう人を探して」みたいな大量の操作でも、PostgreSQLは爆速で処理する。これは「インデックス」(索引)という機能があるからなんだ。図書館の本を思い出してみて。全部の本から「あ、この著者の本はどこにある?」って探すのは大変だよね。でも図書館には「著者のあいうえお順リスト」みたいな目次(索引)があるから、すぐに見つかる。PostgreSQLも同じ。「この欄でよく検索されるから、事前に索引を作っておこう」って工夫をしてるんだ。

データが絶対に壊れない仕組み

銀行の口座残高とか、病院の患者情報とか「間違ったらダメ」というデータがある。PostgreSQLは「トランザクション」(処理の一まとまり)という機能で、「この処理は最後まで成功するか、失敗したら元に戻すか、どちらかにする」っていう決まりを作ってる。

例えば、ATMから10万円引き出す場合。「自分の口座から10万円を減らす」と「現金を吐き出す」この2つの処理は必ずセットでないといけない。どちらか一方だけ成功したら大変だ。PostgreSQLは「この2つは絶対にセットで成功するように」「どちらかが失敗したら、もう一方も失敗させる」っていう保証をくれるんだ。

セキュリティがしっかりしてる

不正アクセスされたら困るので、PostgreSQLは「ユーザー認証」(あなたは本当にあなたですか?)とか、「権限管理」(あなたはこのデータを見ていいですか?)とか、色々な防御機能を持ってる。銀行とか、個人情報を扱う企業が使ってるくらいだから、セキュリティはかなり強いんだ。

PostgreSQLを学ぶことの価値

もし君が「プログラマーになりたい」「Webサービスを作ってみたい」って思ってるなら、PostgreSQLを学ぶ価値は大きいんだ。

仕事でよく使うスキル

プログラマーの仕事って「Webアプリを作る」「スマホアプリを作る」「データ分析する」とか、色々あるんだけど、ほぼ全てで「データベース」を使う。データベースの中でもPostgreSQLは「シェアが高い」(よく使われてる)から、PostgreSQLを学んでおけば、仕事の幅が広がるんだ。

実際、求人を見てみると「PostgreSQL経験者募集」「MySQL・PostgreSQL使える人募集」みたいなのがいっぱいある。だから学んでおいて損はないんだよ。

実務的なスキル

PostgreSQLを学ぶってことは、単に「このコマンドを打つ」みたいなテクニックじゃなくて、「どうやってデータを整理するか」「どうやって複雑な情報を管理するか」っていう、「データとの向き合い方」を学ぶんだ。

これはプログラミングの基礎中の基礎。データの構造を理解すると、プログラムも上手くなるんだよ。

つくるものの選択肢が広がる

「あ、こんなサービス作ってみたい」って思った時に、データベースの知識があると「あ、このデータはこう整理して、こう管理しよう」ってすぐに判断できるんだ。データベースなしに、ちょっと規模のあるサービスは作れないんだよ。だからPostgreSQLを学ぶと、作れるものの幅がぐーんと広がるわけだね。

よかったらシェアしてね!

この記事を書いた人

大人になってから「これ知らなかった…」と恥ずかしい思いをした経験から、このサイトを作りました。お金・仕事・社会のしくみって、学校で教えてくれないのに知らないと損することだらけ。むずかしい言葉を「あーそういうことか!」って思えるまでかみ砕いて説明するのが得意です。主に経済・法律・税金・ライフイベント周りの用語を毎日更新中。