
❸
ある列の取りうる値の範囲を制限するための制約です。たとえば、「年齢」列につ
いてなら、「20 ~ 65 までの整数」や、「部署」列ならば「‘開発’、‘人事’、‘営業’ の
いずれかの文字列」といった具合です。CHECK 制約も一つのテーブルにつき何個で
も設定できます。なお、Snowflake のように CHECK 制約を使えない DB もあります。
テーブルについて最後に解説するポイントは、名前についてです。まず、テーブ
ルとテーブルの物理定義における列の名前に関するルールから話をしましょう。
1
これ以外の文字、たとえば日本語や$、#といった特殊文字を名前として使うこと
を許している DBMS もありますが、それは標準 SQL で定められたルールを破っている
独自拡張です。したがって、DBMS を変えたときにも使えるという保証がありません。
アンダーバーの代わりにハイフン(-)を使いたいと思う方もいるでしょうが、こ
れも標準 SQLで認められていないため、アンダーバーを使うようにしましょう。
なお、本書ではテーブルの名前や列名を日本語で表記していますが、これはあく
まで論理設計について語るうえで、日本語のほうがわかりやすいための措置です。
ので、
注意してください。