TOP設計・移行・活用> 論理モデル情報をRDBMSコメント欄に保存
実践!モデリングツール
即活用!ツールを活用したデータモデリング

第3回:日本語名の是非とデータ型採用方針
著者:システムインテグレータ  梅田 弘之   2006/3/22
前のページ  1  2  3  4  次のページ
論理モデル情報をRDBMSコメント欄に保存

   RDBMS上には物理モデルと対応するテーブル名・カラム名しかありません。だからNorthwindデータベースをリバースした直後は、物理モデル(カラム名)も論理モデル(属性名)も同じシングルバイト情報です。

   しかし、RDBMSのテーブルやカラムにはコメント欄というものが用意されています。これをうまく利用することで、論理モデル情報(エンティティ名・属性名)もRDBMSに保存することができます。

   図5のようにER図上の物理モデル情報は、RDBMS上のテーブル名・カラム名に対比します。さらに論理モデル情報をテーブルコメント・カラムコメント欄に対応させることもできるのです。この対比を行った状態で、OracleのSCOTTスキーマにフォワードしてみます。

論理モデル情報をコメント欄に対応付け
図5:論理モデル情報をコメント欄に対応付け

   図6はフォワード後のSCOTTスキーマのオブジェクトリストです。この画面を見ると、右端に表示されているテーブルコメント欄にエンティティ名がセットされていることが確認できます。

Oracleのテーブルコメント欄にエンティティ名をセット
図6:Oracleのテーブルコメント欄にエンティティ名をセット
(画像をクリックすると別ウィンドウに拡大図を表示します)

   図7はこの中のテーブル[Employee]の定義情報を表示したもので、右端のカラムコメント欄に属性名がセットされています。このようにRDBMSのコメント欄に日本語名をセットしておけば、リバースした直後から「物理:シングルバイト」「論理:ダブルバイト」と混在した状態を作ることができるのです。

Oracleのカラムコメント欄に属性名をセット
図7:Oracleのカラムコメント欄に属性名をセット
(画像をクリックすると別ウィンドウに拡大図を表示します)


データ型を使い分けるか

   RDBMSは格納するデータの性質にあわせてデータ型を指定します。例えば、[受注日]という日付が入るカラムに日付型というデータ型を指定しておけば、「2006/02/30」といった誤った日付を格納しようとするとエラーにしてくれます。

   データベースは、ISO(国際標準化機構)とANSI(米国規約協会)で標準が制定されています。現在の最新版はSQL99標準と呼ばれているもので、各RDBMSベンダーは、その標準規約を自製品に実装しています。ただし、必ずしも丸ごと採択しているわけではなく、自製品独自の考えを盛り込む形で準拠しているというのが実情です。

   データ型に関しても、RDBMSごとに実装の違いがあります。表1は、SQL99標準で定義しているデータ型と主要3データベースのデータ型を対比したものです。例えば、数値型を見ると、SQL99では格納サイズにより整数をint、smallintと使い分けたり、格納方法の違いにより真数をnumeric、decimalや浮動小数点をfloat、real、doubleなどのデータ型が定義されています。

データ型 SQL99標準 Oracle SQL Server DB2
数値型 int、smallint、
numeric、decimal、
float、real、double

number int、smallint、
tinyint、bigint、
numeric、decimal、
float、real、
money、smallmoney
int、smallint、
bigint、
decimal、
float、real、double

文字型 char、varchar、
nchar、nvarchar、
clob、nclob
char、varchar2、
nchar、nvarchar2、
clob、nclob、long
char、varchar、
nchar、nvarchar、
text、ntext
char、varchar、
longvarchar、
clob、dbclob、long
日付型 date、time、
timestamp
date、
timestamp
datetime、
timestamp
date、time、
timestamp
バイナリ bit、bit varying、
boolean
bolb
raw、long raw、
blob、bfile
binary、varbinary、
bit、
image
graphic、
vargraphic、
blob

表1:SQL99標準と主要RDBMSのデータ型

   例えば数値型の場合、SQL ServerやDB2は比較的表1に準拠した形で実装していますが、Oracleでは真数をnumber一本で勝負という方針です。

   また、文字型にしても、固定長のcharや可変長のvarchar、clobなどが用意されており、格納するデータ型の大きさによって使い分けすることができます。それぞれに対して、各国語文字対応のnchar、nvarchar、nclobもあります。

前のページ  1  2  3  4  次のページ


システムインテグレータ  梅田 弘之
著者プロフィール
株式会社システムインテグレータ  梅田 弘之
東芝、住商情報システムを経て1995年にシステムインテグレータ社を設立。 常駐・派遣主体の労働集約的な日本のソフトウェア業の中で、創造性にこだわってパッケージビジネスを行っている。 国際競争力のない日本のIT産業が、ここから巻き返しを図るための切り札は「プロジェクト管理」だと信じ、実践的なプロジェクト管理手法「PYRAMID」を自社開発している。


INDEX
第3回:日本語名の是非とデータ型採用方針
  データベースのテーブル設計
  物理モデルをシングルバイト、論理モデルをダブルバイトに
論理モデル情報をRDBMSコメント欄に保存
  使用するデータ型を統一する