ホーム > データベーススペシャリスト試験 > 2013年
データベーススペシャリスト試験 2013年 午前2 問07
SQLにおけるドメインに関する記述のうち、適切なものはどれか。
ア:基底表を定義するには、ドメインの定義が必須である。
イ:ドメインの定義にはCREATE文、削除にはDROP文を用いる。(正解)
ウ:ドメインの定義は、それを参照する基底表内に複製される。
エ:ドメイン名は、データベースの中で一意である必要はない。
解説
SQLにおけるドメインについての解説
SQLにおける「ドメイン(domain)」とは、特定の属性が取りうる値の型や制約を定義したものです。これは、データベースのスキーマ設計において、属性の型や制約を再利用可能な形でまとめておくために利用されます。
選択肢ごとの解説
ア: 基底表を定義するには、ドメインの定義が必須である。
- 誤りです。
基底表(テーブル)の列は、必ずしもドメインを使って定義する必要はありません。通常、列のデータ型(例:INT
,VARCHAR(50)
など)を直接指定して定義します。
ドメインはあくまで「型と制約の定義の再利用」を促進するための機能であって、必須ではありません。
イ: ドメインの定義にはCREATE文、削除にはDROP文を用いる。
- 正しいです。
SQL標準において、ドメインはCREATE DOMAIN
文を使って作成します。
例:
CREATE DOMAIN email_domain AS VARCHAR(255) CHECK (VALUE LIKE '%_@_%._%');
また不要になったドメインは
例えば、
DROP DOMAIN
文で削除します。例えば、
DROP DOMAIN email_domain;
このため、「ドメインの定義にCREATE文、削除にDROP文を用いる」という記述は適切です。
ウ: ドメインの定義は、それを参照する基底表内に複製される。
- 誤りです。
ドメインは独立して定義され、その属性はテーブル内で参照されますが、定義内容がテーブルのスキーマに「複製」されるわけではありません。
テーブルは単にドメインを参照するだけであり、ドメインの変更はそれを参照するすべての列に反映されます。
エ: ドメイン名は、データベースの中で一意である必要はない。
- 誤りです。
ドメイン名は、同じデータベース内で一意である必要があります。
異なるドメインが同じ名前を持つことはできません。
まとめ
- ドメインは属性の型や制約の再利用を目的として定義される。
- ドメイン定義には
CREATE DOMAIN
、削除にはDROP DOMAIN
を用いる。 - ドメイン名はデータベース内で一意でなければならない。
- テーブルはドメインを参照するが、定義を複製するわけではない。
このことから、正しい選択肢は イ です。