Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Normalisierung

Begonnen von xyz, Februar 20, 2015, 16:00:20

⏪ vorheriges - nächstes ⏩

xyz

Hallo,
bin noch ein blutjunger Anfänger und daher noch mit den einfachsten Grundlagen von Access nicht vertraut.
Gerade verzweifel ich an der 2. und 3. Normalform. Kann mir vielleicht jemand helfen? Vielen Dank


Wurliwurm

Zitat von: xyz am Februar 20, 2015, 16:00:20
Gerade verzweifel ich an der 2. und 3. Normalform. Kann mir vielleicht jemand helfen?

Ganz cool bleiben, es ist eigentlich sehr einfach. Aber daß Dir jemand hier nochmal hinschreibt, was im Web tausendfach schon mehr oder weniger anschaulich und in Hochschul-Skripten zu Datenbankgrundlagen auch sehr formal beschrieben ist, erwartest Du nicht, oder?

Wenn Du ausführst, wo Du hängst, kann Dir ja der eine oder andere weiterhelfen.

xyz

Erstmal vielen Dank für deine Antwort.
Nein eine genaue Beschreibung der Theorie brauche ich nicht mehr, da hast du recht. Die habe ich mir schon zur Genüge durchgelesen.
Leider mangelt es mir an praktischen Lösungsansätzen.
Bin mir bei der eingestellten Aufgabe zum Beispiel nicht sicher ob die Primärschlüssel Reise-Nr. und Kunden-Nr. sind oder muss ich auch noch eine Nr. für die Fluggesellschaft angelegen?


xyz

Ich hab die Aufgabe versucht weiter zu bearbeiten.
Vielleicht kann mir ja jemand sagen ob ich auf dem richtigen Weg bin.

Wurliwurm

Zitat von: xyz am Februar 20, 2015, 17:40:12
Bin mir bei der eingestellten Aufgabe zum Beispiel nicht sicher ob die Primärschlüssel Reise-Nr. und Kunden-Nr. sind oder muss ich auch noch eine Nr. für die Fluggesellschaft angelegen?

Die Fluggesellschaft ist offensichtlich nur von der ReiseNr abhängig und würde in eine eigene Relation (~Tabelle) mit Schlüssel Reise und Nichtschlüsselfeld Fluggesellschaft gehören. Das denke ich mir, weil eine Reise mit einem Abflugtermin und einer Dauer immer nur ein Flugzeug sein dürfte und dieses normalerweise genau einer Fluggesellschaft gehört.

Ich sehe in Deinem Beispiel eine Aufteilung in mehrere Relationen notwendig
Intuitiv würde ich sagen
Reise mit Key ReiseNr und abhängigen Feldern Fluggesellschaft Ziel, Abflug, Dauer Kosten
Fluggast mit Key FluggastNr und abhängigen Feldern Name, Vorname, Wohnort
Buchung mit Key ReiseNr+FluggastNr

Wichtig: Man kann eine funktionale Abhängigkeit ohne Hintergrundwissen immer nur widerlegen, aber nicht beweisen.

Wurliwurm

An deiner Lösung stört mich, daß Du in der m:n-Tabele Reise-Nr/Fluggast-Nr als von der der Kombination Reise/Fluggast abhängige Werte den Abflug setzt. Das würde bedeutet, daß das Flugzeug für jeden Gast an einem anderen Tag fliegen könnte. Oder daß es um Linienflüge geht und nicht um Charterflüge, eine ReiseId mehrere Abflugtermine hat. Auch der Preis ist ja im Ursprungsbeispiel gleich pro Ziel und Abflug für alle Reisenden. So wie Du es modellierst, könnte jeder unterschiedliche Preise zahlen.

Kann mir schon vorstellen, daß solche Zerlegungen Kopfschmerzen bereiten, merke ich auch gerade.


Wurliwurm

Du brauchst noch die Relation
Airline-Nr -> Name

mit 1 Eintrag
1;Lufthansa

xyz

Super, schon einmal ganz lieben Dank für deine Antworten.
Bei dem Abflug und den Kosten war ich mir selbst auch sehr unsicher, dachte, dass wenn man die gleiche Reise zu einem späteren Zeitpunkt noch einmal anbietet das Datum ja ein anderes ist und habe es deshalb nicht zu der Tabelle Reise-Nr. gesetzt, das gleiche mit den Kosten. Aber wahrscheinlich ist das falsch. Wenn ich eine neue Reise nach New York anbiete müsste ich wahrscheinlich eine ganz neue Reise-Nr. erstellen, oder?!

MzKlMu

Hallo,
es könnte aber auch sein, dass es unterschiedliche Preise gibt für den Fluggast. Reise/Flugpreise können sich auch nach dem Alter eines Fluggastes richten. Ich sehe hier folgende Tabellen:
- Flughafen
- Fluggast
- Wohnort
- Fluglinie
- Reisen
- ReiseFluggast

Zitatmüsste ich wahrscheinlich eine ganz neue Reise-Nr. erstellen, oder?!
selbstverständlich, neue Reise > neuer Datensatz bei den Reisen. Wie sonst willst Du unterschiedliche Reiseteilnehmer erfassen ?
Es ist ja mehr als unwahrscheinlich, dass exakt die gleichen Teilnehmer auch bei einer 2. Reise dabei sind.
Gruß Klaus

Wurliwurm

Zitat von: xyz am Februar 20, 2015, 18:33:30
Wenn ich eine neue Reise nach New York anbiete müsste ich wahrscheinlich eine ganz neue Reise-Nr. erstellen, oder?!

So sehe ich das auch. Das Beispiel ist wohl so gemeint.

Wenn es ein regelmäßiger Flug wäre (a la LH***, der jeden Tag oder jede Woche stattfindet), dann müßte es eine weitere Relation mit einem 3-Feld-Schlüssel geben, weil der Fluggast ja nur einmal fliegt.

PK wäre dann
Flugnummer/Flugdatum/Passagier -> Preis, Sitzplatz etc...

xyz

Oh man, Ihr seit so nett, aber ich stehe immer noch total auf dem Schlauch. Kann es mir einfach nicht logische erklären. Grrrrrrrrrrr


MzKlMu

Hallo,
es wäre auch noch zu klären, ob das eine Reispreis ist, oder der Flugpreis.
Reispreise können viel stärker an die Person gebunden sein, z.B. Einzelzimmer, Zimmerkategorie usw.
Dann gibt es auch noch Familienpreise.
Dann gibt es Reisen, bei den der Flugpreis extra geht usw. usw.

Ist das eine reale Aufgabe oder dient die Aufgabe dem Lernen ?
Gruß Klaus

xyz

Die Aufgabe dient lediglich dem lernen. Allerdings weiß ich nicht ob ich es dadurch verstehen werde. Haben von unserem Dozenten noch 20 weitere solcher Aufgaben bekommen.