Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データベース09: 実体関連モデル上の一貫性制約

データベース09: 実体関連モデル上の一貫性制約

1. 参加制約
2. 多重度制約
3. キー制約

講義ノートURL
https://dbnote.hontolab.org/content/er-model/02.html

Y. Yamamoto

June 17, 2024
Tweet

More Decks by Y. Yamamoto

Other Decks in Technology

Transcript

  1. Q1: 復習 Q. Orange Musicの「ユーザ」は「ユーザID」「氏名」「性別」 「誕生日」「電話番号」をもつ. Orange Musicの 「アーティスト」は「アーティストID」「アーティスト名」をもつ. Orange

    Musicの「楽曲」は「楽曲ID」「楽曲名」「ジャンル」 「長さ」をもつ. 「アーティスト」は作成した「楽曲」をOrange Musicに「公開」する.「公開」には「公開日」が 記録される. Orange Musicの「ユーザ」は「プレイリスト」を 「作成」することができる. 「プレイリスト」は「プレイリストID」 「プレイリスト名」「公開日」をもつ. 作成された「プレイリス ト」には「楽曲」を「追加」することができる. 「追加」には楽曲 がプレイリストに「追加された日」が記録される.「ユーザ」は 別の「ユーザ」を「フォロー」する. 「フォロー」は「フォロー日」 が記録される. この状況を実体関連図で表現せよ.
  2. 実体型 商品ID = P0001 商品名 = はーいお茶 価格 = 150

    商品ID = P0002 商品名 = PONオレンジ 価格 = 180 商品 商品ID 商品名 価格
  3. 関連型 A 商品X ユーザ名「A」のユーザは 商品ID「PXXX01」の商品を 2023年9⽉25⽇に購⼊希望登録 B 商品Y ユーザ名「B」のユーザは 商品ID「PYYY01」の商品を

    2023年7⽉15⽇に購⼊希望登録 商品 商品ID 商品名 価格 発売⽇ ユーザ ユーザ名 ⽒名 email 住所 購⼊希望 登録⽇
  4. 実体関連図における関連型の解釈 商品 ユーザ 購⼊希望 ユーザ 購⼊希望 商品 P1 P2 P3

    P4 P5 U1 U2 U3 U4 U1,P1 U2,P2 U2,P3 U3,P2 U1,P4 U4,P4 U4,P1 実体の組み合わせによって関連が表現される
  5. 実体関連図における関連型の解釈 商品 ユーザ 購⼊希望 ユーザ 購⼊希望 商品 P1 P2 P3

    P4 P5 U1 U2 U3 U4 U1,P1 U2,P2 U2,P3 U3,P2 U1,P4 U4,P4 U4,P1 「購⼊希望」 関連 とつながっていない「商品」実体がある
  6. 関連につながっていない実体があることが許されないケース 必修科⽬ 学⽣ 履修 学⽣ 履修 必修科⽬ M1 M2 M3

    M4 M5 S1 S2 S3 S4 S1,M1 S2,M2 S2,M3 S3,M2 S1,M4 S4,M4 S4,M5 1名以上から 履修される必要あり
  7. 多重度制約 関連型を通じて、ある実体が他の実体と 何個つながりを持てるかを定める制約 商品 ユーザ 購⼊希望 製造 メーカー ユーザ 商品

    P1 P2 P3 P4 U1 U2 U3 U4 U1,P1 U2,P2 U2,P3 U3,P2 U1,P3 購⼊希望 ユーザは1つ以上の複数商品 を購⼊希望登録ができる. 商品は1名以上の複数ユーザ から購⼊希望登録される.
  8. 多重度制約 関連型を通じて、ある実体が他の実体と 何個つながりを持てるかを定める制約 商品 ユーザ 購⼊希望 製造 メーカー 商品 P1

    P2 P3 P4 製造 P1,A社 P2,A社 P3,A社 P4,B社 メーカー A社 B社 商品は必ず1社のメーカー によって製造される. メーカーは1つ以上の 複数の商品を製造する.
  9. 実体関連図における多重度制約の表現 多対多関連 多対1関連 1対1関連 ユーザ 購⼊希望 商品 商品 製造 メーカー

    国 ⾸都 都市 両⽅向に⽮印なし 「1」に向けて⽮印 両⽅向に⽮印 多対1は⽮印の⽅向に注意!
  10. 多重度制約を考慮した実体関連図の例 商品 商品ID 商品名 価格 発売⽇ ユーザ ユーザ名 ⽒名 email

    住所 購⼊希望 登録⽇ 製造 メーカー 企業名 email TEL ショッピングサイトにおける「ユーザが購⼊希望の商品」 「商品の製造メーカー」の情報の管理
  11. 案2 ユーザ ユーザ名 ⽒名 email 住所 同居 家族 ⽒名 続柄

    家族ID 家族は「ユーザ」のおまけなのにわざわざIDで管理する? 「ユーザ」が退会すれば 家族情報が使われることもなくなる
  12. 案1を⾒直す ユーザ ユーザ名 ⽒名 email 住所 同居 家族 ⽒名 続柄

    ユーザ名と⽒名を組み合わせれば「家族」を⼀意に特定できる
  13. 弱実体と弱関連 ユーザ ユーザ名 ⽒名 email 住所 同居 家族 ⽒名 続柄

    弱関連 (太字ひし形) 弱実体 (太字⻑⽅形) 部分キー (下線点線) - ⾃分⾃⾝の属性だけでは主キーを構成できない実体集合 - 弱実体型は太字⻑⽅形で記す - 関連する実体(所有実体)の主キーとセットにして弱実体 特定のために使う属性を部分キーと呼ぶ 弱実体集合 実体と弱実体をつなげる関連(太字ひし形で記す) 弱関連集合 弱実体は所有実体がないと存在できない弱い存在
  14. 回 実施日 トピック 1 04/15 ガイダンス:データベースを使わない世界 2 04/22 データベースの概念 3

    04/29(祝) 関係データモデル 4 05/13 SQL (1/3) 5 05/20 SQL (2/3) 6 05/27 SQL (3/3) 7 06/03 SQL演習 – レポート課題1 8 06/10 実体関連モデル (1/3) 9 06/17 実体関連モデル (2/3) 10 06/24 実体関連モデル (3/3) 11 07/01 正規化 (1/2) 12 07/08 正規化 (2/2) 13 07/15(祝) データベース設計演習 – レポート課題2 14 07/22 索引付け 15 07/29 NoSQL 16 08/05 期末試験 今後の予定 38