PostgreSQL | PostgreSQLにおけるスキーマ(Schema)の説明

PostgreSQLとは,フリーでオープンソースのリレーショナルデータベースシステム(RDBMS)である.拡張性が非常に高く,複雑なデータ処理に強い.信頼性重視の業務におすすめとなる.
PostgreSQLを利用時にSchemaについての知識がなかったため,本記事ではSchemaについての説明を以下に記す.
実施環境
Windows11
PostgreSQL version 16.9
shelokuma tech blog | バージョン確認方法
スキーマ(Schema)の説明
Schemaの概要
PostgreSQLにおけるスキーマ (Schema)は,データベース内のオブジェクト (テーブル,ビュー,関数など)をグループ化・整理するための空間となる.
PostgreSQL server, Database, Schema, Tableなどの関係性は以下となる.
PostgreSQL Server
└── Database(複数作成可能)
└── Schema(データベース内に複数作成可能)
└── Table / View / Function(スキーマ内に定義)
PostgreSQL Serverには複数のDatabaseを作成することができ,その中に複数のSchemaを作成することができる.Schema内に作成したTable, View, Functionを作成することができる.Schemaが異なれば,同じTableでもコンフリクトせずに存在させることもできる.
Schemaの操作
psqlを起動させ,以下コマンドを実行することによって.myschemaという名前のschemaを作成する
# create schema myschema;
以下コマンドを実行することによって,Schemaの名前変更をすることができる.以下は"myschema"から"yourschema"に名前を変更することができる.
※アプリケーション側のコードやクエリで,"myschema.table_name"を利用している場合,要修正
# alter schema myschema rename to yourschema;
Public Schema
Public Schemaはデフォルトで作成されるSchemaとなる.新しいデータベースを作成すると必ずPublic Schemaが最初から存在する."search_path"の設定によって,Schema名の省略時の優先が決められる."search_path"のデフォルトは"public"となっている.
以下コマンドによって,"search_path"の設定を確認することができる.
# show search_path;
もしも,"search_path"の設定でSchemaがpublicの場合,以下コマンドは同じ意味となる.
# select * from mytable;
# select * from public.mytable;
Schemaの応用
国ごとに以下のようにSchemaを分ける.
Database: world_platform
├── Schema: japan
│ ├── users
│ ├── orders
│ └── products
├── Schema: usa
│ ├── users
│ ├── orders
│ └── products
参照
PostgreSQL | Documentation version 16
以上