URL : https://www.zumuzack.com/zack/table-define-tool/
Last Updated : 2024/05/08
DBからテーブル情報を抽出して テーブル定義書 を自動生成します ( HTML版 / EXCEL版 )
生成される テーブル定義書 (HTML版) には、検索機能 や SQL(一括)生成、DDL生成、コード定義ポップアップ、インデックス / ビュー式 / 外部キー制約情報 / トリガー情報 / コード定義一覧 の表示 といった機能が装備されています
(Microsoft Winodws用アプリケーションです)
ダウンロードした DatabaseDefine.zip を展開(解凍)します
(./DatabaseDefine/ というフォルダが生成されます)
./DatabaseDefine/ フォルダを削除します
※レジストリ操作はしていないので、フォルダ削除のみになります
起動する
./DatabaseDefine/bin/フォルダ内の DatabaseDefine.exe を起動します
動作設定する
「動作設定」ボタンより Settings 画面を開き、DB接続情報 / 出力タイプ / オプション 等の内容を設定します
(Settings)
※ここでは「Output」欄の「HTML」チェックを付けた (HTML版テーブル定義書生成の) 手順とします
テーブル定義書を生成する
「一括(①+②)」ボタンよりコンテンツ(テーブル定義書)を生成します
テーブル定義書を起動する
「HTML定義書参照」ボタンよりでコンテンツを参照(利用)します
↓ ※ブラウザが起動します
データ抽出 ① ボタン
データベース (or ER図ファイル) アクセスしてテーブル構造の情報を抽出します
定義書生成 ② ボタン
テーブル定義書を生成します。補助情報 (項目名やコード定義、JOIN情報など) のみの修正を反映させたい場合は、このボタンの実行で済みます。
※./output/backup/wwwdir/
にテーブル定義書のバックアップが行われます
一括(①+②) ボタン
①ボタンと②ボタンの処理を連続で行うボタンです。
※./output/backup/wwwdir/
にテーブル定義書のバックアップが行われます
Excel定義書チェック ボタン
入力DBとして指定したExcel定義書ファイルをチェックします (入力DBタイプに「Excel定義書」を選択すると使用できるようになります)
※物理DBが構築されていない「設計フェーズ」などで、手動設計したExcelテーブル定義書のチェック作業に利用することを想定しています
※以下チェック結果イメージ (入力Excel定義書ファイルに「ERRWARN」シートが追加された形で出力されます)
※チェック対象にできるExcel定義書は 当ツールオリジナルフォーマット と A5M2フォーマット になります
当ツール オリジナルフォーマット
A5M2フォーマット
DDL生成 ボタン
対象テーブルの DDLを一括生成 してテキストファイルに出力します
予め、データは抽出(①ボタン)しておく必要があります。
メイン画面の"動作設定"ボタンで開きます
ブラウザタイトル
HTML Title
Version
Label入力欄
Timestamp
Dateチェック 現在日がラベルの後ろに付加されます
Timestampチェック 日時情報がラベルの後ろに付加されます
Display欄 タイムスタンプなどを付加した場合の最終的なラベルイメージが表示されます
バージョン表示イメージ
.\DatabaseDefine\output\backup\
です。メイン画面の「バックアップフォルダ」ボタンよりアクセスできます。T0001,T0002,*_TEMP,*_TEST,*_WK
メイン画面の"ユーティリティ"ボタンで開きます
テンプレートExcel(補助用)ボタン
空の DatabaseDefineSubInfo.xlsx を生成します (同名ファイルが存在した場合はバックアップされます)
テンプレートExcel(取込用)ボタン
空の DatabaseDefine_テンプレートA4横/A4縦.xlsx を生成します (同名ファイルが存在した場合はバックアップされます)
※「Class」で種別を選択します
補助情報Excel整形ボタン
DatabaseDefineSubInfo.xlsx ファイルの同一データ(重複行)を排除、並び替えをして
DatabaseDefineSubInfo.xlsx を作りなおします (元の DatabaseDefineSubInfo.xlsx はバックアップされます)
※table.csvシートは重複行排除のみ。このシートの順番が生成後コンテンツのテーブル一覧の並び順になるので、意味のあるテーブル順(例えば機能別のテーブル順にするなど)にしている状態は崩されません。
CSV→Excel生成ボタン
テキストエディタなどで手動作成したCSVを DatabaseDefineSubInfo.xlsx に取り込む機能になります。ボタンをクリックするとフォルダ選択ダイアログが表示されるので、補助情報CSVが保存されているフォルダを選択することで、./bin/excel/DatabaseDefineSubInfo.xlsx に取り込まれます (元の DatabaseDefineSubInfo.xlsx はバックアップされます)
補助情報を設定するためのファイルになります
メイン画面「Settings」欄の「補助情報設定」ボタンでこのExcelが開かれます
設定したら保存して閉じます (このExcelを開いた状態で実行系ボタンをクリックするとエラーになります)
(イメージ)
補助情報は、ExcelがインストールされたPCであれば ./excel/DatabaseDefineSubInfo.xlsx に各設定を保存しますが ExcelがインストールされていないPCの場合はテキストエディタなどで、直接CSVファイルを編集することになります(./bin/csv/)。
※エディタなどで手動作成する場合は、キャラクタコードにご注意ください。~.csv は UTF-8 になります。
※ExcelがインストールされているPCでは、直接CSV編集しても DatabaseDefineSubInfo.xlsx の内容で上書きされてしまいますので、Excelインストール済PCでのcsv直接編集はしないようにしてください。
概要
対象テーブルを設定するシートになります (未設定の場合、指定したユーザーあるいはスキーマ/DB上に存在する全てのテーブルが対象となります。また、table.csv シートへ反映されます。)
カラム | 内容 | 備考 |
---|---|---|
① | テーブルID. | |
② | テーブル名 | |
③ | 説明文 | |
④ | タグ | 種別(トラン/マスタ)などのタグを記載 |
DatabaseDefineSubInfo.xlsx 【table.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
M0001,組織マスタ,組織情報を保存するマスタテーブル,マスタ
M0002,社員マスタ,,マスタ
M0003,メーカーマスタ,,マスタ
M0004,商品マスタ,,マスタ
M0005,ユーザーマスタ,,マスタ
T0001,注文テーブル,,トランザクション
T0002,注文明細テーブル,,トランザクション
W0001,プリンタワーク,プリントデータ用テーブル,ワーク
P0001,ソートテンポラリ,ソート用テンポラリテーブル,テンポラリ
概要
コード定義を設定するシートになります
col-code.csv / table-col-code.csv で適用する項目との紐づけを行うことで画面にポップアップされることになります。
カラム | 内容 | 備考 |
---|---|---|
① | コードID. | |
② | コード名 | |
③ | コード値 | |
④ | コード内容 |
DatabaseDefineSubInfo.xlsx 【code.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
C001,注文ステータス,01,受付
C001,注文ステータス,02,確定
C001,注文ステータス,03,出荷済
C001,注文ステータス,04,受取済
C002,役職種別,1,社長
C002,役職種別,2,部長
C002,役職種別,3,社員
C002,役職種別,4,準社員
C003,性別,1,男性
C003,性別,2,女性
C003,性別,3,不明
C004,削除フラグ,0,未削除
C004,削除フラグ,1,削除済
概要
テーブル項目名を設定するシートになります
カラム | 内容 | 備考 |
---|---|---|
① | 項目ID. | |
② | 項目名 | |
③ | 項目説明文 |
DatabaseDefineSubInfo.xlsx 【col.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
GOODS_CD,商品番号,商品を一意に表す番号
CRE_REC,登録日,この登録日項目は、汎用的な項目です
ORDER_NO,注文番号,この注文番号項目は、汎用的な項目です
ORDER_STATUS,注文ステータス,この注文ステータス項目は、汎用的な項目です
概要
コード定義と項目との紐付けを設定するシートになります
カラム | 内容 | 備考 |
---|---|---|
① | 項目ID. | |
② | コードID. | code.csv に設定してあるコードID.を指定 |
DatabaseDefineSubInfo.xlsx 【col-code.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
ORDER_STATUS,C001
POST_CD,C002
SEX,C003
DEL_FLG,C004
※ver.5.5.0 より1つの項目(Col Id.)に複数のコード定義(Code Id.)を紐づけることができるようになりました
DatabaseDefineSubInfo.xlsx 【col-code.csv】シートイメージ
コンテンツイメージ
概要
テーブル固有の項目を設定するシートになります
col.csv が汎用的に項目設定をするのに対し、table-col.csv はテーブル固有の項目設定します
カラム | 内容 | 備考 |
---|---|---|
① | テーブルID. | |
② | 項目ID. | |
③ | 項目名 | |
④ | 項目説明文 |
DatabaseDefineSubInfo.xlsx 【table-col.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
T0001.STATUS,契約ステータス,契約の状態
T0002.STATUS,解約ステータス,解約の状態
T0002.ORDER_NO,注文番号(table-col.csv),この注文番号はT0002専用の項目です(table-col.csvで設定)
※CSVは「①.②,③,④」のフォーマットになります(①と②をピリオド"."でつなぎます)
概要
コード値とテーブル固有の項目とを紐付けを設定するシートになります
カラム | 内容 | 備考 |
---|---|---|
① | テーブルID. | |
② | 項目ID. | |
③ | コードID. | code.csv に設定してあるコードID.を指定 |
DatabaseDefineSubInfo.xlsx 【table-col-code.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
T0001.STATUS,C010
T0002.STATUS,C020
M0002.DEL_FLG,C006
※CSVは「①.②,③」のフォーマットになります(①と②をピリオド"."でつなぎます) ※ver.5.5.0 より1つの項目(Col Id.)に複数のコード定義(Code Id.)を紐づけることができるようになりました
概要
外部Join情報を設定するシートになります(項目ID.のみでの紐付け)
カラム | 内容 | 備考 |
---|---|---|
① | 項目ID. | |
② | テーブルID. | table.csv に設定してあるJOIN先のテーブルID.を指定 |
DatabaseDefineSubInfo.xlsx 【join-col.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
CRE_EMP_CD,M0002
UPD_EMP_CD,M0002
概要
外部Join情報を設定するシートになります
カラム | 内容 | 備考 |
---|---|---|
① | テーブルID. | |
② | 項目ID. | |
③ | テーブルID. | table.csv に設定してあるJOIN先のテーブルID.を指定 |
DatabaseDefineSubInfo.xlsx 【join-table-col.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
M0002.ORG_CD,M0001
M0004.MAKER_CD,M0003
T0001.USER_ID,M0005
T0002.ORDER_NO,T0001
T0002.GOODS_CD,M0004
※CSVは「①.②,③」のフォーマットになります(①と②をピリオド"."でつなぎます)
予約語設定
ファイルに登録した予約語はビュー式やトリガーソースで強調文字となります。
./bin/sql_reserved_words.txt
※ファイルは削除してプログラムを再起動すると復活します。ファイルを空にすると強調されなくなります。
※アプリケーションで生成されるフォルダ/ファイルも記載しています
./DatabaseDefine/
bin/
a5er/ ※A5ER図ファイル保存場所としてご利用ください
csv/ ※Excelなしの場合のみテキストエディタで編集
code.csv
col.csv
col-code.csv
join-col.csv
join-table-col.csv
table.csv
table-col.csv
table-col-code.csv
excel/
DatabaseDefineSubInfo.xlsx ※補助設定情報ファイル★
pic/ ※ロゴ画像ファイル保存場所としてご利用ください
sshauth/ ※SSHトンネル用鍵ファイル保存場所としてご利用ください
DatabaseDefine.exe ※メインプログラム(起動プログラム)
DatabaseDefine.exe.config
DatabaseDefine.pdb
DatabaseDefine.xml
HtmlAgilityPack.dll
HtmlAgilityPack.pdb
HtmlAgilityPack.xml
Microsoft.Bcl.AsyncInterfaces.dll
Microsoft.Bcl.AsyncInterfaces.xml
Microsoft.Bcl.HashCode.dll
Microsoft.Bcl.HashCode.xml
Microsoft.Extensions.Logging.Abstractions.dll
Microsoft.Extensions.Logging.Abstractions.xml
MySqlConnector.dll
MySqlConnector.xml
Npgsql.dll
Npgsql.xml
Oracle.ManagedDataAccess.dll ※Oracleサイトよりダウンロード
Renci.SshNet.dll
Renci.SshNet.xml
sql_reserved_words.txt ※記載した予約語はコンテンツ上で強調表示されます
System.Buffers.dll
System.Buffers.xml
System.Collections.Immutable.dll
System.Collections.Immutable.xml
System.Diagnostics.DiagnosticSource.dll
System.Diagnostics.DiagnosticSource.xml
System.IO.Packaging.dll
System.IO.Packaging.xml
System.Memory.dll
System.Memory.xml
System.Numerics.Vectors.dll
System.Numerics.Vectors.xml
System.Runtime.CompilerServices.Unsafe.dll
System.Runtime.CompilerServices.Unsafe.xml
System.Text.Encodings.Web.dll
System.Text.Encodings.Web.xml
System.Text.Json.dll
System.Text.Json.xml
System.Threading.Channels.dll
System.Threading.Channels.xml
System.Threading.Tasks.Extensions.dll
System.Threading.Tasks.Extensions.xml
System.ValueTuple.dll
System.ValueTuple.xml
output/
backup/ ※バックアップフォルダ
databasedefine/
databasedefinesubinfo/
wwwdir/
commonxml/
commoninfo.xml
ddl/ ※DDLファイル出力フォルダ★
excel/
DatabaseDefine.xlsx ※EXCELテーブル定義書★
foreignkeyxml/
indexxml/
log/ ※ログ出力フォルダ
tablexml/
triggerxml/
viewxml/
wwwdir/ ※コンテンツフォルダ(HTMLテーブル定義書)
dbdef/
css/
define.css
perfect-scrollbar.css
entity/
entity_fx/
entity_idx/
entity_trig/
entity_view/
images/
arrow1.png
arrow2.png
arrows.png
checked.png
favicon.ico
notchecked.png
js/
common.js
data.js
database.js
disptitle.js
environment.js
jquery.min.js
pagetitle.js
perfect-scrollbar.min.js
realtimesearch.js
sql_reserved.js
sqlstatement.js
sqlstatement_parts.js
tables.js
other/
CodeInfo.html
dummy.html
index.html ※HTMLテーブル定義書★
manual/
images/
manual.html ※当ファイル
manual_cont.html
licenses.txt
readme.txt
Ver.5.0.0 から「Oracle.ManagedDataAccess.dll」(Oracleより無料提供)を利用する仕様となりました。
Oracleサイト (リンク) よりダウンロードして bin/
に配置してください。
ダウンロードにはOracleアカウントを登録する必要があります
ODAC XCopyパッケージ の "ODAC 21c (32-bit and 64-bit)" or "ODAC 19c (32-bit and 64-bit)" 内で新しいバージョンのzipファイルをダウンロードします
zip内階層: /odpm/odp.net/managed/common/Oracle.ManagedDataAccess.dll
Oracleアクセス時に
「ファイルまたはアセンブリ '.\Oracle.ManagedDataAccess.dll'、またはその依存関係の 1 つが読み込めませんでした。操作はサポートされません。」
のエラーがでるかもしれませんが、以下のファイルプロパティを「許可する」 チェックあり にすることで解消されると思われます。(上記メッセージではなく「接続に失敗しました」のエラーかもしれません」)
bin/sql_reserved_words.txt
ファイルに登録することで指定可能に。