UltimateLinux Geschrieben 14. Oktober 2013 Teilen Geschrieben 14. Oktober 2013 Sehr geehrte Community, ich habe folgende Aufgabenstellung und benötige euere Hilfe, um ein besseres Verständnis zur Thematik "Normalisierung" zu gewinnen. Aufgabenstellung: "Bringen Sie die die folgende Flat Table in die 1.-, 2.- und 3.NF." Ausgangs-Entitätstyp: [table=width: 500] [tr] [td]Name[/td] [td]Vorname[/td] [td]StrHNr[/td] [td]PLZ[/td] [td]Ort[/td] [td]Ausleihdatum[/td] [td]Medium[/td] [/tr] [/table] 1.NF: Da alle Attribute der Flat-Table schon atomar angeben sind, sieht die Lösung entsprechend so aus: [table=width: 500] [tr] [td]Name[/td] [td]Vorname[/td] [td]StrHNr[/td] [td]PLZ[/td] [td]Ort[/td] [td]Ausleihdatum[/td] [td]Medium[/td] [/tr] [/table] 2.NF: Jetzt beginnt für mich die unsichere Phase, als PK definiere ich die Attribute Ausleihdatum und FreundNr (künstlicher PK). Mein Vorschlag: [table=width: 500] [tr] [td]FreundNr[/td] [td]Ausleihdatum[/td] [td]Medium[/td] [/tr] [/table] [table=width: 500] [tr] [td]FreundNr[/td] [td]Name[/td] [td]Vorname[/td] [td]StrHNr[/td] [td]PLZ[/td] [td]Ort[/td] [/tr] [/table] 3.NF: Aus meinem zweiten Entitätstyp erkenne ich eine transaktive Abhängigkeit zwischen PLZ -> Ort, deshalb muss ich ein neuer Entitätstyp definieren. [table=width: 500] [tr] [td]FreundNr[/td] [td]Ausleihdatum[/td] [td]Medium[/td] [/tr] [/table] [table=width: 500] [tr] [td]FreundNr[/td] [td]Name[/td] [td]Vorname[/td] [td]StrHNr[/td] [td]PLZ[/td] [/tr] [/table] [table=width: 500] [tr] [td]PLZ[/td] [td]Ort[/td] [/tr] [/table] Wäre eine solche Lösung regelkonform bzw. richtig? Oder verletzt einer meiner Entitätstypen die Normalform? MfG UltimateLinux Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
derSuhler Geschrieben 15. Oktober 2013 Teilen Geschrieben 15. Oktober 2013 Hi UltimateLinux, Ein Ort kann mehrere PLZ haben, logisch; aber der Umgekehrte Fall tritt auch auf, d.h., dass mehrere Orte eine PLZ haben können. Damit sind Ort und PLZ nicht transitiv abhängig. Aber was wäre, wenn ein Freund an einem Tag mehrere Medien ausleihen will? MfG derSuhler Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
UltimateLinux Geschrieben 15. Oktober 2013 Autor Teilen Geschrieben 15. Oktober 2013 Hi derSuhler, vielen dank erstmal für deine Antwort. Alles klar, dann müsste die Lösung so aussehen: FreundNr Ausleihdatum Medium FreundNr Name Vorname StrHNr PLZ Ort Korrekt? So nun zu deiner Frage, ich persönlich würde die bestehende PK-Kombination erweitern und zwar mit einem neuen Attribut namens "AusleihNr", um jedes Medium eindeutig zu identifizieren können. Das würde so aussehen: FreundNr Ausleihdatum AusleihNr Medium FreundNr Name Vorname StrHNr PLZ Ort MfG UltimateLinux Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pfadiopa Geschrieben 15. Oktober 2013 Teilen Geschrieben 15. Oktober 2013 Hi UltimateLinux, Ein Ort kann mehrere PLZ haben, logisch; aber der Umgekehrte Fall tritt auch auf, d.h., dass mehrere Orte eine PLZ haben können. Damit sind Ort und PLZ nicht transitiv abhängig. Aber was wäre, wenn ein Freund an einem Tag mehrere Medien ausleihen will? Eine Plz kann mehrere Orte beinhalten. Aber in Deutschland kommt es auf die Plz an. Aktuell sind es in Deutschland 14957 Postleitzahlen. Die Identifizierung der Straße findet nicht statt. Die Plz ist lediglich das Umfeld, Teilorte fallen demnach raus. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
UltimateLinux Geschrieben 16. Oktober 2013 Autor Teilen Geschrieben 16. Oktober 2013 Eine Plz kann mehrere Orte beinhalten. Aber in Deutschland kommt es auf die Plz an. Aktuell sind es in Deutschland 14957 Postleitzahlen. Die Identifizierung der Straße findet nicht statt. Die Plz ist lediglich das Umfeld, Teilorte fallen demnach raus. Also nach deiner Aufassung ist eine genauere Identifizierung durch das Attribut "Ort" nicht mehr nötig da diese Aufgabe schon das Attribut "PLZ" übernommen hat. Verstehe, dann sehen die Relationen so aus: FreundNr Ausleihdatum AusleihNr Medium FreundNr Name Vorname StrHNr PLZ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pfadiopa Geschrieben 16. Oktober 2013 Teilen Geschrieben 16. Oktober 2013 Richtig. Die Plz kommt aus der Tabelle Plz/Ort und ist ein Fremdschlüssel. Der Ort wird später in einer Abfrage angezeigt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
UltimateLinux Geschrieben 16. Oktober 2013 Autor Teilen Geschrieben 16. Oktober 2013 Alles klar danke für die Hilfe Thema kann geschlossen werden Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.