今回は概念データモデルの作成として
ER図,多重度(カーディナリティー)の部分を解説
1対多とか多対多とか
そのあたりのややこしい部分も
あるコツを使えば,簡単に覚えることができます。
そのほか主キーと外部キーの見極め方の
コツも公開しています。
ER図とは?
ER図とはエンティティ間の関連を表す図。
エンティティとはデータ属性の集まり。
データ属性とは項目の事。
関連とはリレーションの事。
つまり,表と表のつながりを
矢印などでつないで表現する図の事。
多重度(カーディナリティー)
1対1
1対多
多対多
がある。
学生 --> 講義
などと,多の方を矢印を付けて表記する。
表記の方法は何種類かある。
多対多
学生<ー->講義
1つの学生にたいして
複数の講義が対応する
1つの講義に対して
複数の学生が対応する
講義は複数の学生が受講している
学生は様々な講義を受講している
1対多
学生ーー>講義
「多」とは相手から見てどう見えるかを示している。
この場合,1つの学生に対して複数の講義が対応する
という意味となる。
講義はマンツーマン形式のように
学生専用のものを用意する
学生は様々な講義を受講できる
多対1
学生<--講義
講義は複数の学生が受講している
学生は1つしか講義を受講することができない
1対1
学生ーー講義
学生Noと講義Noを同一の位置づけを表す
スーパータイプ
UMLクラス図での
スーパークラス
サブクラスと同じ関係を表現する
スーパークラス
共通するデータ項目
メソッドを定義する
サブクラス
スーパークラスとの
差だけを定義する
共通したデータをスーパークラスに定義
差分をサブクラスに書く
連関エンティティ
連関エンティティとは,多対多のエンティティを
1対多のエンティティに変換すること。
データベースの世界では多対多のエンティティは
実装できない構造になっている。
多対多は必ず2つの1対多の関係に変形させる必要がある。
やり方
新しいエンティティを作って
そのエンティティにお互いのキーを持ち寄る。
学生<-->講義
こんな感じの多対多は実装できないので
新しいエンティティ「学生講義」を作成する。
学生ー>学生講義<ー講義
矢印は,新しいエンティティに向くようにする。
一人の学生に対して講義が多,
一つの講義に対して学生が多,なので
学生講義は両方からの「多」を受け持つ。
外部キー
外部キーとは,他のエンティティのキーを
属性として保持している事。
受注明細(受注No,商品No,数量)
商品(商品No,商品名)
このようなエンティティがある場合
受注明細の商品Noは商品表のキーなため,
受注明細の商品Noは「外部キー」となる。
エンティティの多重度を定めると
おのずとこの外部キーは決まる。
ポイントは,1対多の場合,
1の側が主キーであり,
多の側が外部キーとなる。
受注明細<--商品
一つの商品は多くの受注明細に存在する
ため,商品Noに関しては
商品表が主キーで
受注明細では外部キーとなる。
SQLやデータベースについてもっと学びたい方は次の記事でおすすめの書籍を紹介しています↓
<< 1 2 3 4 5 6 7 8 9 10 11 12 >>
■非公開コース「C#14新機能」プレゼント:
非公開コース「C#14新機能」(80分)をご覧になりたい方は
こちらからURLとパスワードを発行していますので、ご覧になってみてください。
非公開コース「C#14新機能」を観る
A01_はじめに
B01_メッセージを出すレイアウトの作成
B02_pタグを使ったメッセージ表示
B03_ポップアップメッセージを表示する方法
B04_問い合わせメッセージを表示する方法
B05_ユーザーの入力を受けるメッセージ
B06_インラインJavaScript非推奨
B07_Javascriptを分離してアクセスする方法
B08_MessageServiceを作成する
B09_自作Serviceの依存性注入をする方法
C01_EditFormを使った入力検証
C02_ValidationSummary
C03_ValidationMessage
C04_入力コンポーネント_InputText
C05_InputNumber
C06_未入力を許容する方法
C07_InputNumberで対応している型
C08_InputDate
C09_InputSelect
C10_入力コンポーネント_InputCheckbox
C11_InputRadioとInputRadioGroup
C12_InputTextArea
C13_InputFile
C14_ファイルの上限を設定する
C15_フォーカスをあてる方法_標準編_ElementReference
C16_フォーカスをあてる方法_Razorコンポーネント編
D01_StringLength
D02_RegularExpression_正規表現
D03_EmailAddress
D04_Compare
D05_ViewModelに分ける方法
D06_依存性注入を利用したViewModelの生成
D07_CustomValidation1
D08_CustomValidation2
D09_プロパティレベルのCustomValidation
D10_ValidationContext
D11_処理をViewModelに移す書き方
D12_ViewModelに移せないロジック
D14_ShouldRender
D15_ViewModelに書かないほうがいいもの
D16_エラー箇所にフォーカスを当てる方法
E01_Azureにデプロイするための事前作業
E02_Azureにアップするアプリの作成
E03_Azureへの公開準備
E04_Azureへの公開
E05_データベースの作成
E06_データベースのデータを取得する
E07_データベースの値を画面に表示する
E08_Azureのデータベースを作成する
E09_Azureのデータベースにポータルサイトからログインする
E10_AzureのDBにテーブルを作成する
E11_BlazorアプリからAzureDBに接続する
E12_SQLデータベース料金の注意
E13_AzureSQLデータベースの無料オファーを受ける
F01_依存性注入のライフサイクル
F02_クラウドでのAddSingletonの動き
■非公開コース「C#14新機能」プレゼント:
非公開コース「C#14新機能」(80分)をご覧になりたい方は
こちらからURLとパスワードを発行していますので、ご覧になってみてください。
非公開コース「C#14新機能」を観る