付録B.2 エンティティレポートの連携

ここでは,ERwin/ERX(バージョン2.6以前)で作成したエンティティレポートの辞書登録について説明します。

<この項の構成>
(1) ERwin/ERXでのエンティティレポートの出力設定
(2) エンティティレポートからデータ項目辞書への変換規則
(3) エンティティレポートからデータ項目辞書への変換規則(同一カラム名をマージする場合)
(4) データ項目辞書とエンティティレポート形式の対応
(5) ERwin/ERX タイプマッピングの規則
(6) エンティティレポート形式フォーマット

(1) ERwin/ERXでのエンティティレポートの出力設定

ERwin/ERXで次に示す設定をしてCSV形式ファイルを出力してください。

(2) エンティティレポートからデータ項目辞書への変換規則

依存関係のあるエンティティレポートを辞書登録する場合の変換規則について説明します。エンティティレポート形式の辞書登録の例を次の図に示します。

図B-2 エンティティレポート形式の辞書登録の例

[図データ]

エンティティレポート形式のCSV形式ファイルを辞書に登録するときの指定によって,登録されるデータ項目およびデータ項目の関係が異なります。図B-2は,属性レポートの同時入力の指定と,物理名の異なる外部キーを識別する指定をした場合の登録例です。

(a) PK属性とFK属性の定義を,データ項目間の継承関係として登録する
(b) 物理名の異なる外部キーを識別して登録する

物理名の異なる外部キーを識別して登録するには,CSV形式ファイル入力コマンドで引数「/Z 物理名の異なる外部キーを識別する」を省略するか,[CSV入力オプション]ダイアログの「物理名の異なる外部キーを識別する」のチェックをオンにします。

この指定をしない場合には,図B-2で示した「2'」と「4'」のデータ項目は登録されません。

(3) エンティティレポートからデータ項目辞書への変換規則(同一カラム名をマージする場合)

エンティティレポート中に,同一のカラム名が定義された属性情報が複数ある場合,その情報をマージしてデータ項目辞書に登録できます。

この場合のエンティティレポートの変換規則を次の図に示します。

図B-3 エンティティレポート形式の辞書登録の例(同一カラム名をマージする場合)

[図データ]

エンティティレポート形式のCSV形式ファイルを辞書に登録するときの指定によって,登録されるデータ項目およびデータ項目の関係が異なります。図B-3は,属性レポートの同時入力の指定と,物理名の異なる外部キーを識別する指定をした場合の登録例です。

(a) 同一カラム名をマージして登録する

同一カラム名をマージして辞書に登録するには,CSV形式ファイル入力コマンドで引数「/R 同一カラム名のマージ有無」に「use」を指定するか,または[CSV入力オプション]ダイアログの「同一カラム名の属性をマージする」のチェックをオンにします。

なお,FK属性のカラム名と,その移行先のPK属性のカラム名が同じ場合は,この指定に関係なく,必ずマージされて登録されます。詳細は,「付録B.2(2) エンティティレポートからデータ項目辞書への変換規則」を参照してください。

(b) マージされる属性の条件

同一カラム名の属性のマージでは,マージされる属性間で,属性の値が一致している必要があります。

マージされる属性間の条件を次の表に示します。条件は,エンティティレポートを単独で入力する場合と,エンティティレポートと属性レポートを同時に入力する場合とで異なります。

表B-2 マージされる属性間の条件

属性情報マージする属性間の条件
エンティティレポートを単独で入力エンティティレポートと属性レポートを同時に入力
カラム名
属性名
カラムデータタイプ
(精度,スケールを含む)
デフォルト値
移行先を示す情報親テーブル名×
ベース名
主キー××
外部キー××
コメントまたは定義×
(凡例)
○:一致しなければならない
△:マージする属性の双方が移行元の情報を持っている場合,移行元の情報が一致している場合はマージできる。また,マージする属性の一方だけ移行元の情報を持っている場合,またはマージする属性の双方が移行元の情報を持っていない場合はマージできる(マージする属性の双方が同じ移行元の情報を持っている場合,およびマージする属性の一方だけ移行元を示す情報を持っている場合は,移行元を示す情報を基に,マージしたデータ項目に継承の関連が付けられる)
×:一致しなくてもよい
-:該当しない
注※
コメントまたは定義の情報が,マージ対象の複数の項目に設定されている場合は,その中で最も長い情報が,データ項目のコメントに設定されます。

(4) データ項目辞書とエンティティレポート形式の対応

データ項目辞書の定義項目とエンティティレポート形式の対応を次の表に示します。

表B-3 データ項目辞書とエンティティレポートの対応

データ項目辞書の定義項目エンティティレポート形式
結合項目※1構成項目
単項目結合項目とその構成項目
結:結合項目
構:構成項目
名称データ項目名テーブル名カラム名※2結:カラム名※2
構:カラム名+サフィックス※2
標準名称エンティティ名属性名※3結:属性名※3
構:属性名+サフィックス※2,※3
フリガナ××結:×
構:×
属性分類結合データカラム名45結:結合データ
構:カラム名45
けた数カラム名45結:-
構:カラム名45
小数部
けた数
カラム名45結:-
構:カラム名45
反復回数×結:-
構:×
付加情報フィールド
1~n
××結:×
構:×
コメントエンティティコメント/定義* 属性
コメント/定義
結:* 属性 コメント/定義
構:×
言語別詳細情報名前テーブル名カラム名※2結:カラム名※2
構:カラム名+サフィックス※2
タイプカラム名※4,※5結:-
構:カラム名※4,※5
タイプ修飾情報※6×結:-
構:×
取りうる値×結:-
構:×
初期値* デフォルト値結:-
構:*※7
言語別
フィールド
××結:×
構:×
(凡例)
×:ERwin/ERX側にデータ項目辞書に対応する情報がない項目
-:データ項目辞書に値が設定されない項目
*:属性レポートから取得される情報。属性レポートを同時入力しない場合は「×」
注※1
エンティティから変換されるデータ項目は,最上位結合項目となります。
注※2
属性名の末尾に出力される(PK)などのキー情報は削除されます。
注※3
カラム名の空白で区切られた情報の一つ目から取得されます。
注※4
カラム名の空白で区切られた情報の二つ目から取得されます。
注※5
変換される分類とタイプは,「付録B.2(5) ERwin/ERX タイプマッピングの規則」を参照してください。
注※6
「COBOL又はOOCOBOL」で定義する編集文字列を指します。
注※7
構成項目のサフィックスが-charの場合はデフォルト値,-lengthの場合は デフォルト値の文字列長が設定されます。

規則
  • データ項目は通常,継承関係の最上位にあるデータ項目として登録されます。
  • 属性レポートとの同時入力で,CSV形式ファイル入力コマンドの引数「/Z 物理名の異なる外部キーを識別する」,または[CSV入力オプション]ダイアログの「物理名の異なる外部キーを識別する」を指定すると,データ項目の継承関係も登録されます。この場合,PK属性とカラム名が異なるFK属性は,PK属性のベース名と同じ属性名のPK属性データ項目を継承します。
  • 継承関係の下位にあるデータ項目として登録されたとき,表B-2で「×」または「-」以外が記された定義項目には,上位のデータ項目の情報は継承されません。また,「×」が記された定義項目の継承モードは,環境構築ユティリティのデータ項目の継承モードの設定に従います。継承モードについては「3.1.1(3)(b) データ項目の継承モードの設定」を参照してください。
  • CSV形式ファイル入力コマンドの引数「/W 更新対象属性」,または[CSV入力オプション]ダイアログの「CSV入力フォーマット種別」で,ERwin/ERX属性だけを更新する指定をすると,表B-2で「×」または「-」以外が記された定義情報のうち言語別名前を除く情報だけを更新できます。

(5) ERwin/ERX タイプマッピングの規則

ERwin/ERXで指定したタイプから,SEWB+/REPOSITORYのデータ項目の分類とタイプへ変換されます。変換にはタイプマッピングの規則が適用され,ERwin/ERXタイプや条件に応じた分類,タイプ,けた数,小数部けた数が設定されます。

標準で用意されているタイプマッピングの規則については,使用するデータベースの種類に応じて次から選択してください。

ORACLEを使用する場合
  • 変換規則A(表B-4,B-5参照) SEWB+ リポジトリセットのSEWB+/REPOSITORY 02-01以降
  • 変換規則B(表B-6,B-7参照) SEWB+ リポジトリセットのSEWB+/REPOSITORY 02-00との互換用
HiRDBを使用する場合
  • 変換規則C(表B-8,B-9参照)

適用する変換規則は,CSV形式ファイル入力コマンドの引数「/E ファイルフォーマット種別(02-01互換用)」または「/B データベース種別」で指定するか,[CSV入力オプション]ダイアログの「対象データベース選択」で指定します。

なお,これらの変換をするには,あらかじめ環境構築ユティリティで言語別タイプをそれぞれの分類で指定できるタイプとして登録しておく必要があります。標準に設定されている分類とタイプの対応については「2.4.1(3)(a) 分類」を参照してください。

変換規則を表B-4から表B-9に示します。

表B-4 ERwin/ERXのタイプの変換規則A-1(ORACLE)

ERwin/ERXSEWB+/REPOSITORY
データベースタイプ精度・長さスケール分類けた数小数部けた数
CHAR[n] (255)×英数字文字列n
CHARACTER[n] (255)×英数字文字列n
CHARZ[n] (255)×英数字文字列n
CURSOR××なし
DATE××日付7
DECIMALp (38)[s] (0)実数1ps3
DISPLAYp (38)[s] (0)なしps4
FLOAT[p] (126)×実数p
INTEGER××整数38
LONG[n]
(16777215​)
×英数字文字列n
LONG RAW[n]
(16777215​)
×なしn
LONG VARCHAR[n]
(16777215​)
×英数字文字列n
LONG VARRAWn (16777215​)×なしn
MLSLABEL[n] (4)×なしn
NUMBER[p] (38)[s] (0)なしp+22s3
RAW[n] (2000)×なしn
RAW MLSLABEL[n] (255)×なしn
ROWID××なし2000
STRING[n] (2000)×英数字文字列n
UNSIGNED[p] (10)×なしp
VARCHAR[n] (65533)×英数字文字列n
VARCHAR2[n] (2000)×英数字文字列n
VARNUM××なし22
VARRAWn (65533)×なしn
その他[p][s]なし
(凡例)
×:指定できない
-:設定されない
n:長さ
p:精度
s:スケール
[ ]:括弧内は省略できる
( ):括弧内は,ERwin/ERXでの記述が省略または数値以外の文字列の場合の仮定値
データ項目種別はすべて「単項目」となります。
注※1
s=0の場合と,sが省略された場合は「整数」となります。
注※2
s<0の場合は「p+(sの絶対値)+1」となります。p<sの場合は「s+2」となります。
注※3
s=0の場合と,sが省略された場合は「-」となります。
注※4
sが省略された場合は「-」となります。

表B-5 ERwin/ERXのタイプの変換規則A-2(ORACLE)

ERwin/ERXのデータベースタイプSEWB+/REPOSITORYの言語別タイプ
COBOL又はOOCOBOLC又はC++SQLその他
CHARXcharCHAR※8
CHARACTERXcharCHAR※8
CHARZXcharフリー定義6※8
CURSORフリー定義1フリー定義4フリー定義6※8
DATEXcharDATE※8
DECIMALPfloatフリー定義6※8
DISPLAYフリー定義2charフリー定義6※8
FLOATDfloatフリー定義6※8
INTEGERフリー定義3intフリー定義6※8
LONGXcharLONG※8
LONG RAWXcharフリー定義6※8
LONG VARCHARXcharフリー定義6※8
LONG VARRAWXcharフリー定義6※8
MLSLABELXcharフリー定義6※8
NUMBERXchar※7※8
RAWXcharフリー定義6※8
RAW MLSLABELXcharフリー定義6※8
ROWIDXcharフリー定義6※8
STRINGXcharフリー定義6※8
UNSIGNEDフリー定義4unsigned intフリー定義6※8
VARCHARフリー定義5charフリー定義6※8
VARCHAR2XcharVARCHAR2※8
VARNUMXcharフリー定義6※8
VARRAWXcharフリー定義6※8
その他フリー定義4フリー定義4フリー定義6※8
注※1
定義文字列には「SQL-CURSOR」が設定されます。
注※2
定義文字列には,「PIC S9($p)V9($s) DISPLAY SIGN LEADING SEPARATE」が設定されます。($p:精度(長さ), $s:スケール)
注※3
定義文字列には「PIC S9($p) COMP-5」が設定されます。($p:精度(長さ))
注※4
定義文字列は設定されません。
注※5
定義文字列には「PIC X($p) VARYING」が設定されます。($p:精度(長さ))
注※6
定義文字列にはERwin/ERXタイプが設定されます。
注※7
pとsが省略された場合は「NUMBERf」が設定されます。s=0の場合と,pが指定されてsが省略された場合は「NUMBER」が設定されます。その他の場合はフリー定義となり,定義文字列にはERwin/ERXタイプが設定されます。
注※8
言語区分「帳票定義」,「Java」のタイプには,環境構築ユティリティで設定した分類区分に対応するタイプの初期値(デフォルトタイプ)が設定されます。言語別4~7のタイプはフリー定義となり,定義文字列は設定されません。

表B-6 ERwin/ERXのタイプの変換規則B-1(ORACLE)

ERwin/ERXSEWB+/REPOSITORY
データベースタイプ精度・長さスケール分類けた数小数部けた数
CHAR[n] (18)×英数字文字列n
CHARACTER[n] (18)×英数字文字列n
DATE××なし18
DECIMAL[p] (18)[s] (0)実数1ps2
FLOAT××実数18
INTEGER××整数18
LONG××英数字文字列18
LONG RAW××英数字文字列18
LONG VARCHAR[n] (18)×英数字文字列n
MLSLABEL××なし18
NUMBER[p] (18 (*のとき38))[s] (0)実数1ps2
RAW[n] (18)×英数字文字列n
RAW MLSLABEL××なし18
ROWID××なし18
SMALLINT××整数18
VARCHAR[n] (18)×英数字文字列n
VARCHAR2[n] (18)×英数字文字列n
その他[p] (18)[s]なしp
(凡例)
×:指定できない
-:設定されない
n:長さ
p:精度
s:スケール
[ ]:括弧内は省略できる
( ):括弧内は,ERwin/ERXでの記述が省略または数値以外の文字列の場合の仮定値
データ項目種別はすべて「単項目」となります。
注※1
s=0の場合と,pが指定されてsが省略された場合は「整数」となります。
注※2
s=0の場合と,sが省略された場合は「-」となります。

表B-7 ERwin/ERXのタイプの変換規則B-2(ORACLE)

ERwin/ERXのデータベースタイプSEWB+/REPOSITORYの言語別タイプ
SQLその他
CHARCHAR※3
CHARACTERフリー定義1※3
DATEフリー定義1※3
DECIMALフリー定義1※3
FLOATフリー定義1※3
INTEGERフリー定義1※3
LONGLONG※3
LONG RAWフリー定義1※3
LONG VARCHARフリー定義1※3
MLSLABELフリー定義1※3
NUMBERNUMBERf2※3
RAWフリー定義1※3
RAW MLSLABELフリー定義1※3
ROWIDフリー定義1※3
SMALLINTフリー定義1※3
VARCHARフリー定義1※3
VARCHAR2VARCHAR2※3
その他フリー定義1※3
注※1
定義文字列にはERwin/ERXタイプが設定されます。
注※2
s=0の場合と,pが指定されてsが省略された場合は「NUMBER」が設定されます。
注※3
言語区分「COBOL又はOOCOBOL」,「C又はC++」,「帳票定義」,「Java」のタイプには,環境構築ユティリティで設定した分類区分に対応するタイプの初期値(デフォルトタイプ)が設定されます。言語別4~7のタイプはフリー定義となり,定義文字列にはERwin/ERXタイプが設定されます。

表B-8 ERwin/ERXのタイプの変換規則C-1(HiRDB)

ERwin/ERXSEWB+/REPOSITORY
データベースタイプ精度・長さスケール構成項目サフィックス分類けた数小数部けた数
CHAR[n] (1)×英数字文字列n
CHARACTER[n] (1)×英数字文字列n
DATE××日付10
DEC[p] (15)[s] (0)実数1ps2
DECIMAL[p] (15)[s] (0)実数1ps2
DOUBLE PRECISION××実数16
FLOAT××実数16
INT××整数9
INTEGER××整数9
INTERVAL YEAR TO DAY××なし8
INTERVAL HOUR TO SECOND××なし6
MCHAR[n] (1)×英数字文字列n
MVARCHARn (32000)×-length整数4
-char英数字文字列n
NCHAR[n] (1)×日本語文字列n
NVARCHARn (16000)×-length整数4
-char日本語文字列n
REAL××実数7
SMALLFLT××実数7
SMALLINT××整数4
TIME××時刻8
VARCHARn (32000)×-length整数4
-char英数字文字列n
その他[p][s]なし
(凡例)
×:指定できない
-:設定されない
n:長さ
p:精度
s:スケール
[ ]:括弧内は省略できる
( ):括弧内は,ERwin/ERXでの記述が省略または数値以外の文字列の場合の仮定値
構成項目のサフィックス欄が「-」のタイプは,単項目として生成されるタイプです。「-」以外のタイプは,結合項目としてその構成項目が生成されるタイプです。
注※1
s=0の場合と,pが指定されてsが省略された場合は「整数」となります。
注※2
s=0の場合と,sが省略された場合は「-」となります。

表B-9 ERwin/ERXのタイプの変換規則C-2(HiRDB)

ERwin/ERXのデータベースタイプSEWB+/REPOSITORYの言語別タイプ
構成項目
サフィックス
COBOL又はOOCOBOLC又はC++SQLその他備考
CHARXcharCHAR※3 
CHARACTERXcharCHAR※3 
DATEXcharDATE※3 
DECPフリー定義1DEC※3 
DECIMALPフリー定義1DEC※3※4
DOUBLE PRECISIONDdoubleフリー定義2※3※5
FLOATDdoubleFLOAT※3 
INTBlongINT※3 
INTEGERBlongINT※3 
INTERVAL YEAR TO DAYPフリー定義1フリー定義2※3 
INTERVAL HOUR TO SECONDPフリー定義1フリー定義2※3 
MCHARXcharMCHAR※3 
MVARCHAR-length6BshortSMALLINT※3※4
-char6XcharMVARCHAR※3※5
NCHARNcharNCHAR※3 
NVARCHAR-length6BshortSMALLINT※3※4
-char6NcharNVARCHAR※3※5
REALDfloatフリー定義2※3 
SMALLFLTDfloatSMALLFLT※3 
SMALLINTBshortSMALLINT※3 
TIMEXcharTIME※3 
VARCHAR-length6BshortSMALLINT※3※4
-char6XcharVARCHAR※3※5
その他フリー定義1フリー定義1フリー定義2※3 
注※1
定義文字列は設定されません。
注※2
定義文字列にはERwin/ERXタイプが設定されます。
注※3
言語区分「帳票定義」,「Java」のタイプには,環境構築ユティリティで設定した分類区分に対応するタイプの初期値(デフォルトタイプ)が設定されます。言語別4~7のタイプはフリー定義となり,定義文字列は設定されません。
注※4
初期値に,カラムのデフォルト値の文字列長が設定されます。
注※5
初期値に,カラムのデフォルト値が設定されます。
注※6
環境構築ユティリティのタイプマッピングの設定で,サフィックスをカスタマイズできます。

(6) エンティティレポート形式フォーマット

ERwin/ERXのエンティティレポートに対応するCSV形式ファイルフォーマットについて説明します。

(a) ファイル内部の構成

エンティティレポート形式のファイル内部の構成を次に示します。

[図データ]

1行目にはヘッダを,2行目からは個々のデータ項目の定義情報を記述します。エンティティレポート形式では,結合関係を記述できます。ただし,結合項目を階層化して記述することはできません。

結合項目を1行で記述します。そのあとに続けて,その結合項目を構成する個々の構成項目を1行ずつ連続して記述します。構成項目は,次の結合項目を記述するまで,同じ結合項目と関連する構成項目と見なされます。結合項目と構成項目の区別は,テーブル名があるかどうかで判断されます。

(b) ヘッダ

ヘッダはERwin/ERXでレポートを出力した場合に付けられます。ヘッダの内容は任意ですが,ヘッダ行のカンマで区切られた列数は,定義情報と同じである必要があります。

(c) 定義情報

定義情報のフォーマットとエンティティレポートで定義する必要のある値と省略できる値を次の表に示します。エンティティレポート形式では,文字列の値はすべてクォーテーション(「"」または「'」)で囲まないで記述します。

表B-10 データ項目の定義情報の記述内容(エンティティレポート形式)

記述順記述する定義情報結合項目構成項目
1テーブル名
2エンティティ名
3属性名
4カラム名
5※1エンティティコメント
5※1エンティティ定義
6※2外部キー
(凡例)
○:必要な値
△:省略できる値
-:該当しない
注※1
どちらか一方を記述します。
注※2
属性レポートを同時入力する場合は,必ず記述します。