インフラエンジニアは人間じゃない

インフラエンジニアの技術ブログになりたかった。

サブタイプとスーパータイプとは?違いは? データベーススペシャリスト試験(DB)対策

どうもインフラエンジニアのねるです!

18年度春季試験のデータベーススペシャリスト試験を受験予定です。

 

今回はタイトルの通り、

サブタイプとスーパータイプとは何か説明していきます。

 

サブタイプとスーパータイプとは

 データベース設計のモデル図作成時に必要な知識となります。

 例えば、テーブルの構成が以下のような構成だったとします。

 

 例:

 注文(注文番号、店舗コード、注文日時)

 注文明細(注文番号、注文明細番号、商品コード)

 

 この場合、注文テーブルと注文明細テーブルはスーパータイプサブタイプの関係になります。

 スーパータイプが注文テーブル、サブタイプが注文明細テーブルです。

 

 サブタイプとスーパータイプのリレーションシップ図は以下のようになります。

f:id:nell17world:20180209192937j:plain

 

 なんかいまいち標準化されていないのか、別の書き方をする場合もあるので、

 必要に応じて使い分けて下さい。

 

 スーパータイプには店舗情報や購入日時等の共通項目データとして入ります。

 サブタイプには商品情報等の各エンティティの差分がデータとして入ります。

 

 また、スーパータイプとサブタイプを紐づけるために、

 サブタイプにはスーパータイプの主キーが含まれることになります。

 


 

 データベーススペシャリスト試験の過去問題や予想問題で頻出しているので、

 サブタイプスーパータイプはしっかり押さえていきましょう。(自戒)

 問題としては、主キーが共有されているところがポイントとなりそうです。