インデックス

<< 目次を表示 >>

ページ位置:  その他の記法のモデリング > データベースの設計・生成と読み込み > データベースモデリング > データベース設計に関係する要素 > テーブル > 制約 >

インデックス

データベースインデックスはテーブルに適用され、データの取得やソートの速度向上のために利用されます。一つのテーブルに複数のインデックスを定義できます。ただし、インデックスのための情報の追加や削除などの保守の関係で、性能が低下する場合があります。

 

Enterprise Architectでは、インデックスは、ステレオタイプ付きの操作として表現されます。

 

いくつかのDBMSではインデックスに対して追加の属性を設定できます。Enterprise Architectでは、こうしたインデックスは、操作が持つ追加のタグ付き値から設定できます。

 

 

利用手順:

リボン

コード > データベース > データベースビルダー > テーブルをクリック > 制約とインデックス

コンテキストメニュー

ダイアグラムのテーブル要素を右クリック | 属性・操作と付属要素 | 制約とインデックス

キーボード

テーブルをクリック: F9 > 制約とインデックス

 

 

 

 

インデックスの定義

#

操作方法

1

対象のテーブル要素の制約タブにおいて、「制約の追加」の欄をクリックします。

制約の名前を指定します。

2

制約の種類を index に設定します。

右下の「関係する列」タブで、インデックスと関係する列を指定します。

「割り当てられた列」の一覧には、「順序」の項目があります。この項目には、「Ascending」あるいは「Descending」が表示されます。必要に応じて、該当する項目のセルをクリックし、値を変更できます。

MySQLの場合に限り、「Len」の項目が表示され、部分インデックスを定義できます。数値を指定して値を変更できます。0を指定した場合には、列の内容全体をインデックスの対象とします。

3

左下の制約のプロパティで、追加のプロパティを設定します。

 

 

追加のプロパティ

項目

説明

Is Unique

True/Falseで指定します。該当のインデックスについて全く同じに情報をテーブルに複数含まないことを示します。

Is Clustered

True/Falseで指定します。テーブル内の情報のアクセス速度を改善します。テーブルに1つ作成できます。

この設定は、利用できるDBMSが限られます。利用できないDBMSの場合には表示されません。

Is Bitmap

True/Falseで指定します。該当のインデックスが、ビット値で表現されるような内容の場合に指定します。

この設定は「Is Unique」と同時に利用できません。両方が有効の場合、「Is Unique」はFalseが指定されたものとしてDDLを生成します。

この設定は、Oracleでのみ利用できます。それ以外のDBMSの場合には表示されません。

Fill Factor

0から100までの値の数値で指定します。データ保存領域としてして利用可能な割合を指定します。

Functional-based

評価された結果がインデックスになるような内容のSQL文を指定します。以下はその例です。

LOWER("field")

functional-based インデックスとして指定された列は無視されます。

Include

現在のテーブルから、キーのない列をカンマ区切りで指定します。

DBMSによっては、この設定は利用できません。利用可能なDBMSを指定している場合に限り、この項目は用事されます。

 

注意:

  • インデックスを作成する際には、パラメータとして対象の列を1つ指定する必要があります。指定しない場合、生成されるDDLの内容は適切になりません。
  • 操作として定義されたインデックスに割り当てられた列は無視されます。

 

 

参照: