1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

SQL - Datenbank Normalisierung und ERD - Klausur

Dieses Thema im Forum "Relationale Datenbanksysteme" wurde erstellt von Ham_burg, 6. Mai 2012.

  1. Ham_burg

    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:

  2. Lime

    Lime frisch fruchtig

    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.
  3. Ham_burg

    Ham_burg Grünschnabel

    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: 6. Mai 2012
  4. Lime

    Lime frisch fruchtig

    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: 6. Mai 2012
  5. Ham_burg

    Ham_burg Grünschnabel

    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: 6. Mai 2012
  6. Ham_burg

    Ham_burg Grünschnabel

    Gott bin ich bekloppt. Nun habe ich auch noch das falsche (2.) Posting editiert.... Argh... ich sollte schlafen gehen.
  7. Lime

    Lime frisch fruchtig

    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.
  8. Zvoni

    Zvoni Erfahrenes Mitglied

    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: 7. Mai 2012
  9. Ham_burg

    Ham_burg Grünschnabel

    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
  10. Ham_burg

    Ham_burg Grünschnabel

    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(



  11. Lime

    Lime frisch fruchtig

    Naja, theoretisch kann zwar kein Eintrag doppelt vorkommen (Flug <--> Flugpilot), aber es gehört einfach dazu, wenn man Daten für die Zukunft erhalten möchte. Irgendwann sind Einträge doppelt, bzw. man würde die Liste ja sicher ausbauen.

    Also wenn die Einträge in der Flüge Tabelle z.B. wöchentliche Flüge sind, dann braucht man natürlich eine extra Verknüpfungstabelle. Wenn man aber in die Flüge-Tabelle jeden einzelnen Flug (also gleiche Flüge, die jede Woche stattfinden) erneut einfügt, braucht man keine. Steht so aber nicht in der Angabe - bzw. anders auch nicht...
  12. Ham_burg

    Ham_burg Grünschnabel

    Siehst du, das ist das was ich meine, die Daten sind so unkonkret, dass meiner Meinung nach die Aufgaben nicht korrekt gelöst werden kann. Und wenn dem so ist da muss man meiner Meinung nach diese Aufgaben aus der Klausur herausgestrichen Serben und die Noten korrigiert werden.

  13. Zvoni

    Zvoni Erfahrenes Mitglied

    Kannst du mal ein ERD von meinem Vorschlag machen, und deinem Dozenten vorlegen und nach seiner Meinung fragen? Mir ist es egal, ob es irgendeiner Normalform entspricht. Mir gehts um die Praktikabilität meines Vorschlags
  14. Ham_burg

    Ham_burg Grünschnabel

    Ja werde ich machen.... Ich informiere dich dann

Diese Seite empfehlen