本日はスーパタイプについて書く。
おおまかなポイント(再掲)
- オブジェクト指向におけるスーパクラスとサブクラスのイメージ。複数のエンティティ(テーブル)に共通する要素を抽出して、より上位の抽象概念として整理する。
- 例えば「料理」をスーパタイプ、「単品」「単品立食」「コース」「セット」をサブタイプにする場合。「料理」はかなり上位の抽象概念だが、それ一つでテーブル管理するにはレストランでは困難だろう。なぜなら、例えば「コース」なら「どんな組み合わせで」の管理がいるが、「料理」テーブル1つだとこれは推移関数従属になるからだ。
- このようにスーパタイプとサブタイプは「現実世界の抽象概念を、業務の都合にあわせてもう少しわけたい場合」には非常に都合のよい考え方だとわかる。
基本の具体例
- ER図ではスーパタイプから1本直線が伸び、△で分岐してサブタイプにつながる。例えば「料理-△-単品、単品立食、コース、セット」
- 関係スキーマ(図)もあわせて用意する。例えば以下。スーパタイプを先に書き、1文字下げてサブタイプを書く。
- <関係スキーマの例>
- 料理(商品コード(PK)、①商品名、②価格、③提供区分)
- 単品(単品商品コード(PK))
- 単品立食(単品立食商品コード(PK))
- コース(コース商品コード(PK)、④コース名)
- セット(セット商品コード(PK)、⑤セット名)
- ルール1:主キーはスーパタイプ、サブタイプで同じ。(ただし、サブタイプを外部参照させたい時などにそなえ、上のように「違いがわかる名称」にすることもある)
- ルール2:スーパタイプの主キー以外の属性(列)は(書かれないが)サブタイプに継承(上記①~③)。なお、継承する属性をサブタイプ内で外部参照させたい時は[ ]で挟む。また、サブタイプは各々独自の属性を持てる(上記④、⑤)
- ルール3:スーパタイプはサブタイプを識別するためのキーを持つ(上記③)
その他の事例について
- たとえばスーパタイプをサブタイプAとサブタイプBに分ける時。「AかBのどちらか一方しかとり得ない」パターンを排他的サブタイプ、「AでもBでもとり得る」のを共存的サブタイプと言う。前者はスーパタイプから1本線が出て△でAとBに分岐する。後者はスーパタイプから2本線が出てそれぞれ△をまたぎAとBにつながる
- たとえばスーパタイプのうち、一部の要素のみ束ねるのを包含という。スーパタイプから1本線が出て△をまたぎCとつながる
- 複数のスーパタイプをもつサブタイプもある。その場合、サブタイプはどれか一つのスーパタイプと同じ主キーを持ち、その他のスーパタイプとは外部キーでつながる。
- 全く属性が同一だが、参照するインスタンスが異なるためあえて別々のサブタイプを作る場合もある。
考察
- 円安が進むなか、私たちの生活にも良くない影響が出ている。海外から購入するモノ・サービスが今までと比べ高くなるからだ。
- 円安不況の可能性も出てきている。実質実効レートが60付近と1970年代に近い数値。(「同じ商品を同じ価格で買える」よう調整する購買力平価の考え方なら、たとえばアメリカのビックマックは約5.9ドル、日本の販売価格は390円なので1ドル67円付近が適正)
- 最大のポイントは、この20年で給料が伸びていないこと。日本は平均年収約440万でほぼ横ばい、他国は国によって程度の差はあるが約2倍に伸びている。
- 日本は製造業中心で、円安による輸出の支えがないとやっていけない競争力になってしまった。高付加価値産業への転換がセオリーだ。
- 個人としても、例えば本業でベースとなる収入は維持しつつ、副業として自分の本当にしたいことを進め、「複数の選択肢」を持てるようにしておく必要がある。
- 自分の金融資産(土地、家、預金)や、それ以外の資産(つながり、スキル、ノウハウ)をどう有効活用するか、常に模索は必要であり、今の世界の動きも考慮しないといけない。
この次にしたいこと
- まず、論理設計におけるSTEP1-1「ER図の表記ルール」はいったん学習完了
- 次に、論理設計におけるSTEP1-2「関数従属、キー、正規化」について学ぶ。ここはテーブルの基本知識が適用しやすい。
- そのうえで、STEP1-3以降として午後2過去問題に取り組み、大まかでよいので解き方のイメージを掴む(抽象・基礎)。学習方針はテキストP15に記載あり。少しづつでもよいので読み進め知識を確認・定着させる。
参考書籍
- データベーススペシャリスト2022年版/三好康之/翔泳社 ※この記事は2章P217-P226を整理したもの
- NEWSPICKS 4/25「完全解説 円安について本当に知っておきたいこと」
コメント