DB2-スキーマ
この章では、スキーマの概念を紹介して説明します。
前書き
スキーマは、データベースで論理的に分類された名前付きオブジェクトのコレクションです。
データベースでは、同じ名前で複数のデータベースオブジェクトを作成することはできません。そのために、スキーマはグループ環境を提供します。データベースに複数のスキーマを作成したり、同じ名前で異なるスキーマグループを使用して複数のデータベースオブジェクトを作成したりできます。
スキーマには、テーブル、関数、インデックス、テーブルスペース、プロシージャ、トリガーなどを含めることができます。たとえば、「従業員」データベースに対して「Professional」および「Personal」という名前の2つの異なるスキーマを作成します。同じ名前「Employee」で2つの異なるテーブルを作成することができます。この環境では、一方のテーブルには専門的な情報があり、もう一方のテーブルには従業員の個人情報があります。同じ名前の2つのテーブルがあるにもかかわらず、それらには「Personal」と「Professional」の2つの異なるスキーマがあります。したがって、ユーザーは問題なく両方を操作できます。この機能は、テーブルの名前に制約がある場合に役立ちます。
スキーマに関連するいくつかのコマンドを見てみましょう。
現在アクティブなスキーマを取得する
Syntax:
db2 get schema
Example:[現在のデータベーススキーマを取得するには]
db2 get schema
別のスキーマを現在の環境に設定する
Syntax:
db2 set schema=<schema_name>
Example:['schema1'を現在のインスタンス環境に配置するには]
db2 set schema=schema1
新しいスキーマの作成
Syntax:[許可されたユーザーIDで新しいスキーマを作成するには]
db2 create schema <schema_name> authroization <inst_user>
Example:[「db2inst2」で許可された「schema1」スキーマを作成するには]
db2 create schema schema1 authorization db2inst2
運動
同じ名前で2つの異なるスキーマを持つ2つの異なるテーブルを作成しましょう。ここでは、2つの異なるスキーマ(1つは個人用、もう1つは専門情報用)を使用して従業員テーブルを作成します。
Step 1:2つのスキーマを作成します。
Schema 1:[professionalという名前のスキーマを作成するには]
db2 create schema professional authorization db2inst2
Schema 2:[personalという名前のスキーマを作成するには]
db2 create schema personal authorization db2inst2
Step 2:従業員の詳細用に同じ名前の2つのテーブルを作成します
Table1:professional.employee
[スキーマ名 'professional'を使用してデータベースに新しいテーブル 'employee'を作成するには]
db2 create table professional.employee(id number, name
varchar(20), profession varchar(20), join_date date,
salary number);
Table2:personal.employee
[同じデータベースにスキーマ名「personal」で新しいテーブル「employee」を作成するには]
db2 create table personal.employee(id number, name
varchar(20), d_birth date, phone bigint, address
varchar(200));
これらの手順を実行すると、2つの異なるスキーマを持つ同じ名前の「employee」の2つのテーブルが得られます。