SQL - Datenbank Normalisierung und ERD - Klausur

Ham_burg

Grünschnabel
Hallo,

ich habe eine Frage an euch. Wir haben in unserer Schule eine Klausur in dem Fach Datenbanken geschrieben. Mehr als die hälfte der Klasse hat diese versemmelt. Wir sind der Meinung, dass Die Aufgabe so nicht zu lösen war. Ich schreibe euch mal die Aufgabenstellung auf.
Vielleicht kann ja mal jemand etwas dazu schreiben, der sich damit auskennt. Die Lösung hängt als Bild im Anhang. Ich bin der Meinung, dass die Lösung nicht mal der 2. Normalform entspricht. Und damit ja auch gegen die geforderte 3.

Aufgabenstellung:
Für einen Flughafen soll eine Datenbank modelliert werden.
Eine Fluggesellschaft besitzt Flugzeuge und beschäftigt die Flug-Besatzung. Die Besatzungsmitglieder fligen die in der Fluggesellschaft befindlichen Flugzeuge. Jeder Flug besitzt eine eigene Flugnummer. Besatzungsmitglieder dürfen nur für eine Fluggesellschaft fliegen und dürfen nur einmalig an einem Flug teilnehmen.

Folgender Ausschnitt der Tabelle wird vom Flughafen geführt:

Besatzung, Gesellschaft | Typ | Flugzeug-Alter | Flugnummer
Habicht, Gans, Air XYZ |Bong 747 | 4 | 1001,1002
Habicht, Air XYZ |AirBike A380 | 1 | 1003
Raabe, AIRXpress | Bong 747 | 2 |1004,1005


Daraus sollten wir ein ERD erstellen welches der 3. Normalform entspricht.
 

Anhänge

  • ERD_Loesung.jpg
    ERD_Loesung.jpg
    139 KB · Aufrufe: 194
Ich bin mir nicht sicher wo das Problem liegt, allerdings hätte ich - rein durch den Text - die Aufgabe genau so gelöst.
Aus dem Text entnehme ich folgende Komponenten:
- Fluggesellschaften
- Flugzeuge
- Flug-Besatzung
- Flüge

Wenn ich ehrlich bin, ist die Teilnahme-Tabelle überflüssig. Alles was dort vorkommt, steht bereits in der Flüge-Tabelle.
Aus reinem Hausverstand hätte ich die Verknüpfungen auch richtig gesetzt.
 
Hi,
ich hab mich geirrt. Ich habe 3 Maschinen und davon sind 2 mit der gleichen Bezeichnung. Da diese Maschinen unterschiedliches Alter haben, muss ich die doch in eine extra Tabelle packen.

Ausserdem hat der Dozent, in der Tabelle Teilnahme einen zusammengesetzten Primärschlüssel gewählt. Und wenn ich das richtig verstanden habe, ist das doch auch nicht zulässig bei der Normalisierung, oder ?

Also entspricht die Lösung meiner Meinung nach nicht der 3. Normalform
 
Zuletzt bearbeitet:
Muss nicht sein. Du kannst das Baujahr entweder direkt in die Modelltabelle reinschmeißen (eher sinnvoll), aber auch eine extra Tabelle machen. Sinnlos mMn, weil du dann genauso wieder eine Zahl (ID) hast und das noch verknüpfen musst. Macht im Endeffekt glaub ich mehr Traffic als alles andere. ;)
Oder wie meinst du das mit Baujahr? Wenn eine Maschine im Dez 2011 angefangen wurde und Jan 2012 aufgehört wurde, dann ist sie 2011/2012? In dem Fall sollte eine extra Tabelle vielleicht doch her, was aber keine all zu großen Schwierigkeiten bereiten sollte.

Wie ich sehe steht da das Alter als einfache Zahl drin. Demnach kann man einfach ein Baujahr in der Flugzeugtabelle reinhauen, das reicht aus, denn ein Flugzeug wurde nicht in zwei Jahren gebaut (siehe Beispiel). Vielleicht, weil das Fertigstellungsdatum ausschlaggebend ist. Jedenfalls ist es unklug, das Alter - wie du bereits richtig gedacht hast - ohne Baujahr anzugeben, weil man es jährlich ändern müsste.
 
Zuletzt bearbeitet:
Hi,
ich hab mich geirrt. Ich habe 3 Maschinen und davon sind 2 mit der gleichen Bezeichnung. Da diese Maschinen unterschiedliches Alter haben, muss ich die doch in eine extra Tabelle packen.

Ausserdem hat der Dozent, in der Tabelle Teilnahme einen zusammengesetzten Primärschlüssel gewählt. Und wenn ich das richtig verstanden habe, ist das doch auch nicht zulässig bei der Normalisierung, oder ?

Also entspricht die Lösung meiner Meinung nach nicht der 3. Normalform
 
Zuletzt bearbeitet:
Gott bin ich bekloppt. Nun habe ich auch noch das falsche (2.) Posting editiert.... Argh... ich sollte schlafen gehen.
 
Wie gesagt, die Teilnahme-Tabelle ist irrelevant. Sie ist nämlich redundant vorhanden, siehe Flug-Tabelle. Dort sind bereits dieselben Felder enthalten. Zudem hat die Teilnahme-Tabelle keinen eigenen Primärschlüssel, was ich für ziemlich waghalsig halte. Wenn ich jetzt nicht so extrem faul wäre, bzw. in dieser Woche - unter anderem bis vor 60Minuten - mein Abi habe/hätte, dann würde ich dir ein Schema aufzeichnen. Allerdings sollte man da nach Gefühl vorgehen, ich selber kann es mir gut vorstellen - auch ohne schriftlichen Plan. Für mich scheint es eigentlich relativ simpel... Ich hab schon schwerere Strukturen geschaffen.
 
Jetzt mal unabhängig davon, ob es der 3. Normalform entspricht, hätte ich wie folgt aufgebaut:

Tabellen:
Fluggesellschaft (FG)
FGFT
Flugzeugtyp (FT)
Flugzeug (FZ)
Personal (FP)
Flug (FN)

mit folgenden Beziehungen:
FG zu FGFT in 1:n
FT zu FGFT in 1:n
ergibt zusammen eine m:n-Beziehung. Eine Gesellschaft kann mehrere Typen haben (Bsp. A320, A321, A330, Boing 747 usw.), ein Typ kann von mehreren Gesellschaften verwendet werden (Bsp. Lufthansa hat A380 genauso wie Qantas oder Emirates)

FGFT zu FZ in 1:n
ein Typ kann in einer Gesellschaft mehrfach vorkommen, Hier (in FZ) das Flugzeugalter rein oder auch Registriernummer (Bsp. Germanwings hat 23 Flugzeuge vom Typ A319). Hier wird das tatsächliche Flugzeug eindeutig definiert.

FG zu FP in 1:n
Ein Beschäftiger kann nur für eine Gesellschaft arbeiten

FN zu FP in 1:n
Ein Flug hat mehrere Besatzungsmitglieder, ein Besatzungsmitglied kann immer nur auf einem Flug eingesetzt werden, hier (in FN) Flugnummer rein

FZ zu FN in 1:n
Ein Flugzeug kann auf mehreren Flügen eingesetzt werden, (Bsp. A320 mit ID19 fliegt heute mit Flugnummer 0815 nach New York, nächste Woche mit Flugnummer 4711 nach Sydney)


Ich weiss jetzt nicht, ob ich was vergessen habe, oder gewaltigen Mist erzähle, aber so würde ich es machen.
 
Zuletzt bearbeitet:
Hallo Zvoni,

ja das Problem ist, dass unser Dozent ja die Lösung so vorgemacht hat, wie Ich sie in dem Bild gepostet habe. Und diese Lösung nicht funktioniert. Weiterhin war ja die Vorgabe, ich soll ein ERD nach der 3. Normalform bauen. ;o)

Und das ist ja das Thema welches wichtig ist, ob ihr der Meinung seid, ob diese Aufgabe mit den vorhandenen Daten nach der 3. Normalform lösbar ist.

LG
 
Ich hoffe, das du dein ABI vernünftig gebaut hast ;o)

Ja, ich habe eigentlich auch keinen Stress mit ERD. Ich wollte einfach unabhängige Meinungen hören, ob diese Aufgabe nach den Vorgaben in der Aufgabe lösbar ist. Und zusätzlich ob ihr die Lösung die mein Dozi mir da gegeben hat, überhaupt korrekt ist. Er meinte wegen dem Primärschlüssel, dass er einen Zusammengesetzten Primärschlüssel nehmen würde. Ich habe mich mit Ihm "gestritten" und habe gesagt, wenn wir diese Tabelle überhaupt bauen müssen, dann würde ich einen Counter einfügen. DAS WAR ABER FALSCH meinte er ;o(



Wie gesagt, die Teilnahme-Tabelle ist irrelevant. Sie ist nämlich redundant vorhanden, siehe Flug-Tabelle. Dort sind bereits dieselben Felder enthalten. Zudem hat die Teilnahme-Tabelle keinen eigenen Primärschlüssel, was ich für ziemlich waghalsig halte. Wenn ich jetzt nicht so extrem faul wäre, bzw. in dieser Woche - unter anderem bis vor 60Minuten - mein Abi habe/hätte, dann würde ich dir ein Schema aufzeichnen. Allerdings sollte man da nach Gefühl vorgehen, ich selber kann es mir gut vorstellen - auch ohne schriftlichen Plan. Für mich scheint es eigentlich relativ simpel... Ich hab schon schwerere Strukturen geschaffen.
 
Zurück