表デザイナ

表デザイナでは、リレーショナル表、XML表またはオブジェクト表を作成および変更できます。また、リレーショナル表の列、制約、索引の作成、変更および削除が可能です。

このセクションの内容は次のとおりです。

Oracle Developer Toolsでの表の作成

表デザイナは、リレーショナル表、XML表またはオブジェクト表を作成する際に使用します。Oracle出力ウィンドウに、表デザイナが実行したSQL文と、データの保存中に発生したすべてのエラーが表示されます。Oracleデータ・ウィンドウを使用して、表のデータを表示または編集できます。

表デザイナの起動

表デザイナは、次のいずれかの方法で起動します:

  • 新規の表を作成する場合、サーバー・エクスプローラで「Tables」ノードを右クリックし、メニューから「New Relational Table」「New XML Table」または「New Object Table」の順に選択します。

  • 既存の表またはその表の列、制約、索引の1つを変更する場合、サーバー・エクスプローラで、「Tables」ノードの下でその表のノードを右クリックし、メニューから「Design」を選択します。

表デザイナは次のように表示されます:

表デザイナの使用

表デザイナには次のコンポーネントがあります:

通常、表デザイナを使用して、表に必要な変更を行います。表に列、制約または索引を追加する場合は、「Add」をクリックして、詳細ペインで必要な変更を行います。表コンポーネントを削除する場合は、コンポーネントを選択して「Remove」をクリックします。

メイン・ウィンドウ

表デザイナのメイン・ウィンドウは次のとおりです:

コントロール 説明

Schema name

使用可能なスキーマのリストから、表の作成先のスキーマを選択します。

Table Name

作成する表の名前を入力します。既存の表を置き換える場合、このボックスには表の名前が表示されます。

Table type

読取り専用です。表のタイプ: リレーショナル、オブジェクトまたはXML。

表のタイプによって、表デザイナに表示されるタブが決まります:

  • リレーショナル表: 「Columns」タブ、「Constraints」タブ、「Indexes」タブ、「Storage」タブ

  • XML表: 「XML」タブおよび「Storage」タブ

  • オブジェクト表: 「Object」タブ、「Constraints」タブ、「Indexes」タブ、「Storage」タブ

Preview SQL

ポップアップ・ダイアログ・ボックスおよび出力ウィンドウにCREATE TABLE SQLコマンド・コードを表示します。読取り専用です。

Save

表に加えられた変更内容をデータベースに保存します。または、Visual Studioツールバーで「保存」ボタンをクリックするか、「ファイル」メニューから「保存」を選択します。

「Columns」タブ

「Columns」タブには、次のコントロールが表示されます:

コントロール 説明

Columns

使用可能な列とそのデータ型を精度およびnullかどうかとともにリストします。「Column Properties」ペインには、現在選択されている列に関する詳細情報が表示されます。

列またはデータ型の名前が長すぎて表示できない場合、その上にマウスを置くと、フルネームを読み取ることができます。

主キー列の横に小さなキー・アイコンが表示されます。

上矢印および下矢印をクリックして、列の順序を変更します。

Add

表に新規の列を追加し、それを選択します。デフォルトでは、新規の列の名前はCOLUMNnで、データ型はNUMBERです。新規の列を変更するには、列の詳細ペインで適切な変更を行います。

Remove

表から選択した列を削除します。

Properties

現在選択されている列に関する次の詳細情報を表示します:

  • Name: 新規の列を作成する場合、「Add」ボタンをクリックした後、ここに名前を入力します。「Available Columns」リスト・ボックスで既存の列を選択している場合は、その名前が表示されます。大/小文字を区別して名前を入力するには、二重引用符でその名前を囲みます。

  • Not Null: 列でNULL値を許可するかどうかを指定します。

  • Data type: 列のデータ型を指定します。単純なOracleデータ型およびユーザー定義型から選択できます。

次のコンポーネントは、選択したデータ型によって異なります:

  • Default: 列のデフォルト値を指定します。式としてこの値を指定します。たとえば、VARCHAR2列のデフォルト値を"MANAGER"に指定するには、このフィールドに(一重引用符で囲んで)'MANAGER'と入力します。

  • Precision: 数値型の場合、列の精度または合計桁数を指定します。ゼロ値は、データベースにより許可されている最小精度を示します。間隔タイプの場合、小数秒、日または年で精度を指定します。

  • Scale:: 列のスケール、すなわち小数点の右側の桁の数を指定します。ゼロ値は、データベースにより許可されている最小スケールを示します。

  • Length semantic: 列の長さセマンティクスを指定します。使用可能な選択肢は次のとおりです:

    • Default: データベースの長さセマンティクス

    • Byte: バイト長セマンティクス

    • Char: 文字長セマンティクス

  • Size: データ型サイズを指定します。

  • Create as Ref: ユーザー定義型をインラインではなくオブジェクト表へのポインタ(REF)として格納します。

  • Store as: XMLType列の格納方法を指定します。使用可能な選択肢は次のとおりです:

    • CLOB: XMLデータをCLOBとして格納します。

    • Object Relational: XMLデータをオブジェクト・リレーショナル型として格納します

    • Binary: XMLデータをバイナリ・データとして格納します。(Oracle Database 11.2.01以降で使用可能)

  • Use XML Schema: XMLスキーマを使用するかどうかを指定します。これは、オブジェクト・リレーショナル・タイプとして格納されているXMLに対して自動的に選択(必須)されます。Oracle DatabaseへのXMLスキーマの登録の詳細は、「XMLスキーマ・デザイナ」を参照してください。

  • XML Schema Owner: XMLスキーマ所有者を指定します。

  • XML schema name: 列に対応するXMLスキーマ(列が準拠する必要があるXMLスキーマ)を指定します。次の項目から選択できます:

    • None

    • All XML schemas that you can access

    XMLスキーマを指定した場合、XMLルート要素を指定する必要があります。

  • XML root element: XMLルート要素を指定します。

  • Binary Storage Options: バイナリXMLストレージのストレージ・オプションを指定します。Oracle Database 11.2.0.1以降で使用可能です。使用可能な選択肢は次のとおりです:

    • None

    • Allow Any Schema: (「Use XML Schema」が選択されていない場合のみ使用可能)

    • Allow Non-Schema:

    • Allow All: (「Use XML Schema」が選択されていない場合のみ使用可能)

  • Identity Column: 列がアイデンティティ列であることを指定します。Oracle 12.1以降のデータベースでのみ、数値型の列に使用できます。これは、新しい列または既存のアイデンティティ列でのみ変更できます。各表には1つのアイデンティティ列のみを指定できます。

  • Identity Column Properties: これは、アイデンティティ列プロパティの変更可能なリストです。使用可能なプロパティは次のとおりです:

  • Generation Type: アイデンティティ列値がデータベースで生成されるケースを指定します。使用可能な選択肢は次のとおりです:

    • ALWAYS: データベースは常に値を生成します。

    • BY DEFAULT: 指定されていない場合、データベースによって値が生成されます。

    • BY DEFAULT ON NULL: NULLが指定されている場合、データベースによって値が生成されます。

    初期列の作成時に、3つのオプションすべてを使用できます。既存のアイデンティティ列を編集する場合、オプションはALWAYSと、DEFAULTまたはBY DEFAULT ON NULLのいずれかです。BY DEFAULT ON NULLは、最初にその生成タイプで列が作成された場合にのみ使用できます。

  • Minimum Value: このアイデンティティ列に対してデータベースが生成する最小値を指定します。

  • Maximum Value: このアイデンティティ列に対してデータベースが生成する最大値を指定します。

  • Interval: このアイデンティティ列に対してデータベースが生成する値の間隔を指定します。

  • Start With: このアイデンティティ列に対してデータベースで生成される開始値を指定します。新しい列に値を入力します。既存の列の場合は、値を入力するか、ドロップダウン・リストから「Limit Value」を選択します。「Limit Value」を選択すると、表がロックされ、表にある最大順序値(順序を増加させるため)が検索されるか、表にある最小順序値(順序を減少させるため)が検索されます。

  • Allow Cycle: 最小値または最大値に達したときに、データベースが循環して(つまり、やりなおし)、値の生成を続行するかどうかを示します。

  • Order Value: リクエストの順序で値が生成されることを保証します。これは、Real Application Clustersの使用時に必要になる場合があります。

  • Cache Values: パフォーマンスを向上させるために、値がメモリー内のデータベースで事前に割り当てられるかどうかを指定します。

  • Cache Size: キャッシュに事前割当てされる値の数を指定します。

「Constraints」タブ

「Constraints」タブは、表の制約を編集する際に使用します。次のコントロールがあります:

コントロール 説明

Constraints

表に対する制約とそのタイプをリストします。「Constraint Details」ペインには、現在選択されている制約に関する詳細情報が表示されます。

  • Add: 表に新規の制約を追加し、それを選択します。デフォルトでは、新規の制約の名前はCONSTRAINTnで、デフォルトは一意制約です。新規の制約を変更するには、「Constraint Details」ペインで適切な変更を行います。

  • Remove: 選択した制約を削除します。

Constraint Properties

現在選択されている制約に関する次の詳細情報を表示します:

  • Name: 新規の制約を作成する場合、「Create」ボタンをクリックした後、ここに名前を入力します。「Available Constraints」リスト・ボックスで既存の制約を選択している場合は、その名前が表示されます。大/小文字を区別して名前を入力するには、二重引用符でその名前を囲みます。

  • Type: 次の制約タイプから選択します:

    • Unique

    • Primary key

    • Check

    • Foreign key

    • UDT columns

    • Ref

  • Deferrable: 制約を遅延可能にするか、つまり制約が影響するトランザクションが終了するまで制約のチェックを遅延するかどうかを指定します。「Deferrable」を選択しない場合、新規表または変更された表のコミット時に制約が有効である必要があります。有効でないと、表の作成または変更が失敗します。

  • Enabled: 制約を有効にするのか無効にするのかを指定します。デフォルトは有効です。

  • Validate: 制約を検証するかどうかを指定します。検証された制約は、制約が無効になった場合でも表のすべての行を保持することが保証されます。

  • Execution: 遅延可能な制約に対するデフォルトのチェック動作を設定します。次のいずれかを指定します:

    • Immediate: Oracleでは、後続の各SQL文の終了時にこの制約をチェックします。最初に指定しない場合、デフォルトの設定は「Immediate」です。

    • Deferred: Oracleでは、後続のトランザクションの終了時にこの制約をチェックします。

次のコンポーネントは、選択した制約のタイプによって異なります:

  • Primary Key Columns/Unique Key Columns: 主キーまたは一意キーの基になる列を指定します。表の列から選択できます。キーを追加する場合は、ドロップダウン・リストを使用して列を選択します。

  • Add (Primary/Unique Key): 主キー/一意キーのリストに新規列を追加します。

  • Remove (Primary/Unique Key): 主キー/一意キーのリストから選択した列を削除します。

  • Using Index (Primary/Unique Key): 制約で使用する索引を指定します。「Auto」を選択すると、データベースが自動的に索引を生成します。

  • Table (Foreign Key): 外部キー制約がある表を指定します。

  • Constraint (Foreign Key): 外部キー制約を指定します。

  • Association (Foreign Key): 参照列およびキーで操作するローカル列を指定します。新しい制約を追加する場合は、ローカル列をクリックしてドロップダウン・リストから選択します。

  • On Delete (Foreign Key): 参照されている主キー値または一意キー値を削除した場合に、Oracle Databaseが参照整合性を自動的に保持する方法を指定します。次の中から選択します:

    • No action: Oracleでは、子表内に依存する行がある親表の参照キー値を削除できません。

    • Cascade: Oracleでは依存する外部キー値を削除します。

    • Set null: Oracleでは、依存する外部キー値をNULLに変換します。

  • Condition (Check Constraint): チェックする条件を入力します。たとえば、JOB_ID IS NOT NULLです。

  • Column/Attribute (Ref Constraint):

    REF制約を使用すると、REF型の列とそれが参照するオブジェクトとの関係を指定できます。

    オブジェクト表またはリレーショナル表のREF列の名前を指定するか、リレーショナル表のオブジェクト列内の埋込みREF属性を指定できます。

  • Scope (Ref Constraint):

    REF列内の参照の範囲を制限するために使用する表名を選択します。この句を指定するには、scope_tableが自分のスキーマ内にあるか、またはscope_tableに対してSELECT権限またはSELECT ANY TABLEシステム権限が必要です。REF列ごとに範囲表を1つのみ指定できます。

  • Scope/With Rowid (Ref Constraint):

    このチェック・ボックスを選択すると、REF制約で指定された列または属性にREF値とともにROWIDが格納されます。ROWIDとともにREF値を格納すると、参照解除操作のパフォーマンスは向上しますが、使用する領域も多くなります。デフォルトのREF値のストレージでは、ROWIDは格納されません。

  • OID Based on Primary Key (Primary Key):

    オブジェクト表の主キー制約の場合、この選択により、主キーがオブジェクト識別子として使用されます。

「Indexes」タブ

「Indexes」タブは、表の索引を作成または変更する際に使用します。次のコントロールがあります:

コントロール 説明

Indexes

表の索引、索引のタイプ、および影響を受ける列を表示します。索引のタイプは、ビットマップまたはBツリーにできます。影響を受ける列は、カンマ区切りのリストで示します。「Index Details」ペインには、現在選択されている索引の詳細情報が表示されます。

  • Add: 表に新規の索引を追加し、それを選択します。デフォルトでは、新規の索引の名前はINDEXNで、デフォルトはBツリー索引です。新規の索引を変更するには、「Index Details」で適切な変更を加えます。

  • Remove: 選択した索引を削除します。

Index Properties

現在選択されている索引に関する次の詳細情報を表示します:

  • Name: 新規の索引を作成する場合、「Add」ボタンをクリックした後、ここに名前を入力します。「Available Indexes」リスト・ボックスで既存の索引を選択している場合は、その名前が表示されます。大/小文字を区別して名前を入力するには、二重引用符でその名前を囲みます。

  • Type: 索引のタイプを指定します。使用可能な選択肢は次のとおりです:

    • B-Tree: 通常の索引として索引を作成します。

    • Bitmap: 各行を別々に索引付けするかわりに、各個別キーのビットマップで索引を作成します。

  • Unique: 索引を一意として指定します。一意索引では、表の2つの行にキー列内に重複した値がないことが保証されます。

  • Reverse: ROWID以外の索引ブロックのバイト数を逆順に格納します。

  • Index keys: 索引キー、索引付けする列または式を指定します。各キーの索引付けを昇順にするか降順にするかも指定できます。

    列を索引付けするには、「Key」列のドロップダウン・リストから列を選択します。列の順序が重要なことに注意してください。

    式を索引付けするには、「Key」列に式を入力します。

    索引キーの順序を指定するには、「Order」列の対応するドロップダウン・リストで、「Ascending」または「Descending」を選択します。文字データの索引は、データベース文字セット内の文字値の昇順または降順で作成されます。

  • Add: 索引キーのリストにキーを追加します。

  • Remove: 選択した索引キーをリストから削除します。

「XML」タブ

「XML」タブは、XML表のプロパティを指定する際に使用します。次のコンポーネントがあります:

コントロール 説明

Store As

XMLの格納方法を指定します。使用可能な選択肢は次のとおりです:

  • CLOB: XMLデータをCLOBとして格納します。

  • Object Relational: XMLデータをオブジェクト・リレーショナル型として格納します

  • Binary: XMLデータをバイナリ・データとして格納します。(Oracle Database 11.2.01以降で使用可能)

Use XML Schema:

XMLスキーマを使用するかどうかを指定します。これは、オブジェクト・リレーショナル・タイプとして格納されているXMLに対して自動的に選択(必須)されます。Oracle DatabaseへのXMLスキーマの登録の詳細は、「XMLスキーマ・デザイナ」を参照してください。

XML Schema Owner:

XMLスキーマの所有者を指定します。

XML schema name

列のXMLスキーマ、つまり列での準拠が必要なXMLスキーマを指定します。次の項目から選択できます:

  • None

  • All XML schemas that you can access

XMLスキーマを指定した場合、XMLルート要素を指定する必要があります。

XML root element

XMLルート要素を指定します。

Binary Storage Options:

バイナリXMLストレージのストレージ・オプションを指定します。Oracle Database 11.2.0.1以降で使用可能です。使用可能な選択肢は次のとおりです:

  • None

  • Allow Any Schema: (「Use XML Schema」が選択されていない場合のみ使用可能)

  • Allow Non-Schema:

  • Allow All: (「Use XML Schema」が選択されていない場合のみ使用可能)

「Object」タブ

「Object」タブは、オブジェクト表のプロパティを指定する際に使用します。次のコンポーネントがあります:

コントロール 説明

Object Type

選択できるオブジェクト・タイプをリストします。

Object Substitutable At All Levels

すべてのレベルで置換を有効にします。これは、サブタイプに対応する行オブジェクトがこのオブジェクト表に挿入できるということです。埋込み済のネストしたすべての表および矢印は置換できません。