Frage zu Grundlagen des ERM (DB-Theorie)

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Souli
Mitglied
Beiträge: 45
Registriert: 23.10.2003 22:20

Frage zu Grundlagen des ERM (DB-Theorie)

Beitrag von Souli »

Ahoi,

heute mal eine Frage, wie man eigentlich folgendes Gebilde 'liest':

[ externes Bild ]

Die roten Einsen bedeuten 1 zu 1.
Eine Tabelle würde also so aussehen:
ID | Fahrer | PKW
1 | Klaus | Seat
2 | Peter | Porsche

Jeder Fahrer fährt genau ein Fahrzeug und dieses Fahrzeug wird
von genau einem Fahrer gefahren. Im gezeigten Fall fährt jeder Fahrer
immer das gleiche Auto.

Wie aber lese ich nun die (1,1), die ja in der Grafik zusehen ist?
Deswegen habe ich mal die blauen Zahlen da oben reingeschrieben.
Die haben ja ansonsten im ERM nichts zu suchen. :wink:

Ich interpretiere das so:

Ein Fahrer (1) fährt genau einen PKW (2).
Ein PKW (3) wird von genau einem Fahrer (4) gefahren.

Ist das so korrekt?

Danke
Souli
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Das ist richtig ---> Klick
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Souli
Mitglied
Beiträge: 45
Registriert: 23.10.2003 22:20

Beitrag von Souli »

Super !

Dankeschön

Souli
Souli
Mitglied
Beiträge: 45
Registriert: 23.10.2003 22:20

Beitrag von Souli »

Auweia...
da habe ich jetzt doch noch eine Frage. :wink:

Folgendes Beispiel:

[ externes Bild ]
(aus: http://www.ism.co.at/analyses/Database/DATABASE.pdf)

Ein Paar kann mehrere Kinder haben, ein Kind jedoch nur einen
Vater und eine Mutter.

Das verstehe ich noch nicht so ganz. Wie muss ich es formulieren?

Vorschlag 1:
Ein Kind (1) kann nur zu einem Paar (3) gehören.
Ein Paar (4) kann mehrere Kinder (2) haben.

Vorschlag 2:
Ein Kind (1) kann nur zu einem Paar (4) gehören.
Ein Paar (3) kann mehrere Kinder (2) haben.

Beide Vorschläge würden gehen...oder?

Aber dann wäre mein Eingangsposting falsch.

Wenn ich auf der linken Seite anfange [Ein Kind (1) bzw. ein Fahrer (1)],
wo mache ich dann weiter?

Danke
Souli
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Miriam hat geschrieben:Das ist richtig ---> Klick
Ist es nicht :-)

Man darf die Beziehung nicht mit den Kardinalitäten verwechseln. Bzw. die einfache Notation nicht mit der Min-Max-Notation.

Das in rot ist die Chen-Notation (einfache Notation). Sie entspricht dem Beziehungstyp, der mit Doppelpunkt geschrieben wird. Da gibt es drei Fälle: 1:1, 1:n und n:m.
Im ersten Beispiel heißt das, dass ein Fahrer (maximal) einen PKW fahren kann und ein PKW (maximal) von einem Fahrer gefahren werden kann.
Im zweiten Beispiel sagt das, was dasteht, aus: ein Paar hat (maximal) ein Kind, ein Kind hat (maximal) n Paare. Also ist das Beispiel falsch (aber mehr dazu später).

Das in schwarz ist Min-Max-Notation. Hier sind im Gegensatz zur einfachen Notation zwei Werte bei jeder Kardinalität angegeben: ein minimaler und ein maximaler (n steht hier für beliebig viele). Außerdem sind die Werte im vergleich zur einfachen Notation vertauscht. (Man kommt also von der Min-Max ganz einfach zur normalen, in dem man nur den Max-Wert nimmt und die beiden Werte vertauscht)
Die Aussagen sind also:
ein Fahrer fährt mindestens 1, maximal 1 PKW; ein PKW wird von mindestens 1, maximal 1 Fahrer gefahren
ein Kind hat mindestens 1, maximal unendlich (n) Paare; ein Paar hat mindestens 1, maximal 1 Kind.

Allerdings sind die Beispiele auch schlecht: im ersten Beispiel kommt eine 1:1-Beziehung vor. Die sind aber in der Praxis recht selten. Das zweite Beispiel ist falsch, da die Beziehungsangaben vertauscht sind. Außerdem ist "Paar" keine saubere Entität, da ein Paar ja aus Mann und Frau zusammengesetzt ist.

Siehe auch http://de.wikipedia.org/wiki/Entity-Relationship-Modell

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Souli
Mitglied
Beiträge: 45
Registriert: 23.10.2003 22:20

Beitrag von Souli »

Ahoi,
vielen Dank für die Erklärung.
Ich denke, jetzt habe ich es kapiert. :P

Dazu mal ein anderes Beispiel:

[ externes Bild ]

Also...
nach Chen haben wir n:1 (sprich: n zu 1)
Viele Arbeiter (aber mindestens einer) arbeiten in einer (und zwar nur in einer einzigen) Firma.
Eine Firma (und zwar nur eine einzige) hat viele Arbeiter (aber mindestens einen).
Das n bedeutet ja immer mindestens einen.
Wie kann man denn den Fall 'Viele (n) oder Keinen (0)' ausdrücken ?
Mir fällt dazu gar kein Beispiel ein...Hmmm, gibt es das überhaupt? :wink:

OK, zurück zum Beispiel:
Nach der Min-Max-Notation haben wir folgende Situation:
Ein Arbeiter arbeitet in mindestens einer (1) und höchstens einer (2) Firma.
In einer Firma arbeiten mindestens ein (3) oder aber viele (4) Arbeiter.
Das n symbolisiert hier, dass theoretisch unendlich viele Arbeiter in der Firma arbeiten.

Und tatsächlich, wenn ich aus der Min-Max-Notation die jeweiligen
Max-Werte nehme und vertausche, erhalte ich n:1.
Das habe ich wohl begriffen. :o

Wenn das man so einfach wäre...
Ich habe eben ein anderes Beispiel gefunden, dass dem bisherigen
widerspricht *grmbl*

Hier mal das Beispiel:
[ externes Bild ]

Der Text dazu:
Jede Abteilung wird von einem Mitarbeiter geleitet.
Jeder Mitarbeiter kann keine oder maximal eine Abteilung leiten.

Ich interpretiere das nach Chen als 1:1.
Meine Beschreibung würde allerdings so lauten:
Ein Mitarbeiter leitet mindestens eine (1) und maximal eine (2) Abteilung.
Eine Abteilung wird von mindestens keinem (3) und maximal einem (4)
Mitarbeiter geleitet.
...macht ja nicht viel Sinn...es könnte Abteilungen ohne Abteilungsleiter geben.

Ich habe wohl doch noch die Zahlen vertauscht oder?

Wenn ich mir die Mitarbeiter ansehe, dann nehme ich die Ziffern
(1) und (2) für die Beschreibung.
Ist das falsch?
Muss ich die Ziffern (3) und (4), also die der anderen Entität benutzen?

Danke
Souli
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Souli hat geschrieben:Wie kann man denn den Fall 'Viele (n) oder Keinen (0)' ausdrücken ?
Mir fällt dazu gar kein Beispiel ein...Hmmm, gibt es das überhaupt?
Eine Frau kann viele Kinder haben oder auch keines :roll:

Ansonsten noch vielleicht von der Ausdrucksweise:
Das n symbolisiert hier, dass theoretisch unendlich viele Arbeiter in der Firma arbeiten können.
Ich habe wohl doch noch die Zahlen vertauscht oder?
Jupp. Deine Firma besteht nur aus Abteilungsleitern ;-)
Wenn ich mir die Mitarbeiter ansehe, dann nehme ich die Ziffern
(1) und (2) für die Beschreibung.
Richtig. Ein Mitarbeiter muss keine, kann aber maximal eine Abteilung leiten.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

PhilippK hat geschrieben:
Miriam hat geschrieben:Außerdem ist "Paar" keine saubere Entität, da ein Paar ja aus Mann und Frau zusammengesetzt ist.
Genau ---> Oder ein Paar Schuhe.
Zuletzt geändert von Miriam am 09.04.2007 17:01, insgesamt 1-mal geändert.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Souli
Mitglied
Beiträge: 45
Registriert: 23.10.2003 22:20

Beitrag von Souli »

Moinsen,

Hier habe ich ein PDF gefunden:
http://www.ism.co.at/analyses/Database/DATABASE.pdf
Dort steht das Beispiel mit den Mitarbeitern und den Abteilungsleitern
auf Seite 20.
Mitarbeiter (1,1) leiter (0,1) Abteilung
und darunter steht tatsächlich:
-----
Es gibt die Entitätstypen "Mitarbeiter" und "Abteilung", sowie die Beziehung
"leitet". Jede Abteilung wird von einem Mitarbeiter geleitet. Jeder
Mitarbeiter kann keine oder maximal 1 Abteilung leiten.
-----

Dann hat sich da wohl ein Fehler eingeschlichen.
Das ist ja allgemein das Risiko bei fremden Quellen. *g*

Es müsste also so aussehen, damit die Aussage stimmt:
[ externes Bild ]

Ein Mitarbeiter leitet keine (1) oder maximal eine (2) Abteilung.
Eine Abteilung wird von mindestens einem (3) oder maximal einem (4)
Mitarbeiter geleitet.

Danke
Souli
Antworten

Zurück zu „Coding & Technik“