web-dev-qa-db-ja.com

ERD表記(カラスの足)を読んで自然言語に変換するにはどうすればよいですか?

背景

私は、ERD(Entity Relationship Diagram)表記の読み方を理解して、自然言語の説明に変換できるようにしています。

図に表示されているものを自然言語に変換する方法を説明できるようにしています。

次の図を使用してみましょう(実際のエンティティの正確さにとらわれすぎないでください。これらは単なる例です)。

ERD Sample

自然言語の文の例

会社から住所

これは、会社から住所への関係について話す正しい方法でしょうか。

会社には1から多くの住所があります。 (発送、請求など)。

これは、会社が少なくとも1つの住所を持っている必要があることを示していますよね?

それは、図にある表記と一致しますか?

会社とコネクション

各企業には0から多数の接続があります。

あれは正しいですか?それが、会社側の二重棒をどのように読んだのですか?

2つの会社側コネクタはどのように違うのですか?

会社側の2つのコネクタは、何か違うことを示していますか?
それについて説明できますか?

自然言語翻訳の一般的なヘルプ?

各関係を調べて自然言語に変換するために提供できる手順を含む論理的な方法はありますか?

たとえば、会社から接続へ。

  1. どこから読み始めますか?

  2. Connectionのカラスの足が会社の接続数を示し、その逆はないことをどのように記憶(または説明)しますか?

ありがとう

5
raddevus

次の画像を使用して、これについてより明確に回答したいと思います( https://www.lucidchart.com/pages/ER-diagram-symbols-and-meaning から)

erd symbol explanations

これらの記号の定義を使用すると、最初に投稿した図について次のことが当てはまることがわかります。

  • 会社には1から多くの住所があります。 (発送、請求など)。
  • 会社には0から多くの接続があります
  • 接続には1つの(そして唯一の)会社があります
  • アドレスには1つの会社があります-これはおそらく、それが1つだけであることを示すために二重線コネクターを含む必要があります。

私の最後の質問は:

各関係を調べて自然言語に変換するために提供できる手順を含む論理的な方法はありますか?

  1. 開始するエンティティに指を置きます。たとえば、Companyに指を置きます。
  2. 次に、「会社は...」と言って、話したい関連エンティティを選択します。たとえば、接続を選択します。
  3. 接続エンティティに接するリレーションシンボル(3本の線(脚)を持つ空の円)を見てください。
  4. 「...ゼロから多くの接続」と言い続けます。

最後の文は、

「会社にはゼロから多くのコネクションがあります。」

これが、エンティティ関係図のシンボルを自然言語に変換する方法です。

5
raddevus

このリンクから: archive.orgミラー(元のURLは壊れています) 1

カーディナリティとモダリティは、関係に関するビジネスルールのインジケータです。カーディナリティとは、1つのエンティティのインスタンスを、関連するエンティティのインスタンスに関連付けることができる最大回数を指します。モダリティとは、1つのエンティティのインスタンスを、関連するエンティティのインスタンスに関連付けることができる最小回数を指します。カーディナリティは1または多であり、シンボルは関係線の外側の端に配置され、エンティティに最も近く、モダリティは1または0であり、シンボルはカーディナリティシンボルの横の内側に配置されます。カーディナリティが1の場合、直線が描かれます。多くのカーディナリティーの場合は、3本のつま先を持つ足が描画されます。モダリティが1の場合、直線が描かれます。モダリティが0の場合、円が描かれます。ゼロ以上[b4] 1以上[b5] 1つだけ(正確に1)[b6]ゼロまたは1 [b7]カーディナリティとモダリティは、関係線の両端に示されます。これが完了すると、関係は1対1(1:1)、1対多(1:M)、または多対多(M:M)として読み取られます。

[1]元のリンク:http://web.simmons.edu/~benoit/lis458/CrowsFootNotation.pdf

2
paulbarbin

モデリング表記を適切に説明するには、それを理解する必要があります。そこには多くのリソースがあります-ここに、関連する1つ site があります。あまりにも広く文書化されていて、スタック交換の回答でカバーするにはトピックが広範です。各関係の真に技術的な説明を記述したい場合は、モデルのドキュメントで簡単にアクセスできます。

あなたのプロセスの質問については:

それぞれの関係を調べて自然言語に変換するために提供できるステップを備えた論理的な方法はありますか?

他のライティングと同様に、聴衆はライティングの焦点とスタイルを推進する必要があります。技術文書を書いていますか?もしそうなら、具体的に誰のために?ほとんどのデータベースプロフェッショナルは、図に移動します。あなたがビジネスユーザーのために書いているなら、彼らのプロセスに集中し、それがあなたの構造とWordの選択を導くようにしましょう。たとえば、モデルが会社の住所を記録する方法を記述している場合、最初に最も身近な場所は会社です。口語で、会社の住所ではなく、会社の住所について話し合います。

どこから読み始めますか?

プロセス/口語的な提案に従っている場合は、会社から始めて、その関係を論理的に調査します。この例には、会社に関連し、さらに説明する2つの意味のあるテーブルがあります。

最初に次のことを説明します:_"A company has at least one, and possibly many, addresses."_

ループバックして、通常の会話では通常考えないことを説明する必要があります。 "We only store connection types that relate to a company (it's not a long list of arbitrary or potential connection types) and each connection type has only one company."

ここでは、関係とデータルールについて説明します。また、あまり意味がなさそうなので、これはスキーマの例ではなかったので、誰かがデザインを見て、ビジネスプロセスについて真剣に考えることをお勧めします。これは、言語からモデルへの変換および思考に関連する追加情報がERDのドキュメントで見つかる理由の1つです。

多くの専門家は、自分のモデルが理にかなっているかどうかを確認するためのテストとして、この種の演習を行います。彼らが尋ね始めるかもしれないものは次のとおりです:_"Does a company have a connection type, or does it make more sense that a company's relationship with it's multiple addresses have connection types?"_これにより、ルックアップテーブルと次のような説明で再構成するように彼らを導くはずです:_"A company has one or more addresses of different types."_

1
Dave