リレーショナルモデルを実践するには、ドメイン(≒データ型)を如何に正しく設計するかということが極めて重要になる。しかしながら、ドメインをどう設計すべきかという議論はあまりされていないように思う。その結果、ドメインについての理解はあまり進まず、データベース設計に失敗しているパターンが多いように思われる。 というわけで今日のテーマはドメインである。 集合を定義するリレーショナルモデルにおけるデータ型とは何か。リレーショナルモデルを実践するにはまずその点から理解する必要がある。 リレーショナルモデルでは、データ型はドメインと呼ばれる。ドメインとは、その属性(≒カラム)に入るべき値はどういったものかを集合として定義したものだ。言い換えると、属性値とはある集合の要素の一つであると言える。従って、ドメインを設計する際には、SQLで言うところのデータ型、つまりINTやCHARといったものだけでなく、その
![リレーショナルモデルのドメイン設計についての議論](https://cdn-ak-scissors.b.st-hatena.com/image/square/1946584c1109fd113f49a62abe33b19ded268448/height=288;version=1;width=512/https%3A%2F%2Flh6.googleusercontent.com%2F-Om_IligLd5c%2FTTT9MTGM31I%2FAAAAAAAAAfw%2FABg9hRZifTo%2Fs800%2Flogo.png)