ページの先頭行へ戻る
Interstage Navigator ServerV9.5.0 セットアップガイド Vol.1(Enterprise Edition用)
FUJITSU Software

1.2.7 データベースの構造

Navigatorからデータベースのセットアップをする際には、以下のデータベースの構造を考慮します。

1.2.7.1 テーブルの結合関係

基本形式

拡張形式

1.2.7.2 テーブル結合キーの形式

基本形式

拡張形式

結合キーの制約

以下のデータ項目は結合キーとして使用できません。

未分類データの表示

未分類を表示する集計を行う場合、データベースシステムによるテーブル結合が行われる問い合わせでは、対応する結合キーのないデータは、集計の対象となりません。

DBMSのアウタジョインの機能を利用することで、対応する結合キーのない主テーブル側のデータ(以下の例では、主テーブルのID項目の「04」が該当します)も集計対象とすることができるようになります。

アウタジョインを利用した問い合わせは、データベースがPostgres、Symfoware/RDB、Oracle、SQL Server、およびSAP IQの場合に利用できます。

DBMSのアウタジョインは、通常のジョインに比べて処理に時間がかかる場合があります。そのため、システム管理者はアウタジョインを使用するよりも、データベースのメンテナンスをして未分類データが発生しないようにしてください。アウタジョインを使用する場合には、事前に性能検証をしてください。

1.2.7.3 集計キーの形式

実データテーブルとマスタテーブルの結合を規定するキーとして、マスタテーブル側にプライマリキー、実データテーブル側にコードがあります。

マスタテーブルとマスタテーブルの結合を規定するキーとして、マスタテーブルにプライマリキー、他方のマスタテーブルにコードがあります。

実データテーブルと実データテーブルの結合を規定するキーとして、実データテーブルにユニークキー、他方の実データテーブルもユニークキーがあります。

管理ポイントごとの集計キーの形式

各管理ポイントの集計キーの形式を説明します。管理ポイントについては、“Navigator Server概説書”を参照してください。

マスタ型

マスタのプライマリキーを集計キーにする方式です。テーブルの結合関係の定義から、自動的にNavigatorが設定します。この方式は、コード、ラベルと並べ順を規定するキーが一体で管理されます。

全値型

マスタ、または実データテーブルのデータ項目のユニークな値を、問い合わせ時に取り出して、それを集計キーにする方式です。集計結果を見やすくするためには、集計キーをカテゴリ型に再編集して、ラベルを付加したり、並べ順を変更したりする必要があります。

初期設定の並べ順は、文字型のデータの場合、文字コードの順序(昇順)となります。また、数値型データの場合、数値の大きさの順序(昇順)となります。なお、データにNULL値がある場合は、対象から除外されます。不都合がある場合は、NULL値をデータベースで代替値に置き換えてください。

カテゴリ型

マスタ型、または全値型の集計キーを再編集して、新しいくくりを設定する方式です。

小区分(マスタ、または全値型)を編集して中区分を定義し、さらに中区分を編集して大区分を定義するなど、階層関係を持つ集計キーを作成することができます。

カテゴリ型の集計機能を応用すると、データのクリーニングが可能となります。性別を示すデータのクリーニングの例を、以下に示します。

データ項目の値にNULLがあった場合、NULLは未区分として集計されます。未区分を表示しないモードで集計すると、NULL値のデータは無視されます。不都合がある場合は、NULL値をデータベースで代替値に置き換えてください。

なお、NULL値は、カテゴリを構成する内訳に含めることはできません。

時間型

SNに時間を示すデータ項目を集計キーとして宣言することにより、自動的にキーを設定する方式です。例えば、受注日(yyyymmdd)を集計キーに設定することにより、受注金額などの取り出したい形式(日単位、月単位、四半期単位、半期単位、年度単位)を、取り出し時点で、自由に要求することが可能です。

範囲型

受注額、売上高などの計数データを範囲で集計する方式です。

制約とその回避方法

マスタ型で複数のラベルの使い分け

マスタ型の集計キーに対応した複数のラベルを使い分けることはできません。使用頻度の少ないラベルを全値型の集計キーとして定義して、情報活用で2つの集計キーを使い分けてください。

文字データの評価

固定長形式の文字データは、頭詰めで入力されていること、また項目の属性として設定された文字数に満たない場合は、不足する位置に空白が保証されていることを前提としています。

は別の値として評価されます。

可変長の文字データは、頭詰めで入力されていることを前提としています。

末尾から連続する空白の評価は、使用しているデータベースの種類によって異なります。ただし、管理ポイントの作成元項目として使用すると、管理ポイントが正しく作成されないことがあります。末尾の空白がなくなるようにデータを更新してください。

は別の値として評価されます。

はデータベースの種類によって異なります。

Symfoware/RDB、またはSQL Serverの場合は、同一の値として評価されます。

Postgres、Oracleの場合は、別の値として評価されます。

不都合がある場合は、データを更新するかカテゴリ型の集計を適用して、クリーニングを実施してください。

80文字(日本語型の場合は40文字)を超える文字項目は、集計キーとして利用することができません。なお、可変長の場合は、最大文字数がそれに対応します。

結合キー項目に指定した項目が空白のみのデータを持つ場合、正しく集計されないことがあります。空白のみのデータを持つ項目を結合キー項目にする場合は、空白データを別のデータに置き換えてください。

サーバのキャラクタコードセットがEUCの場合、文字列型データに半角カナが混在するデータは、マスク指示したグループ化ができません。

富士通 : 全桁を対象とした集計キーの定義が可能

富士通システム : 全桁を対象とした集計キーと、マスク指示したグループ化による集計キーの定義が可能

数値データの評価

浮動小数点形式、および小数部を持つ固定小数点形式の数値データを、全値型の集計キーとして利用することはできません。精度によって、処理結果に揺れが生じることがあるためです。整数、または小数部のない固定小数点形式のデータに変換してください。

時間型のデータ項目の表現形式(2桁の西暦表現)

年の表現は、西暦の4桁を前提としています。2桁の表現の場合は、4桁に変更してください。また、年、月、日が分離されている場合は、結合して1つのデータ項目としてください。

時間の表現は、CHARACTER型、DATE型とTIMESTAMP型のいずれでも動作を保証します。

性能面を考慮するとCHARACTER型が有利です。DATE型、またはTIMESTAMP型のデータ項目を結合キーにすると、性能が極端に悪化することがあります。

時間を表現するデータ項目は、以下のどれかの形式である必要があります。

  

対応する形式

TIMESTAMP型
(Symfoware/RDB)

yyyy-mm-dd hh:mm:ss

DATE型
(Symfoware/RDB)

yyyy-mm-dd

DATE型
(Oracle)

OracleのDATE型は、環境変数RN_ORACLE_DATETYPEで、データの形式を指定します。

  • RN_ORACLE_DATETYPE=1、または省略した場合
      yyyy-mm-dd hh:mm:ss

  • RN_ORACLE_DATETYPE=2の場合
      yyyy-mm-dd

datetime型
(SQL Server)

yyyy-mm-dd hh:mm:ss

smalldatetime型
(SQL Server)

yyyy-mm-dd hh:mm:ss

SQL_DATE型
(ODBC)

yyyy-mm-dd

SQL_TIMESTAMP型
(ODBC)

yyyy-mm-dd hh:mm:ss

date型
(Postgres)

yyyy-mm-dd

timestamp without time zone型
(Postgres)

yyyy-mm-dd hh:mm:ss

CHARACTER型

年月の表現

yyyymm
yyyy-mm
yyyy/mm
yyyy.mm

年月日の表現

yyyymmdd
yyyy-mm-dd
yyyy/mm/dd
yyyy.mm.dd

年月日時分秒の表現

yyyymmddhhmmss
yyyy-mm-dd hh:mm:ss
yyyy/mm/dd hh:mm:ss
yyyy.mm.dd hh:mm:ss