まず、身近な「表」から考える
この教材では、架空の文房具卸売会社「みなと文具」を題材にします。みなと文具には取引先の会社(得意先)が数十社あり、毎月それぞれに請求書を出しています。
こうした情報を管理するとき、多くの人が最初に使うのはExcelです。「得意先一覧」というシートに会社名と住所を並べ、「請求書」というシートに日付と金額を並べる。これだけでも十分に仕事は回ります。実は、この「行と列でできた表」という形は、データベースの考え方とほとんど同じです。
| 得意先コード | 会社名 | 所在地 | 担当者 |
|---|---|---|---|
| C001 | 株式会社あおば商事 | 東京都港区 | 佐藤 |
| C002 | ひばり印刷株式会社 | 神奈川県横浜市 | 鈴木 |
| C003 | 合同会社みどり設計 | 千葉県千葉市 | 高橋 |
では、Excelとデータベースは何が違うのでしょうか。それは「表の形」ではなく、表をどう扱うかの違いです。
Excelで困り始める3つの場面
みなと文具の仕事が増えてくると、Excelでは次のような場面で困り始めます。
1. 何人かで同時に使いたい
営業の人が得意先を追加している最中に、経理の人が請求書を入力したい。Excelファイルを共有フォルダに置いていると、「読み取り専用で開かれました」と言われたり、誰かが上書きして他の人の入力が消えたりします。
2. 間違ったデータが入ってしまう
金額の列に「12000円」と全角で入れてしまい、合計が計算されない。同じ会社が「あおば商事」と「(株)あおば商事」の2行で登録されていて、売上の集計が合わない。Excelは、入力された内容が正しいかどうかをほとんど確かめてくれません。
3. 行数が増えると重くなる・探せなくなる
請求書が数万行になると、開くだけで時間がかかり、「2025年度の、神奈川県の得意先だけの合計」を出そうとするとフィルタや関数が複雑になります。
データベースは「表を預かる専門の係」
データベース(Database、略してDB)とは、ひとことで言えばデータを保管し、求めに応じて出し入れしてくれる専門の仕組みです。Excelのように自分でファイルを開いて直接触るのではなく、「この条件のデータをください」「この行を追加してください」とお願いすると、データベース側が安全に処理して返してくれます。
この「お願いを受けて処理する側」のことを、PostgreSQLではサーバーと呼びます。詳しくは第3章で扱いますが、ここでは「表を預かってくれる、休まない係の人がいる」というイメージで十分です。
その係の人は、先ほどの3つの困りごとを次のように解決します。
| Excelでの困りごと | データベースでの解決 | 学ぶ章 |
|---|---|---|
| 同時に使えない | 複数人が同時につないでも、矛盾が起きないよう順序を整理してくれる | 第3章・第6章 |
| 間違ったデータが入る | 「この列は数字だけ」「この会社コードは重複禁止」といったルールを守らせる | 第4章・第6章 |
| 重い・探せない | 数百万行でも、索引(インデックス)を使って目的の行を素早く見つける | 第6章 |
データベースにも種類がある
「データベース」という言葉はとても広く、いろいろな種類があります。この教材で扱うのは、そのうちリレーショナルデータベースと呼ばれる、いちばん歴史が長く、いちばん広く使われている種類です。
リレーショナル(relational)は「関係づける」という意味です。データを「得意先」「請求書」のような複数の表に分けて保存し、表と表を関係づけて使うのが特徴です。たとえば請求書の表には会社名を毎回書かず、「得意先コード C001」とだけ書いておき、必要なときに得意先の表と組み合わせて会社名を引いてくる、という使い方をします。
1つの表に全部書くと、あおば商事の住所が変わったとき、請求書100枚分の住所を全部直さなければなりません。得意先の表に1回だけ書いておけば、直すのは1か所で済みます。これが「表を分けて関係づける」ことの最大の利点です。第4章でもう一度出てきます。
リレーショナルデータベースを動かすソフトウェアはいくつもあり、PostgreSQLはその代表的なひとつです。次の章では、PostgreSQLがどんな製品で、他と何が違うのかを見ていきます。
この章のまとめ
- データベースは「行と列の表」を預かり、求めに応じて出し入れしてくれる専門の仕組み。表の形自体はExcelとよく似ている。
- Excelとの本当の違いは、複数人で同時に使える・間違いを防げる・大量でも速い、という「扱い方」にある。
- PostgreSQLは、データを複数の表に分けて関係づける「リレーショナルデータベース」の代表格。
確認クイズ
Q1Excelとデータベースの違いとして、この章の説明にいちばん近いものはどれですか。
Q2請求書の表に会社名や住所を毎回書かず、「得意先コード」だけを書いておく利点は何ですか。
Q3PostgreSQLとは何ですか。