PostgreSQLのスキーマ構造の基本を解説
生徒
「PostgreSQLを勉強し始めたら、スキーマ構造って言葉が出てきました。正直、データベースと何が違うのかよく分かりません。」
先生
「スキーマは、データベースの中を整理するための仕組みです。引き出しや棚を使って書類を分ける感覚に近いですね。」
生徒
「パソコンにほとんど触ったことがなくても理解できますか?」
先生
「大丈夫です。紙の書類整理をイメージしながら、順番に説明します。」
1. SQLとは何か?
SQLは、データベースに保存されている情報を操作するための言葉です。データベースとは、たくさんの情報をきちんと整理して保存する箱のような存在です。SQLを使うことで、その箱の中から情報を探したり、新しく入れたり、内容を書き換えたりできます。
PostgreSQLは、このSQLを使って操作するデータベースソフトの一つです。無料で使えることや、安心して長く使える仕組みが整っている点が特徴です。
2. PostgreSQLにおけるスキーマ構造の考え方
PostgreSQLのスキーマ構造を理解するには、まず全体の入れ物を想像すると分かりやすいです。一番外側にあるのがデータベースで、その中にスキーマがあります。さらにスキーマの中に、テーブルやビューといった部品が入っています。
スキーマは、データベースの中を用途別に分けるための仕切りです。例えば、同じデータベースの中でも、仕事用とテスト用でスキーマを分けることで、情報が混ざらず安全に管理できます。
3. デフォルトで用意されているpublicスキーマ
PostgreSQLでは、データベースを作成すると自動的にpublicというスキーマが用意されます。初心者のうちは、このpublicスキーマだけを使って学習することが多いです。
特別な指定をしない場合、SQLはこのpublicスキーマの中を見に行きます。そのため、スキーマを意識せずにテーブルを作った場合でも、実際にはpublicスキーマの中に保存されています。
4. スキーマの中にあるテーブルのイメージ
次のようなusersテーブルが、publicスキーマの中にあると考えてください。これは名簿のような表で、行が人、列が情報を表しています。
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 22 | jiro@example.com
5. スキーマ構造を意識しないSQL
初心者のうちは、スキーマ名を書かずにSQLを書くことがほとんどです。次のSQLは、publicスキーマにあるusersテーブルの中身をすべて表示します。
SELECT *
FROM users;
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 22 | jiro@example.com
このように、スキーマを省略しても、PostgreSQLが自動的にpublicスキーマを使って処理してくれます。
6. スキーマ名を指定したSQLの書き方
スキーマ構造を意識する場合は、「スキーマ名.テーブル名」という形で指定します。これは、どの棚のどの書類を見るかを明確にするためです。
SELECT name, age
FROM public.users
WHERE age >= 20;
name | age
-----------+-----
山田太郎 | 25
鈴木一郎 | 30
高橋次郎 | 22
この書き方を覚えておくと、スキーマが増えたときにも混乱せずに操作できます。
7. スキーマ構造を使うメリット
スキーマ構造を使う最大のメリットは、情報を整理しやすくなる点です。データベースが大きくなると、テーブルの数も増えますが、スキーマで分類しておくことで探しやすくなります。
また、同じ名前のテーブルでもスキーマが違えば別物として扱えるため、作業用や確認用などを分けて管理できます。これは、後から見直したときにも理解しやすくなる大きな利点です。
8. 初心者が押さえておきたいスキーマ構造のポイント
最初は、「データベースの中にスキーマがあり、その中にテーブルがある」という三段構造だけを覚えておけば十分です。細かい設定や管理方法は、後からでも理解できます。
PostgreSQLのスキーマ構造は、現実世界の整理整頓と同じ考え方で作られています。難しく感じたときは、書類や引き出しを思い浮かべると理解しやすくなります。