はじめに
本記事では私が「苦手」だった概念データモデルの既出問題について記載したいと思います。
概要編→https://qiita.com/jun2/items/f80cc65f54fdf0521d3b
全体的な勉強方法→https://qiita.com/jun2/items/4e72688d2fbb356e9d9e
同じエンティティ間で複数の線
本記事の中で一番重要だと思います。
エンティティ
↓ ↓
エンティティ
こういった関係ですね。
初見ではそんなんありなの!?と驚いたものですが、見慣れると「あれね」と思えます。
スキーマで表すとこんな感じでしょうか?
エンティティA (伝票)
伝票ID(PK)
エンティティB (明細)
伝票ID(PK)、明細番号(PK)、商品、まとめ先伝票ID(FK)
ちょっと無理やり感がありますが、伝票ID同士のリレーションは多くの人はクリアできると思います。 商品ごとに他の伝票にまとめることができる。といった関係がある場合、エンティティAの伝票IDと エンティティBのまとめ先伝票IDにもリレーションがあることになります。
こういった同じエンティティ間で複数のリレーションがある関係というのは、少しいびつにも見えますが よくある問題ですので覚えておいた方がよいです。
明らかに線を結ばせたい配置
エンティティ エンティティ
エンティティ
こういった配置ですね。
何度も問題を解いているとたいていの場合
エンティティ エンティティ
↓ ↓
エンティティ
こうですね。
この場合は、エンティティ間の多対多を解消するためのエンティティであるか?も併せて確認すると正答率があがるでしょう。
綺麗に線が引けるようにある程度配慮されているということをここではお伝えしたいというところです。
文章の常套句
- 〜のうち〜を〜と呼ぶ、〜と〜を併せて〜と呼ぶ
サブタイプを表現するための言葉である
サブタイプが排他的である場合は、フラグや区分を持つことが多い。 - 〜と〜は競合しうる、共存する、どちらの属性も持つ可能性がある、〜かつ〜を禁じていない
サブタイプが排他的ではないことを表現しようとしている。 - 定量発注する
発注伝票などに個数などは入らない - ~が終わったら、~に〜を記録する
スキーマに記録対象の属性が入ることとなる - 〜で識別し
おおむね主キーを表現している
終わりに
そもそも苦手であるためこの程度しかお伝え出来ず・・・
ただこれだけでも知ってると知らないでは、時間効率も含め10点分くらいは価値があると信じております。
次でDBスペシャリストの記事は最後です。
DBスペシャリスト 前日~当日の過ごし方のススメ→https://qiita.com/jun2/items/cbdbf5ab53a81bf77f51