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

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

2.2 データベースの設計

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

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

■表の設計

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

■属性の設計

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

■格納構造の設

◆格納構造の決定

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

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

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

◆格納構造の見積り

ここでは、データベーススペースの割当てを行います。これは、処理するデータ量や領域の使用パターンを考慮し、格納構造の各構成要素に対してデータベーススペースを割り当てます。

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

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

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

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

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

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

■データベースの設計の

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

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

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

■在庫

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

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

■発注

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

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

■会社

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

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

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

a) 在庫表

製品番号

製品名

在庫数量

倉庫番号

110
111
123
124
140
212
215
226
227
240
243
351

テレビ
テレビ
冷蔵庫
冷蔵庫
カセットデッキ
テレビ
ビデオ
冷蔵庫
冷蔵庫
カセットデッキ
カセットデッキ
カセットテープ

85
90
60
75
120



15
25
14
2500












b) 発注表

取引先

取引製品

仕入価格

発注数量

 61
 61
 61
 61
 61
 62
 62
 62
 63
 63
 63
 71
 71
 72
 72
 72
 72
 72
 74
 74
 74
 74
 74

 123
 124
 140
 215
 240
 110
 226
 351
 111
 212
 215
 140
 351
 140
 215
 226
 243
 351
 110
 111
 226
 227
 351

48000
64000
8000
240000
80000
37500
112500
375
57400
205000
246000
7800
390
7000
210000
105000
84000
350
39000
54000
117000
140400
390

  60
  40
  80
  10
  20
 120
  20
 800
  80
  30
  10
  50
 600
  70
  10
  20
  10
1000
 120
 120
  20
  10
 700

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”の行から、その製品の取引先の会社名、電話番号および住所が分かります。

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

image


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

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