Symfoware(R) Server RDBユーザーズガイド データベース定義編 - FUJITSU - |
目次 索引 |
論理構造は、スキーマとその要素である実表から構成されます。
スキーマは、表のデータ、表の定義データから構成されます。スキーマをどのような実表で構成するかについては、データベースを使用する業務の内容、処理するデータの内容およびデータの処理方法を考慮して決める必要があります。スキーマの構成は、スキーマ定義文で定義します。スキーマ定義文で定義する事項は以下のとおりです。
実表名および実表の形式
スキーマ定義データは、RDBディクショナリに登録されます。実表のデータは、データベーススペースに格納されます。RDBディクショナリには、複数のスキーマ定義を登録することができます。また、1つのスキーマに属する実表のデータは、1つのデータベーススペースに全部格納したり、実表単位に複数のデータベーススペースに分けて格納できます。
複数のスキーマを複数のデータベーススペースに格納する場合の例を、図:スキーマとデータベーススペースの対応例に示します。
実表は列と行から構成されます。図:実表の形式の例では、1行で1つの製品のデータを構成します。1行のデータはいくつかの列から構成され、列がデータ項目に該当します。1つの製品のデータ(1行)は、製品番号、製品名、在庫数量および倉庫番号の4つのデータ項目(列)から構成されています。
実表の構成は、スキーマ定義文で定義します。それぞれの実表をどういうデータ項目から構成するかは、スキーマ定義における表定義で定義します。表定義の定義事項を以下に示します。
表には名前を付けます。これを“表名”と呼びます。
表名は、データ操作の対象とする表を指定する場合に使用します。また、表定義の削除や追加を行う場合に、削除、追加の対象とする表定義情報を指定するためにも使用します。
実表を構成する列には、以下の定義があります。
表に対して、“1つまたは複数の列で、同一値を持つ行が2つ以上あってはいけない”という制約を適用するか否かを定義することができます。この制約を“一意性制約”と呼びます。
ビュー表はデータ操作のための仮想的な表であり、データの実体は存在しません。ビュー表は、図:ビュー表の概念のように、実表の部分表に相当します。ビュー表の定義は、ビュー定義で行います。ビュー定義で定義する項目は以下のとおりです。
インデックスは、データベースのデータ検索の効率を高めるためのものです。データを操作する場合、一般に表の列データを検索キーとしたデータ検索をともないます。したがって、データ検索効率がデータ操作効率を決める重要な要素となります。インデックスは、表の列ごとに作成するか否かを指定することができます。また、複数の列を結合して、1つのインデックスとして指定することもできます。インデックスを作成していない列の検索は、インデックスを作成している列の検索に比べて検索効率が低下します。したがって、データ検索のキーとなる列には、インデックスを作成する必要があります。
インデックスを作成するとその分だけデータベース容量が必要になります。データベーススペースの大きさを決める場合には、インデックスに必要なスペース量も考慮する必要があります。
インデックスはデータベース容量およびデータ操作効率に影響しますが、データ操作には何の影響もありません。したがって、利用者は、SQL文を使用してデータを操作する応用プログラムの開発にあたって、インデックスを意識する必要はありません。
インデックス定義は、格納構造定義文で定義します。
インデックスは実表の列に対して定義します。ビュー表に対しては定義できません。
インデックス定義は、スキーマ定義以降、データベースにデータを格納する前に行います。しかし、データベース創成またはデータ操作によってデータベースにデータを格納したあとに、インデックスを定義することも可能です。インデックスは、インデックス定義後のデータベース創成時およびデータ操作(更新)時にデータベーススペース内に作成されます。
図:インデックスの概念に在庫表の在庫数量列に対してインデックスを作成した場合を示します。なお、この図はインデックスを理解するための図であり、データベースの形式を正確に表している図ではありません。
在庫数量のインデックスは、在庫数量値および対応する在庫表上の行の位置を表すポインタから構成され、在庫数量値の順に並び換えられています。たとえば、在庫表から在庫数量が60である行を検索する指定の場合、まず、在庫数量のインデックスが検索されます。インデックスは在庫数量値の順に並べられていますので高速に検索ができます。インデックス上で検索が終わると、そのポインタから在庫表上の行の位置が即座に分かり、指定の行が求まります。
目次 索引 |