連載 [第3回] :
即活用!ツールを活用したデータモデリング日本語名の是非とデータ型採用方針
2006年3月22日(水)
論理モデル情報をRDBMSコメント欄に保存
RDBMS上には物理モデルと対応するテーブル名・カラム名しかありません。だからNorthwindデータベースをリバースした直後は、物理モデル(カラム名)も論理モデル(属性名)も同じシングルバイト情報です。
しかし、RDBMSのテーブルやカラムにはコメント欄というものが用意されています。これをうまく利用することで、論理モデル情報(エンティティ名・属性名)もRDBMSに保存することができます。
図5のようにER図上の物理モデル情報は、RDBMS上のテーブル名・カラム名に対比します。さらに論理モデル情報をテーブルコメント・カラムコメント欄に対応させることもできるのです。この対比を行った状態で、OracleのSCOTTスキーマにフォワードしてみます。
図6はフォワード後のSCOTTスキーマのオブジェクトリストです。この画面を見ると、右端に表示されているテーブルコメント欄にエンティティ名がセットされていることが確認できます。
図7はこの中のテーブル[Employee]の定義情報を表示したもので、右端のカラムコメント欄に属性名がセットされています。このようにRDBMSのコメント欄に日本語名をセットしておけば、リバースした直後から「物理:シングルバイト」「論理:ダブルバイト」と混在した状態を作ることができるのです。
データ型を使い分けるか
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 |
例えば数値型の場合、SQL ServerやDB2は比較的表1に準拠した形で実装していますが、Oracleでは真数をnumber一本で勝負という方針です。
また、文字型にしても、固定長のcharや可変長のvarchar、clobなどが用意されており、格納するデータ型の大きさによって使い分けすることができます。それぞれに対して、各国語文字対応のnchar、nvarchar、nclobもあります。
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。