ひろゆき)Tweet論理モデル情報をRDBMSコメント欄に保存RDBMS上には物理モデルと対応するテーブル名・カラム名しかありません。Northwindデータベースをリバースした直後は、物理モデル(カラム名)も論理モデル(属性名)も同じシングルバイト情報です。RDBMSのテーブルやカラムにはコメント欄というものが用意されています。これをうまく利用することで、論理モデル情報(エンティティ名・属性名)もRDBMSに保存することができます。図5のようにER図上の物理モデル情報は、RDBMS上のテーブル名・カラム名に対比します。論理モデル情報をテーブルコメント・カラムコメント欄に対応させることもできるのです。この対比を行った状態で、OracleのSCOTTスキーマにフォワードしてみます。図5:論理モデル情報をコメント欄に対応付け図6はフォワード後のSCOTTスキーマのオブジェクトリストです。この画面を見ると、右端に表示されているテーブルコメント欄にエンティティ名がセットされていることが確認できます。図6:Oracleのテーブルコメント欄にエンティティ名をセット(画像をクリックすると別ウィンドウに拡大図を表示します)図7はこの中のテーブル[Employee]の定義情報を表示したもので、右端のカラムコメント欄に属性名がセットされています。このようにRDBMSのコメント欄に日本語名をセットしておけば、リバースした直後から「物理:シングルバイト」「論理:ダブルバイト」と混在した状態を作ることができるのです。図7:Oracleのカラムコメント欄に属性名をセット(画像をクリックすると別ウィンドウに拡大図を表示します)データ型を使い分けるかRDBMSは格納するデータの性質にあわせてデータ型を指定します。[受注日]という日付が入るカラムに日付型というデータ型を指定しておけば、「2006/02/30」といった誤った日付を格納しようとするとエラーにしてくれます。データベースは、ISO(国際標準化機構)とANSI(米国規約協会)で標準が制定されています。現在の最新版はSQL99標準と呼ばれているもので、各RDBMSベンダーは、その標準規約を自製品に実装しています。丸ごと採択しているわけではなく、自製品独自の考えを盛り込む形で準拠しているというのが実情です。データ型に関しても、RDBMSごとに実装の違いがあります。表1は、SQL99標準で定義しているデータ型と主要3データベースのデータ型を対比したものです。数値型を見ると、SQL99では格納サイズにより整数をint、smallintと使い分けたり、格納方法の違いにより真数をnumeric、decimalや浮動小数点をfloat、real、doubleなどのデータ型が定義されています。ServerやDB2は比較的表1に準拠した形で実装していますが、Oracleでは真数をnumber一本で勝負という方針です。文字型にしても、固定長のcharや可変長のvarchar、clobなどが用意されており、格納するデータ型の大きさによって使い分けすることができます。それぞれに対して、各国語文字対応のnchar、nvarchar、nclobもあります。2006年東証マザーズ、2014年東証第一部、2019年東証スタンダード上場。Browser」を開発。PM」など、独創的なアイデアの製品を次々とリリース。システム設計とドキュメント」を刊行。「日本のITの近代化」と「日本のITを世界に」の2つのテーマをライフワークに掲げている。Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。ITがお届けするポッドキャストです。