ERM & Normalisierung

Vielen Dank an Euch beide für die prompte Antwort. Mir scheint ich habe immer noch einen Knopf. Ich habe bspw. ein Attribut das sich in vielen Entitäten wiederholt und eingentlich als Fremdschlüssel einer Relation gut machen würde. Wie stelle ich das nun aber in einem ERM an? Als Beispiel mächte ich sämtliche Ergebnisse von sämtlichen Sportarten erfassen.

Da wären doch dann die Entität:

Eishockey
Fussball
Handball
Tennis
Curling

Und alle diese Entitäten haben ein Attribut - Punktestand -. Wie stelle ich nun diesen Punktestand dar? Als eigene Entität oder als Beziehung? Wnen als Beziehung, muss ich eine Raute zeichnen namens Punktestand die dann eine Beziehung zu jeder einzelnen Entität hat? Oder ist das Redundanz und somnit verboten?

Danke übrigens Peter für Dein super Angebot. Bis jetzt habe ich aber noch kein komplexes ERM zustande gebracht :o(. So richtig komplexe findet man auch nirgends in der Literatur.

Besten Dank zum Voraus für jede Hilfestellung
Carla

Hallo.

Ich habe bspw. ein Attribut
das sich in vielen Entitäten wiederholt und eingentlich :als
Fremdschlüssel einer Relation gut machen würde. Wie :stelle ich
das nun aber in einem ERM an? Als Beispiel mächte ich
sämtliche Ergebnisse von sämtlichen Sportarten :erfassen.

Das wird jetzt nur eine Teilantwort :frowning:
Ein (hoffentlich gutes) Beispiel für ein derartiges ERM-Modell findet sich unter http://www.eclipse.org/birt/phoenix/db/dbschema/Clas…
Einige Attribute treten hier mehrfach auf für versch. Entitäten

Noch was zur Motivation: http://www.datenbank-spektrum.de/v2/archiv/beitrag.h…

HTH
mfg M.L.

Hallo Carla,

eine Entität hast du ja schon gefunden: Sportart.
Sportarten sind etwas allgemeines. Es finden offensichtlich Wettkämpfe statt und zwar an bestimmten Terminen und mit einem bestimmten Ausgang (Punktestand). An diesen Wettkämpfen nehmen Mannschaften teil. Diese wiederum bestehen aus Sportlern.

Sportler 
 |
gehörtZu - von, bis
 | 2
Mannschaft -----------
 | |
nimmtTeilAn spieltIn - ergebnis
 | |
Wettkampf -- hat -- Spiel
 |
 in
 |
Sportart

So könnte es etwa aussehen.
Wobei immer zwei Mannschaften in einem Spiel gegeneinander gesetzt sind.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Uiiiii dann war ich aber auf einem ganz falschen Dampfer. Ich habe in diesem Beispiel als Entitäten die Sportarten also:

Eishockey
Fussball
Handball
Tennis
Curling

im Visir gehabt und wollte diesen direkt das Attribut - Punktestand - aufdrücken. Darf ich Dir noch ein anderes Beipiel nennen, nur um mein Verstehen zu stärken?

Ich habe in einem Laden viele Produkte. Nun muss ich wissen, welchen Status die einzelnen Produktegruppen denn haben. Folgende Statusmerkmale sind möglich:

ausverkauft
vergriffen
an Lager

Wie stelle ich nun das an für die Produktegruppen - Spielzeug -, Haushaltgeräte - Kleidung -? Alle haben die gleichen 3 Statusmöglichkeiten?

Entschuldige bitte, dass ich so hartnäckig bin…

Habe übrigens Deine Beispielsklausuren auf Deiner Webseite angeguckt. Tole Sache.

Gruss
Carla

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

SUPER. Genau soetwas suche ich. Allerdings abgebildet in einem ERM. In Datenbanken ist mir der Fremschlüssel geläufig. Wie aber bilde ich sowas in einem ERM ab?

Dank Eurer Hilfe komme ich der Sache langsam auf die Spur. Nun muss ich es nur noch in mein Hirn „brennen“.

Danke nochmals für die Bemühungen
Carla

.

Ich habe bspw. ein Attribut
das sich in vielen Entitäten wiederholt und eingentlich :als
Fremdschlüssel einer Relation gut machen würde. Wie :stelle ich
das nun aber in einem ERM an? Als Beispiel mächte ich
sämtliche Ergebnisse von sämtlichen Sportarten :erfassen.

Das wird jetzt nur eine Teilantwort :frowning:
Ein (hoffentlich gutes) Beispiel für ein derartiges ERM-Modell
findet sich unter
http://www.eclipse.org/birt/phoenix/db/dbschema/Clas…
Einige Attribute treten hier mehrfach auf für versch.
Entitäten

Noch was zur Motivation:
http://www.datenbank-spektrum.de/v2/archiv/beitrag.h…

HTH
mfg M.L.

Hallo Carla,

das geht ganz einfach:

Produkt – hat – Status
|
aus
|
Produktgruppe

Wenn man das programmiert ist Status eine Enumeration.

Produkt, Produktgruppe und Status sehen so aus:

Produktgruppe: {[produktgruppe]}
Produkt: {[prodID, bez, status, produktgruppe]}
Status: {[status]}
Produkt.status zeigt auf Status.status (Foreign Key)

Als Tabellen:

CREATE TABLE status (
 status VARCHAR2(30),
 CONSTRAINT pk\_status PRIMARY KEY (status)
);
CREATE TABLE produktgruppe(
 produktgruppe VARCHAR2(30),
 CONSTRAINT pk\_produktgruppe PRIMARY KEY (produktgrupe)
);
CREATE TABLE produkt (
 prodid INTEGER,
 bez VARCHAR2(60),
 status VARCHAR2(30),
 produktgruppe VARCHAR2(30),
 CONSTRAINT pk\_produkt PRIMARY KEY (prodid),
 CONSTRAINT fk1\_produkt FOREIGN KEY (produktgruppe) REFERENCES produktgruppe (produktgruppe),
 CONSTRAINT fk2\_produkt FOREIGN KEY (status) REFERENCES status (status)
);
INSERT INTO status (status) VALUES ('ausverkauft');
INSERT INTO status (status) VALUES ('vergriffen');
INSERT INTO status (status) VALUES ('an Lager');
COMMIT;
INSERT INTO produkt (prodid, bez, produktgruppe, status) 
VALUES (1,'Puppe', 'Spielzeug', 'vergriffen');
INSERT INTO produkt (prodid, bez, produktgruppe, status) 
VALUES (2, 'Waschmaschine', 'Haushaltsgeräte', 'an Lager');
INSERT INTO produkt (prodid, bez, produktgruppe, status) 
VALUES (3,'Hose', 'Kleidung', 'an Lager');

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]