Symfoware Parallel Server RDBユーザーズガイド データベース定義編
目次 索引 前ページ次ページ

第2章 データベースの作成

2.2 データベースの設計

データベースを作成する場合、最初にデータベースの設計を行います。業務の内容、処理するデータの種類と量、およびデータの処理方法などを十分に分析して、データベースを設計する必要があります。

データベース設計の手順には、表の設計、属性の設計、格納構造の設計または簡略化した格納構造の設計があります。

■表の設計

業務の内容にあった表の設計を行います。

■属性の設計

設計した項目に対する適切なデータの型を設計します。また、列の制約と既定値を設計することもできます。使用できる属性の詳細は、“SQLリファレンスガイド”を参照してください。

■格納構造の設計

◆格納構造の決定

応用プログラムからみるとデータベースは表の形式で表現されています。応用プログラムはSQL文によって、あたかも行と列を操作するようにしてデータ操作を行います。

表の形式で表現されているデータを、物理上のページに格納するための構造を“格納構造”と呼びます。データベースの格納構造は、アクセスパスの分析などから最適な格納構造を設計します。また、データ量から表の大きさを算出して、用意するディスクボリュームのスペース量を決定します。表の分割運用の適用は、データ量の成長予測やデータベースの再編成などに許容できる運用時間などを考慮して決定します。

以下に格納構造の種類を示します。格納構造の詳細は、“格納構造”を参照してください。

◆格納構造の見積り

ここでは、データベーススペースの割当てを行います。これは、処理するデータ量、並列数および領域の使用パターンを考慮し、格納構造の各構成要素に対してデータベーススペースを割り当てます。並列数は、データ量と必要なレスポンス時間から設計します。

格納構造の見積りの詳細は、“データベーススペースの所要量の見積り”を参照してください。

■簡略化した格納構造の設

格納構造を簡略化して定義するときは、表定義またはインデックス定義で、データを格納するデータベーススペースを指定します。これにより、Symfoware/RDBが自動的に格納構造を定義します。この場合、分割格納を行うことはできません。また、表の格納構造はSEQUENTIAL構造になります。

格納構造を簡略化して定義した場合、表定義およびインデックス定義時の各種名前から表のDSO名およびDSI名を自動的に命名します。また、このときにデータ長および割付け量も自動的に決定します。

格納構造の簡略化定義では、DSIの容量は動的に拡張されます。

なお、動作環境ファイルのパラメタで、命名時のプレフィックス、データ長、割付け量およびDSIの容量拡張の設定を変更することができます。動作環境ファイルについての詳細は、“RDBユーザーズガイド 応用プログラム開発編”を参照してください。

■データベースの設計の

データベースの設計の例として、小売店の在庫管理データベースを図:在庫管理データベースの内容に示します。このデータベースは、小売店の在庫管理業務を実現するもので、以下の3つの表から構成されます。

なお、以下の例は、データベースの作成およびデータ操作の説明に、主にこのデータベースを使用します。本節以降で、使用例などに下記の表名および列名を使用します。必要に応じて参照してください。

在庫表:
取り扱う製品とその在庫数量の情報をもつ表
発注表:
仕入れ先ごとの取引製品とその発注数量、および仕入れ価格に関する情報をもつ表
会社表:
取引会社の会社名、電話番号、および住所の情報をもつ表

■在庫

在庫表の内容を図:在庫管理データベースの内容のa)に示します。在庫表は以下の4つの列から構成されています。

製品番号:
製品につけたコード番号データの列
製品名:
製品の種類名データの列
在庫数量:
製品の在庫数データの列
倉庫番号:
製品を保管してある倉庫の番号データの列

■発注

発注表の内容を図:在庫管理データベースの内容のb)に示します。発注表は以下の4つの列から構成されています。

取引先:
取引先の会社番号データの列
取引製品:
製品につけたコード番号の列(在庫表の“製品番号”列と対応)
仕入価格:
製品の仕入れ価格データの列
発注数量:
製品の発注数データの列

■会社

会社表の内容を図:在庫管理データベースの内容のc)に示します。会社表は以下の4つの列から構成されています。

会社番号:
会社につけたコード番号データの列(発注表の“取引先”列と対応)
会社名:
会社の名称データの列
電話番号:
会社の電話番号データの列
住 所:
会社の住所データの列

[図:在庫管理データベースの内容]

■在庫管理データベースの各表の列の属性

各表の列の属性を表:在庫管理データベースの各表の列属性に示します。

[表:在庫管理データベースの各表の列属性]

表名

列名

列のデータ型

列の制約

備考

在庫表

製品番号

SMALLINT

NOT NULL

製品のコード番号

製品名

NATIONAL CHARACTER(10)

NOT NULL

製品種類名

在庫数量

INTEGER

 

在庫製品の個数

倉庫番号

SMALLINT

 

保管倉庫の番号

発注表

取引先

SMALLINT

NOT NULL

取引先の会社番号

取引製品

SMALLINT

NOT NULL

製品のコード番号

仕入価格

INTEGER

 

製品の仕入れ価格

発注数量

SMALLINT

 

発注した製品の個数

会社表

会社番号

SMALLINT

NOT NULL

会社のコード番号

会社名

NATIONAL CHARACTER(10)

NOT NULL

会社の名称

電話番号

CHARACTER(14)

 

電話番号

住所

NATIONAL CHARACTER(20)

 

会社の所在地の住所

―――: NULLを許します。

■在庫表、発注表および会社表の関係

3つの表の間の関連を図:在庫表、発注表および会社表の関係に示します。在庫表と発注表は、製品番号と取引製品で関係が付けられています。また、発注表と会社表は、取引先と会社番号で関係が付けられています。たとえば、在庫表上で製品番号が123の製品は、製品名が“冷蔵庫”、在庫数量が“60”で、この製品が格納してある倉庫の番号が“1”です。そして、この製品の仕入価格および発注数量は、発注表の取引製品が“123”の行から、それぞれ“48000”、“60”であることが分かります。さらに、取引先の会社番号は“61”なので、会社表の会社番号が“61”の行から、その製品の取引先の会社の会社名、電話番号および住所が分かります。

[図:在庫表、発注表および会社表の関係]


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006