Lernen des Entwurfs von Entitätsbeziehungsdiagrammen

Guten Tag. Dieser Artikel widmet sich einem der beliebtesten und vielen bekannten Designmodelle - ER ( Entity Relationship ), das 1976 von Wissenschaftlern auf dem Gebiet der Informatik vorgeschlagen wurde - Peter Chen.

Bild

Im Verlauf des Artikels werden wir in einfacher Sprache anhand einfacher Beispiele aus dem Leben verschiedene Versionen des Diagramms entwickeln, die von ihrer Art der Verbindung abhängen. Fangen wir an!

Objektorientiertes Design


Zunächst möchte ich einige Worte zu OOP (Object Oriented Programming / Designing) sagen, damit es keine Probleme gibt, das Paradigma des Diagramms selbst zu verstehen. Es ist für mich bequemer, dieses Modell mit dem Prinzip der OOP zu abstrahieren, wobei die Essenz das Objekt ist, die Attribute seine Eigenschaften sind und die Verbindungen ein bisschen wie ein Vermittler sind (in einigen Fällen als Methode).

Schnellstart


Das Hauptvorteil des Entity Relationship-Entwurfsmodells besteht darin, dass es universell ist. Sie können eine Datenbank (Datenbanken), die Funktionsweise eines Programms, die Interaktionsprinzipien usw. entwerfen.

Was müssen Sie zu Beginn der Studie wissen?

- Sie müssen zu Beginn wissen, dass die Hauptarbeit im Verhältnis von Essenz und Kommunikation ausgeführt wird. Zur leichteren Wahrnehmung ist daran zu erinnern, dass die Essenz ein Substantiv ist , das sich in einem Rechteck befindet, und dass die Verbindung ein Verb ist , das sich in einer Raute befindet. Hier ist ein Beispiel:

Bild

Ich denke du verstehst was was ist. Unser Programmierer unterrichtet Python. Es scheint, dass alles logisch ist. Aber was sind diese Einheiten im Beispiel?

- Dies ist ein Indikator für die Art der Verbindung! In diesem Beispiel lautet der Verbindungstyp Eins-zu-Eins:

1:1


Wir werden zu den Kommunikationsarten zurückkehren, aber etwas später, und jetzt müssen wir noch einen weiteren analysieren, ABER:
- Die Tabelle sollte in beide Richtungen gelesen werden. Wenn Sie von links nach rechts lesen, ist alles logisch, wie bereits gesagt, aber im Gegenteil ... dann werden wir noch ein paar Mal darüber nachdenken, was Logik ist. In der Tat ist es so geschrieben und es ist richtig! Dies ist nur eine von einigen Funktionen dieses Modells, die manchmal verwirrend sein können. Nichts hindert Sie jedoch wie viele andere auf der Einheitenseite daran, einen Pfeil hinzuzufügen, wie im folgenden Beispiel:

Bild

PS Ich hoffe du bist interessiert. Sie können solche Diagramme im Diagrammeditor erstellen - Dia.

Attribute


Wir haben also einen Programmierer, aber wir wissen nichts über ihn ... Ohne den ein Programmierer kein Programmierer ist?
- Ohne Attribute!

Ergänzen wir unser Beispiel:

Bild

Ja, Attribute unterscheiden unseren Programmierer nicht wirklich von einem normalen Menschen ... aber in Zukunft werden wir es mit neuen Attributen reparieren! Meiner Ansicht nach lautet das Attribut COLUMN (Spalte) in der Datenbanktabelle.

Attribute sind leer

Wenn es nicht erforderlich ist, einen Nachnamen in der Tabelle Ihrer Datenbank anzugeben (dann ist das Attribut optional), sollte das Attribut aus zwei Ovalen bestehen: extern und intern (innerhalb dessen der Name des Attributs liegt).

Attribute identifizieren

Möglicherweise wird im Diagramm ein Unterstrich des Attributnamens angezeigt - dies ist normal. Sie sollten keine Angst davor haben, vielleicht ist es nur ein identifizierendes Attribut. Das heißt, es ist ein Attribut, das immer ausgefüllt werden muss, was erforderlich ist (Primärschlüssel). Als Beispiel - die bekannte ID.

Nun müssen wir dem Programmierer Kenntnisse vermitteln (welche Sprachen, Technologien er kennt).
"Aber wir werden nicht sofort mit jedem einzelnen Attribut die Komponenten seines Wissens auflisten?"
Das ist richtig, wir werden ein zusammengesetztes Attribut verwenden ( ein Attribut, das aus Komponentenattributen besteht )! Ich möchte darauf hinweisen, dass Attributkomponenten auch zusammengesetzt sein können. Die Frage ist nur, wie Sie es implementieren werden.

Bild

Arten der Kommunikation


Großartig. Wir konnten das herausfinden. Betrachten Sie nun die verbleibenden Kommunikationsarten!

Fahren wir mit der Art der Verbindung fort - Eins zu viele:

1:N


Lassen Sie mich Ihnen ein Beispiel zeigen:

Bild

Jetzt lernt unser Programmierer auch Perl. Nicht schlecht.
Ich möchte jedoch darauf hinweisen, dass das oben erwähnte Beispiel nur eine Ausnahme darstellt, um deutlich zu machen, wie die Beziehung ist, da es tausend Zweige geben kann, deren Zeichnen albern wäre. In Zukunft werden wir zu einer abgekürzten und korrekten Aufzeichnung zurückkehren, und dieses zerbrechliche Muster ist nur eine Erinnerung wert, damit es eine allgemeine Vorstellung davon gibt, was was ist. Ich hoffe, dass ich es geschafft habe, Ihnen zu erklären, was die Art der Verbindung „Eins zu Viele“ darstellt.
* Das Verhältnis einer Entität zu mehreren und umgekehrt *

Bevor Sie mit der Untersuchung von Verknüpfungstypen fortfahren, sollten Sie herausfinden, dass Attribute auch in Verknüpfungen vorhanden sind .
Ich werde es nicht als Beispiel zeigen - vielleicht kann es ohne Probleme in Worten verstanden werden. Stellen Sie sich vor, Sie haben eine Transaktionsverbindung. Angenommen, Sie müssen in Ihrem Projekt alle Informationen zu den gespeicherten Transaktionen speichern, unabhängig davon, ob diese in einer Datei oder einer Datenbank gespeichert werden. Sie müssen Zeit, Ausnahmen (aufgetretene Fehler) und etwas anderes sparen. In unserem Fall sind alle oben genannten Attribute Attribute, die zur Verbindung gehören. Solche Attribute können auch zusammengesetzt, identifizierend und optional sein. Die Frage ist nur in der Umsetzung. Fahren wir fort.

Die letzte Art der Verbindung bleibt bestehen - Viel zu viele:

M:N


Wie üblich werde ich Ihnen anhand eines Beispiels, jedoch nicht mit dem Programmierer, sondern anhand des Beispiels der Beziehung des Zuschauers zum Film, einen beliebigen Dienst zum Ansehen von Filmen zeigen:

Bild

Es gibt zwei strittige Fragen. Fangen wir an.

Erstens:
- Warum ist Kommunikation eher eine Einheit?
Um die Beziehung vom Typ "Viele zu Viele" zu vereinfachen, werden Zwischenentitäten verwendet .

"Warum gibt es keine Zweige?"
- Der Betrachter kann viele Filme abonnieren.
- Filme können viele Zuschauer haben, die sie abonnieren.


Schauen wir uns nun einen anderen Weg an, um die Beziehung "Viel zu viele" zu implementieren, der etwas schwieriger zu schreiben, aber für diejenigen, die nichts über Zwischenentitäten wissen, vielleicht verständlicher ist:

Bild

Wie Sie vielleicht bemerkt haben, gibt es in diesem Beispiel eine Art von Verbindung "Eins zu viele" und sogar mehrere.
Dies ist wahr und leicht zu erklären. Tatsache ist, dass der Verbindungstyp "Viele zu Viele" zwei "Eins zu Viele" -Kommunikationen entspricht.

M:N=1:N+N:1


Sie interessieren sich wahrscheinlich dafür, warum wir zwischen der Verbindung und der Entität zwei Kanten haben.
Das ist schon etwas schwerer zu erklären. Lesen Sie sorgfältig.
Tatsache ist, dass es optionale und obligatorische Verbindungen gibt . Erinnere dich an die Identität:
Optionale Verbindungen führen zu einer teilweisen Teilnahme, während obligatorische Verbindungen zu einer vollständigen Teilnahme führen.

- Was ist teilweise und vollständige Teilnahme?

Eine teilweise Teilnahme ist auch eine der Ausnahmen, ähnlich einem optionalen Attribut, sie hängt nur von der Entität ab. Stellen Sie sich das Bild vor. Es gibt zwei Entitäten:
Käufer und Produkte. Art der Verbindung - Eins zu viele.
Sie haben eine gemeinsame Verbindung - Kauft. Aber wir müssen etwas anderes verstehen. Ohne welche ist der Käufer nicht der Käufer?
- Ohne mindestens einen Kauf!
Dieser Fall ist ein Vertreter einer Teilverbindung, da wir die Wahl haben, "zu kaufen und Käufer zu werden oder abzulehnen". In diesem Fall haben wir eine Kante zwischen dem Link "Käufe" und der Entität "Produkte". Betrachten Sie nun die volle Teilnahme.

Eine vollständige Teilnahme ist der Fall, wenn keine Wahl besteht. Unser Programmierer bleibt ein Programmierer, auch wenn er nichts lernt, da wir im Diagramm festlegen, dass er etwas lernen muss, und es kann keine Ausnahmen geben. Wir reparieren dieses Geschäft mit zwei Kanten. Die Art der Teilnahme hängt davon ab, wie Sie gestalten und ob in der Kommunikationsphase eine Stichprobe erforderlich ist.
Dies ist erledigt. Wir fahren fort.

Denken Sie an das Beispiel „Eins zu Viele“, in dem nach dem Link „Lehren“ Namen von YP (Programmiersprachen) standen, was zu einer großen Anzahl von Zweigen führte, da diese schriftlich nicht korrekt waren. Denken Sie nur daran, dass wir nicht für jeden PL Zweige erstellen müssen. Wir können einfach eine Entität "Programmiersprache" erstellen, in der wir die Attribute platzieren, die für ihren Namen, ihr Alter, ihre Macht und vieles mehr verantwortlich sind. Ich denke du verstehst. Ich rate Ihnen, den abgekürzten Eintrag "Viel zu viele" zu verwenden.

Schwache Wesen


Betrachten Sie das endgültige Konzept.

Stellen Sie sich vor, Sie haben eine Tabelle "Parent" bzw. "Child", dieselben Entitäten im Diagramm. Kann eins ohne das andere existieren? Ich glaube nicht. Sowohl in biologischer als auch in allgemeiner logischer Hinsicht.
Schwache Essenz: Ohne Apfelbaum kann es keinen Apfel geben
.

In diesem Beispiel ist die Entität "Kind" eine schwache Entität.
Schwache Entitäten sind jene Entitäten, die ohne eine andere Entität nicht existieren können.
Wir erstellen die Entität "Kind" in der Hoffnung, dass die Eltern / Eltern keine Kinder mit demselben Namen haben. Andernfalls kann unsere Entität, die eine Tabelle in der Datenbank sein kann, kaum als normalisiert bezeichnet werden (eine Tabelle, in der die Regeln von Data Automation und Es gibt eine Primärschlüssel-ID), da wir Kinder nicht unterscheiden können.

Solche Fälle treten jedoch auf, aber Sie können dies beheben, indem Sie ein zusätzliches Attribut hinzufügen. In diesem Fall führt das Attribut "Name" zu einer ähnlichen Situation und wird als Schlüsselkomponente einer schwachen Entität bezeichnet . Der Name solcher Attribute in Ovalen ist mit einer gepunkteten Linie unterstrichen, und das Wesen und die Verbindung sind in zusätzlichen Figuren angegeben, in denen sie zusammengesetzt sind.

Ich werde Ihnen dies als Beispiel vorstellen:

Bild

Fazit


Abschließend möchte ich sagen, dass eine der grundlegenden kompetenten Kooperationsarbeiten eine gute Erklärung der Aufgaben ist, eine gute Präsentation des zu entwickelnden Produkts, die beim Entwerfen von Modellen hilft. Entity Relatioship ist ein seit Jahrzehnten beliebtes Designmodell. Sie können damit elegante Diagramme erstellen, die mit dem richtigen Ansatz in Zukunft ergänzt und geändert werden können. Nehmen Sie sich Zeit zum Lernen. Vielen Dank für Ihre Aufmerksamkeit!

Quellen


- Buch "MySQL Guide" Autorschaft:
Seyed M.M. "Saied" Tahagghoghi, Hugh E. Williams
- en.wikipedia.org/wiki/Entity –relationship_model

Source: https://habr.com/ru/post/de440556/


All Articles