Symfoware(R) Server RDBユーザーズガイド データベース定義編 - FUJITSU - |
目次 索引 |
データベースを作成する場合、最初にデータベースの設計を行います。業務の内容、処理するデータの種類と量、およびデータの処理方法などを十分に分析して、データベースを設計する必要があります。
データベース設計の手順には、表の設計、属性の設計、格納構造の設計または簡略化した格納構造の設計があります。
業務の内容にあった表の設計を行います。
設計した項目に対する適切なデータのデータ型を設計します。また、列の制約と既定値を設計することもできます。使用できる属性の詳細は、“SQLリファレンスガイド”を参照してください。
応用プログラムからみるとデータベースは表の形式で表現されています。応用プログラムはSQL文によって、あたかも行と列を操作するようにしてデータ操作を行います。
表の形式で表現されているデータを、物理上のページに格納するための構造を“格納構造”と呼びます。データベースの格納構造は、アクセスパスの分析などから最適な格納構造を設計します。また、データ量から表の大きさを算出して、用意するディスクボリュームのスペース量を決定します。表の分割運用の適用は、データ量の成長予測やデータベースの再編成などに許容できる運用時間などを考慮して決定します。
以下に格納構造の種類を示します。格納構造の詳細は、“格納構造”を参照してください。
ここでは、データベーススペースの割当てを行います。これは、処理するデータ量や領域の使用パターンを考慮し、格納構造の各構成要素に対してデータベーススペースを割り当てます。
格納構造の見積りの詳細は、“データベーススペースの所要量の見積り”を参照してください。
格納構造を簡略化して定義するときは、表定義またはインデックス定義で、データを格納するデータベーススペースを指定します。これにより、Symfoware/RDBが自動的に格納構造を定義します。この場合、表の格納構造はSEQUENTIAL構造になります。マルチメディアデータを格納する表については、表の格納構造として、SEQUENTIAL構造またはOBJECT構造を選択できます。なお、分割格納を行うことはできません。
格納構造を簡略化して定義した場合、表定義およびインデックス定義時の各種名前から表のDSO名およびDSI名を自動的に命名します。また、このときにデータ長および割付け量も自動的に決定します。
格納構造の簡略化定義では、DSIの容量は動的に拡張されます。
なお、動作環境ファイルのパラメタで、命名時のプレフィックス、データ長、割付け量およびDSIの容量拡張の設定を変更することができます。マルチメディアデータを格納する表については、格納構造も選択できます。動作環境ファイルについての詳細は、“RDBユーザーズガイド 応用プログラム開発編”を参照してください。
データベースの設計の例として、小売店の在庫管理データベースを表:在庫管理データベースの内容に示します。このデータベースは、小売店の在庫管理業務を実現するもので、以下の3つの表から構成されます。
なお、以下の例は、データベースの作成およびデータ操作の説明に、主にこのデータベースを使用します。本節以降で、使用例などに下記の表名および列名を使用します。必要に応じて参照してください。
在庫表の内容を表:在庫管理データベースの内容のa)に示します。在庫表は以下の4つの列から構成されています。
発注表の内容を表:在庫管理データベースの内容のb)に示します。発注表は以下の4つの列から構成されています。
会社表の内容を表:在庫管理データベースの内容のc)に示します。会社表は以下の4つの列から構成されています。
a) 在庫表
製品番号 |
製品名 |
在庫数量 |
倉庫番号 |
---|---|---|---|
110 |
テレビ |
85 |
2 |
b) 発注表
取引先 |
取引製品 |
仕入価格 |
発注数量 |
---|---|---|---|
61 |
123 |
48000 |
60 |
c) 会社表
会社番号 |
会社名 |
電話番号 |
住所 |
---|---|---|---|
61 |
アダム電気 |
111−777−4444 |
東京都 小田区 新蒲田 7−8−9 |
62 |
アイデア商事 |
222−888−5555 |
神奈川県 小浜市 旭区 1−2−3 |
63 |
大月産業 |
333−999−6666 |
埼玉県 浦和町 大崎 1−1−1 |
71 |
川上電気 |
444−111−7777 |
大阪府 境田市 赤坂台 4−5−6 |
72 |
龍巻産業 |
555−222−8888 |
大阪府 灘町 東淀川 2−3−7 |
74 |
第一商事 |
666−333−9999 |
京都府 中市 4−16−16 |
各表の列の属性を表:在庫管理データベースの各表の列属性に示します。
表名 |
列名 |
列のデータ型 |
列の制約 |
備考 |
---|---|---|---|---|
在庫表 |
製品番号 |
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”の行から、その製品の取引先の会社名、電話番号および住所が分かります。
目次 索引 |