sql >> データベース >  >> RDS >> Database

陳記法

    さまざまなERD表記法の旅を続けて、ChenERD表記法を確認しましょう。

    実体関連モデリングを開発し、1976年に彼の作品を発表したピーター・チェンは、ソフトウェアおよび情報システムのモデリングと設計で実体関連の概念を使用するパイオニアの1人でした。 Chen ERD表記は現在も使用されており、エンティティと関係を表すより詳細な方法を示すと考えられています。

    エンティティ

    エンティティは、エンティティの名前を含む長方形で表されます。

    Chen表記では、エンティティのタイプを区別します :

    1. エンティティ

    2. 弱実体 –属性だけでは一意に識別できないエンティティ。弱いエンティティの存在は、所有者エンティティと呼ばれる別のエンティティに依存しています。ウィークエンティティの識別子は、所有者エンティティの識別子とウィークエンティティの部分キーの組み合わせです。

    3. 連想エンティティ –多対多の関係で使用されるエンティティ(追加のテーブルを表します)。連想エンティティのすべての関係は多くなければなりません

    属性

    Chen表記では、各属性は楕円形で表されます。 アトリビュートの名前を含む:

    属性は直線でエンティティにリンクされています:

    いくつかの特定の属性の種類があります :

    1. キー属性 –特定のエンティティを一意に識別する属性。キー属性の名前には下線が引かれています:

      たとえば、車両識別番号(VIN)は、個々の車両を識別するために使用される一意のコードであるため(2台の車両が同じVINを持つことはありません)、「VIN」は「CAR」エンティティの主要な属性と見なすことができます。

      >

    2. 部分キー属性(ディスクリミネーター) –所有者エンティティのキ​​ー属性と組み合わせると、弱いエンティティに一意のIDを提供する属性。識別子に破線で下線を引きます:

    3. 複数値の属性 –多くの値を持つことができる属性(テーブルの同じ列に入力された多くの異なる値があります)。複数値の属性は、二重の楕円で表されます:

      たとえば、各ユーザーは複数の異なる趣味を持つことができるため、「趣味」は「ユーザー」エンティティの複数値の属性と見なすことができます。

    4. 派生属性 (または計算された属性)–値が他の属性から計算(派生)された属性。派生属性は、データベースに物理的に保存されている場合とされていない場合があります。

      Chen表記では、この属性は破線の楕円で表されます:

      たとえば、VATとVAT率を除いた価格を指定すると、VATを含む価格を計算できます。


    一部の属性は、さらに小さな部分に分割できます。たとえば、属性「住所」は、通りの名前、通りの番号、アパートの番号、都市、州、郵便番号、国に細分できます。

    これらは複合属性と呼ばれます 次のように表されます:


    関係

    Chen表記では、関係はひし形で表されます。 (ひし形)関係の名前が含まれています。

    2種類の関係が区別されます:

    1. 強い関係 –エンティティが他のエンティティから存在に依存せず、子のPKに親エンティティのPKコンポーネントが含まれていない関係。強い関係は、単一のひし形で表されます:

    2. 弱い(識別)関係 –子エンティティが親に存在依存し、子エンティティのPKに親エンティティのPKコンポーネントが含まれる関係。この関係は、二重のひし形で表されます:


    関係のオプション

    1. バーカーの表記と同様に、必須 関係は実線で表されます:

    2. オプション 関係は、バーカーの表記法のように破線で表されます:


    カーディナリティ

    関係の程度カーディナリティ )は、通常、関係の最後に配置される文字「1」、「N」、または「M」で表されます。

    • 1対1(1:1)

      従業員は1つの部門のみを管理でき、各部門は1人の従業員のみが管理できます:

    • 1対多(1:N)

      顧客は多くの注文を行うことができますが、各注文は1人の顧客のみが行うことができます:

    • 多対1(N:1)

      多くの従業員が1つの部門に所属する場合がありますが、特定の1人の従業員は1つの部門にのみ所属できます:

    • 多対多(M:N)

      1人の学生が複数の学生組織に所属している場合があり、1つの組織が複数の学生を受け入れることができます:


    参加の制約

    エンティティセットは、全体的または部分的に関係に参加できます。

    • 総参加者 セット内のすべてのエンティティが関係に関与していることを意味します。たとえば、各学生は教授によって指導される必要があります(教授によって指導されていない学生は存在しません)。陳表記では、この種の関係は二重線で表されます。

    • 部分的な参加 これは、セット内のすべてのエンティティが関係に関与しているわけではないことを意味します。たとえば、すべての教授が学生を指導しているわけではありません(そうでない教授もいます)。 Chen表記では、部分的な参加は1行で表されます。

    上記の関係は、例外なく、各学生が1人の選ばれた教授によって指導されなければならず、1人の教授(すべてではない)が多くの学生を指導できることを意味します。したがって、教授に指導されていない学生は存在しませんが、一方で、学生を指導していない教授がいる可能性もあります。


    それでは、本と章(前の部分で示した)の例がChen表記でどのように見えるかを見てみましょう。



    1. 初心者向けのGitのヒントとベストプラクティス

    2. MySQLデータベースをAmazonRDSからDigitalOceanに移行する

    3. 列名または指定された値の数がテーブル定義と一致しません

    4. MySQLで今月の記録を取得する方法