スキーマデータベースを知らない人、あるいは学習を始めたばかりの人にとって、スキーマ(SCHEMA)はあまり耳慣れない言葉かもしれませんが、データベース管理において重要な概念です。データベースをOSに例えてみると、データベース内に作成したテーブル(表)は、OSが管理するディスク上に作成されたファイルに相当します。応じて複数のディレクトリ(フォルダ)に分けて保存する、というのが普通です。データベースでも、多数のテーブルを作るときに、テーブルの目的や所有者に応じて格納場所を別にすることで、分類できます。そのための仕組みがスキーマです。データベースのスキーマは、OSのディレクトリとよく似た性質を持っています。テーブルなど、すべてのオブジェクトは、何らかのスキーマに所属します。これは、OSのファイルが、何らかのディレクトリに所属するのと同じですね。文でテーブルを作成する際、スキーマが別であれば同じ名前のテーブルを複数、作成することができます。同じスキーマの中に同じ名前のテーブルを複数作ることはできません。これも、OSのファイル名とディレクトリの関係と同じです。スキーマには所有者、書き込み権限などの概念があり、適切な権限を持ったユーザでなければそのスキーマ内に新規にテーブルなどのオブジェクトを作成することはできません。OSのディレクトリにもユーザやグループによる書き込み権限などの制約があり、そのディレクトリについて適切な権限を持つユーザでなければ、ファイルを作れません。文でテーブルを指定するとき、スキーマ名とテーブル名を"."(ピリオド)でつないで記述します。スキーマ名は省略可能なので、テーブル名だけを指定しても良いです。このとき、どのスキーマにあるテーブルであると想定するか、の規則が決まっています。Linuxでは、ディレクトリ名とファイル名を"/"(スラッシュ)でつないで記述しますが、ディレクトリ名を省略してファイル名だけ指定することも可能ですよね。スキーマとディレクトリの大きな違いの1つは、スキーマが階層化できないことです。ディレクトリは、その下にサブディレクトリを作って階層化できますが、スキーマは、その下にサブスキーマのようなものを作ることはできません。スキーマは標準SQLにある概念ですが、その実装はRDBMSの種類によって異なる部分があります。以下ではPostgreSQLにおけるスキーマの使い方について簡単に説明します。スキーマおよびスキーマ検索パスがあります。いうスキーマだけが存在しています。スキーマにはどのユーザでもテーブルなどを作成することができます。スキーマだけを使って、スキーマ機能の存在を意識しない使い方をすることもできます。文により新規のスキーマを作成します。新しいスキーマを作ったとき、デフォルトでは、その所有者(つまり作成者)だけがそのスキーマ内にテーブルなどのオブジェクトを作成することができます。文で作成済みのスキーマを削除することもできます。テーブルの参照時にスキーマ名を省略した場合は、スキーマ検索パスを使ってテーブルを検索します。スキーマ検索パスはユーザが自由に変更することができますが、デフォルトでは、ユーザ名と同じスキーマ→publicスキーマ、という優先順位になっています。どちらもなければ、テーブルが見つからない、というエラーという処理手順になります。あっても無視される、ということに注意してください。して実行という処理手順になります。作ることには注意して下さい。メリット受験対策インタビューFAQ資料請求・お問い合わせプライバシーポリシーこの内容で送信します。よろしいですか?キャンセル。