Veröffentlicht 14. Oktober 201312 j 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
15. Oktober 201312 j 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
15. Oktober 201312 j Autor 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
15. Oktober 201312 j 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.
16. Oktober 201312 j Autor 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
16. Oktober 201312 j Richtig. Die Plz kommt aus der Tabelle Plz/Ort und ist ein Fremdschlüssel. Der Ort wird später in einer Abfrage angezeigt.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.