ページの先頭行へ戻る
Symfoware Server V12.1.x RDB運用ガイド(データベース定義編)
FUJITSU Software

2.3 データベースの設計

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

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

DSIに、表のデータ圧縮機能を指定する場合は、“第5章 表のデータ圧縮”を参照してください。

表の設計

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


属性の設計

設計した項目に対する適切なデータのデータ型を設計します。また、列の制約と既定値を設計することもできます。

参照

使用できる属性の詳細は、“SQLリファレンス”を参照してください。


格納構造の設計

格納構造の決定

アプリケーションからみると、データベースは表の形式で表現されています。アプリケーションはSQL文によって、あたかも行と列を操作するようにしてデータ操作を行います。

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

セットアップ時に自動容量拡張の設定を有効にした場合は、DSIの容量は動的に拡張されます。

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

  • SEQUENTIAL構造

  • RANDOM構造

  • OBJECT構造

  • BTREE構造

格納構造に応じたデータベーススペース量の見積り

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

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

格納構造定義を行わないデータベース定義

格納構造定義を行わずにデータベースを定義する場合は、表定義またはインデックス定義で、データを格納するデータベーススペースを指定します。DSO定義およびDSI定義は不要です。

格納構造定義を行わずにデータベースを定義する方法については、“2.8 格納構造定義を行わない場合”を参照してください。


データベースの設計の例

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

在庫表:

取り扱う製品とその在庫数量の情報をもつ表

発注表:

仕入れ先ごとの取引製品とその発注数量、および仕入れ価格に関する情報をもつ表

会社表:

取引会社の会社名、電話番号、および住所の情報をもつ表

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


在庫表

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

製品番号:

製品につけたコード番号データの列

製品名:

製品の種類名データの列

在庫数量:

製品の在庫数データの列

倉庫番号:

製品を保管してある倉庫の番号データの列


発注表

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

取引先:

取引先の会社番号データの列

取引製品:

製品につけたコード番号の列(在庫表の“製品番号”列と対応)

仕入価格:

製品の仕入れ価格データの列

発注数量:

製品の発注数データの列


会社表

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

会社番号:

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

会社名:

会社の名称データの列

電話番号:

会社の電話番号データの列

住所:

会社の住所データの列

在庫管理データベースの内容
表2.1 a) 在庫表

製品番号

製品名

在庫数量

倉庫番号

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

テレビ
テレビ
冷蔵庫
冷蔵庫
CDプレーヤー
テレビ
ビデオ
冷蔵庫
冷蔵庫
CDプレーヤー
CDプレーヤー
CD

    85
    90
    60
    75
  120
      0
      5
      8
    15
    25
    14
2500

  2
  2
  1
  1
  2
  2
  2
  1
  1
  2
  2
  2

表2.2 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

表2.3 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

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

各表の列の属性を以下に示します。

表2.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を許します。


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

在庫表、発注表および会社表の関係を以下に示します。

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

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