今進めているプロジェクトでは、業務システムの設計を担当しております。
システムの設計といっても幅広いわけですが、要件定義から外部設計、データベースの概念設計とか、割と上流工程まではお手の物なのですが、そこからさらに進むとチンプンカンプンです。
な状態なのですが、今回データベースの論理設計まで自分でやることになっていまして、もちろん初チャレンジなわけなのですが、当然、ある程度しっかりと勉強しないと着手するのもままならないといった状態。
その状態のまま、なかなかガッツリ時間を取れるタイミングがなく(言い訳)、かなり長期間ベンディングしちゃっていましたが、どうにもこうにも自分が動かないとプロジェクトが進まない局面に差し掛かってきましたので(というのと、物理的に時間の余裕も出てきまして)、とりあえず前に進めねばと、ER図の書き方を調べました。初歩の初歩。
ということで、Part4 初めてのデータベース設計の内容のうち、ER図についてのルールや基礎知識について、忘れないようにまとめます。
以下、もっとも普及しているらしいIDEF1XというものでER図を書くルール。
ER図の基本的な考え方
- モデリングする対象をエンティティ(実態)と、エンティティ間のリレーションシップ(関連)で表すということ
たとえば具体的には
- 「A」というエンティティは、属性として、「い」、「ろ」、「は」を持つ
- これらの属性のうち、「A」を特定できる属性を主キーと呼ぶ
- 主キー以外の属性を非キーと呼ぶ
ER図の書き方
- ER図では、エンティティを四角形で表し、主キーを四角形の上段に、非キーを下段に書く
FOREIGN KEY
- あるエンティティの属性のうち、他のエンティティの主キーになっているものを、外部キーと呼び、属性の後ろにFK(foreign key)を表示する
リレーションシップについて
- 特定のエンティティとエンティティが、1対nの関係になっている場合、四角を線で結び、n側のエンティティの線に黒丸をつける
- また、あるエンティティ「A」に外部キーが存在する場合、その外部キーを主keyとするエンティティ「B」を親エンティティ、エンティティAを子エンティティと呼ぶ
リレーションシップの分岐について
- 黒丸の横に指定がない場合:1対0以上(0人があり得る)
- 黒丸の横にPがある場合:1対1以上(常に1以上)
- 黒丸の横にZがある場合:1対0または1(0もしくは1)
- 黒丸の横に数字がある場合:1対nの「n」が決まっている
- ひし形:0または1対n?の場合の0を表す(非依存関係に対してのみ指定できる)
リレーションシップとエンティティの種類
- 四角の角が丸くなっているもの:従属エンティティ(依存エンティティ)と呼ぶ)
その他のルール、呼び名
- 従属エンティティは、親エンティティなしでは存在できない
- ほかのエンティティに依存しないエンティティを独立エンティティと呼ぶ
- 立エンティティに対するリレーションシップは破線で表示し、非依存リレーションシップと呼ぶ
エンンティティの種類
- エンティティは実体という意味ですがもう少し具体的に言えば二種類に分けられる
- リソース・エンティティ(業務を遂行するために必要な人,物,お金などのリソース)
- イベント・エンティティ(企業活動を構成するアクティビティです。業務フローを描いたときに現れる処理単位や,システム概念図に現れる)
以上、簡単にまとめでした。
ここからの具体的な書き方や詳細は以下をご参照ください。
2011.2.25 追記 以下、その後勉強してみた関連するお勧め書籍のご紹介です。ご参考までに。
コメントする