ER-Modell und Relationenmodell

Hallo,

ich verzweifle gerade und zwar geht es um das ER und Relationenmodell. In meinem Lehrbuch kann ich das alles nachvollziehen, es scheint alles ganz einfach… aber wenn ich dann selbst etwas entwerfen soll,dann mach ich so viele Fehler…

Wo ist jetzt genau mein Problem?

Beim ER-Modell

Muss man die Objekttypen in eine bestimmte Reihenfolge bringen?
Woran erkenne ich,welches Objekttyp mit welchem zu tun hat?

Beispiel: Mitarbeiter erbringt eine Leistung, die einem Auftrag zugeordnet werden kann. Der Auftrag kann in Unteraufträge gegliedert werden.

Es gibt 4 Objekttypen: Mitarbeiter, Leistung, Auftrag, Unterauftrag
Verbunden wurde das so im Buch:
Mitarbeiter->Leistung->Unterauftrag->Auftrag

Klingt logisch,aber ich hätte noch versucht den Mitarbeiter mit dem Auftrag zu verbinden…irgendwie versuche ich alles zu verbinden,aber man muss nach dem „logischen“ gehen oder… gibt es da irgendwie einen Tipp oder eine Merkhilfe wie man sich das am besten klar machen kann?

Dann habe ich Schwierigkeiten bei der Kardinalität.

Mitarbeiter -> Leistung
(1:n)
Von wo liest man das? Also von welcher Richtung? Ich lese das immer so:
Ein Mitarbeiter kann mehrere Leistungen erbringen (stimmt ja auch), jetzt versuche ich das aber auch rückwärts zu machen -> Eine Leistung kann von mehreren Mitarbeiter erbracht werden -> ich hätte da jetzt m:n hin geschrieben…
Das ist aber falsch… Liest man das denn immer nur in eine Richtung?

Beim Relationenmodell:

Ich hab Schwierigkeiten bei der Normalisierung.

  1. verstehe ich, man spaltet alle Spalten so weit auf,so dass nur jede Spalte einen Wert immer hat

  2. Hier versuche ich, die Spalten in „Themengebiete“ zusammen zu fassen… z.B. Prüfung,Student. Aber das Problem ist, wenn es viele Spalten sind,dann wird es unübersichtlich und ich kann die „Themengebiete“ schwer erkennen… gibt es eine andere Beschreibung, was man in der 2. Normalisierung machen kann?

  3. Hier schaue ich, ob unter den Nichtschlüsselwerten Abhängigkeiten untereinander sind… Und wenn ja, spalte ich die in neue Tabellen auf.

Mein Problem ist glaube ich einfach… es ist irgendwie abstrakt und es gibt keine einheitliche Vorgehensweise… ich verzweifel langsam… obwohl es so leicht erscheint :frowning:

Ich wäre wirklich alle Tipps dankbar!!

Hallo Keozor,

Beim ER-Modell

Muss man die Objekttypen in eine bestimmte Reihenfolge
bringen?

ich bin mir nicht ganz sicher, was du meinst. Eine bestimmte Reihenfolge haben die Objekttypen in einem ER-Modell nicht.

Woran erkenne ich, welches Objekttyp mit welchem zu tun hat?

„Zu tun hat“ beschreibt einen Beziehungstyp zwischen zwei (oder mehr) Objekttypen. Wo Beziehungen zwischen Objekten bestehen, gibt dir deine Miniwelt vor, die du modellieren willst. Natürlich kann man im Prinzip zwischem allem und jedem Beziehungen sehen (was wahrscheinlich dein Problem ist), aber in dein ER-Modell nimmst du nur die für deinen Anwendungszweck/für deine gewählte Abstraktionsebene wichtigen Beziehungen.

Beispiel: Mitarbeiter erbringt eine Leistung, die einem
Auftrag zugeordnet werden kann. Der Auftrag kann in
Unteraufträge gegliedert werden.

Wenn dir so etwas als textuelle Beschreibung vorgegeben wird, musst du aufpassen, dass du nicht zuviel Vorwissen aus der realen Welt mit einbeziehst. Hauptsächlich musst du dich auf die Beschreibung stützen.

Es gibt da folgende Technik. In so einer textuellen Beschreibung sind Kandidaten für Objekttypen häufig Substantive; Kandidaten für Beziehungstypen sind Verben/Prädikate. Die kann man sich am besten farblich markieren. Ich nehme hier im Beispiel mal fett für Substantive und kursiv für Verben:

Mitarbeiter erbringt eine Leistung , die einem
Auftrag zugeordnet werden kann. Der Auftrag kann in
Unteraufträge gegliedert werden.

Daraus kann man in diesem Beispiel leicht die Objekttypen ablesen:

Es gibt 4 Objekttypen: Mitarbeiter, Leistung, Auftrag,
Unterauftrag

Anhand der Verben sieht man dann, dass folgende Beziehungen in diesem Text beschrieben werden:

a) Mitarbeiter --erbringt–> Leistung
b) Leistung --ist-zugeordnet–> Auftrag
c) Auftrag --ist-gegliedert-in–> Unterauftrag

Das sind genau die drei Beziehungstypen aus deinem Buch:

Verbunden wurde das so im Buch:
Mitarbeiter->Leistung->Unterauftrag->Auftrag

Klingt logisch,aber ich hätte noch versucht den Mitarbeiter
mit dem Auftrag zu verbinden…

Wie gesagt, „klingt logisch“ ist ein schlechtes Argument, weil du so mit deinem Wissen argumentierst, wie Mitarbeiter, Aufträge etc. „normalerweise“ funktionieren und zusammenhängen. Das kann aber in dem Fall, den du hier zu modellieren hast, leicht (oder ganz) anders sein.

gibt es da irgendwie einen Tipp oder eine Merkhilfe wie man
sich das am besten klar machen kann?

Substantive und Verben suchen; daraus Objekttypen erstellen sowie Beziehungstypen, die beschrieben sind (und unvoreingenommen an das ganze herangehen, die Allgemeinbildung größtenteils ausblenden).

Dann habe ich Schwierigkeiten bei der Kardinalität.

Mitarbeiter -> Leistung
(1:n)
Von wo liest man das? Also von welcher Richtung?

Jeden Beziehungstyp kann man prinzipiell in beiden Richtungen lesen. Hier: Ein Mitarbeiter erbringt viele Leistungen. Eine Leistung wird von maximal einem Mitarbeiter erbracht.

Eine Leistung kann von mehreren Mitarbeiter erbracht werden ->
ich hätte da jetzt m:n hin geschrieben…

Wenn du das so sagst, müsstest du auch n:m benutzen.

Das ist aber falsch…

Ob das falsch ist, hängt ganz davon ab, wie es in der „Welt“, die du modellierst, aussieht. Dein Beispieltext von oben sagt nichts zu den Kardinalitäten.

Beim Relationenmodell:

Ich hab Schwierigkeiten bei der Normalisierung.

  1. verstehe ich, man spaltet alle Spalten so weit auf,so dass
    nur jede Spalte einen Wert immer hat

(Zunächst muss ich etwas pedantisch sein: Im Relationenmodell gibt es keine Spalten und Tabellen, nur Attribute und Relationenschemata.)

Ja, ein Relationenschema ist in 1NF, wenn keine mehrwertigen Attribute auftreten.

  1. Hier versuche ich, die Spalten in „Themengebiete“ zusammen
    zu fassen…

Hmm, das riecht schon wieder nach dem bösen Vorwissen. Im Endeffekt läuft die ganze Normalisierung darauf hinaus, dass unabhängige „Themengebiete“ auch in unterschiedlichen Relationenschemata landen, um Redundanzen und Änderungsanomalien zu vermeiden. Aber du kannst nicht durch grobes Abschätzen von „Themengebieten“ zu einer 2NF kommen.

Welche Definition der 2NF kennst du? Die, die ich kenne, basiert auf funktionalen Abhängigkeiten (FAs). Diese funktionalen Abhängigkeiten zwischen Attributmengen sind alles, was du an Wissen über die Welt benutzt. Entweder sind dir die FAs im Rahmen einer Aufgabe vorgegeben oder du musst sie vorab selbst bestimmen.

In 2NF muss dann jedes Nichtschlüsselattribut von jedem Schlüsselkandidaten voll funktional abhängig sein. Ziel ist es also, Abhängigkeiten von (nur) Schlüsselteilen zu eliminieren und dadurch wieder Entitymengen (im ER-Sinne) in eigene Relationen zu bringen.

  1. Hier schaue ich, ob unter den Nichtschlüsselwerten
    Abhängigkeiten untereinander sind… Und wenn ja, spalte ich
    die in neue Tabellen auf.

Ja, die Bestimmung der transitiven „Abhängigkeiten“ läuft aber wieder auf Grundlage der vorher bestimmten FAs.

es ist irgendwie abstrakt und es gibt keine einheitliche Vorgehensweise…

Ja, Normalisierungstheorie ist sehr abstrakt. Aber einheitliche Vorgehensweisen gibt es; es gibt sogar Algorithmen, die dir aus einer Menge von Attributen und einer Menge von funktionalen Abhängigkeiten ein Schema in 3NF automatisch herstellen. Dafür musst du aber die Abbildung von „Welt“ in Formalismen schon gemacht haben und dein sonstiges Wissen über die „reale Welt“ ausblenden. Ich denke, das macht dir am meisten zu schaffen.

Ich hoffe, ich konnte dir etwas helfen. Sicher hast du noch Nachfragen; dann schieß mal los … :smile:

Andreas

hi,

ich musste mal eine e-learning einheit für nf schreiben, inkl. übungsaufgaben.
vielleicht hilft das ein bißchen, ist allerdings den meisten zu umfangreich gewesen ; )
hier kann man die runterladen und dann einfach eine der html dateien öffnen, dann sieht man links schon das menü und kann sich durchklicken.

http://www.stud.fh-dortmund.de/forum/index.php?actio…

mfg mimi