ThomasDevolper Geschrieben 18. Februar 2015 Geschrieben 18. Februar 2015 Hallo! Ich will eine Datenbank in dritter Normalform erstellen, und habe da seit einiger Zeit ein Problem mit der Redundanz. Ich habe eine folgendes: Tabelle Angestellten: id, Vorname, Nachname, adressID Tabelle Adressen: id, Straße, PLZ, Stadt Mein Probem ist jetzt, wenn 2 Angestelle die gleiche Adresse haben (z.b. eine Wohngemeinschaft) und einer von den beidne zieht aus, also ändert seine Adresse, gibt es ein Problem. Ich ändere den Datensatz in der Tabelle Adressen, dann hat aber der andere Angestellte auch eine neue Adresse. Wenn ich aber die Felder der Adresstabelle in die Angestelltentabelle gebe, dann würde ich wieder eine Redundanz bekommen, wennn 2 Angestelle in der Wohngemeinschaft wohnen. Kann mir da bitt jemand helfen wie ich das lösen könnte? Das wäre echt cool. Danke.
Gooose Geschrieben 18. Februar 2015 Geschrieben 18. Februar 2015 Du hast eine weitere Tabelle z.B. Ang2Addr mit AngId und AddrId, wo für einen Angestellten n Adressen referenziert werden können, oder eine Adresse für m Angestellte. (n zu m Beziehung)
Sinoxy Geschrieben 18. Februar 2015 Geschrieben 18. Februar 2015 (bearbeitet) Wenn jemand umzieht trägst Du zuerst die neue Adresse in die Relation Adressen ein. Diese neue Adresse bekommt dann eine neue ID, anschließend änderst Du das Attribut AdressID in der Relation Angestellten auf das neu erzeugte Tupel in Adressen. Ferner müsste PLZ und Ort als eigentständige Relation auftrauchen um auch hier Redundanzen zu vermeiden. Denn die PLZ ist vom Ort abhängig und nicht von AdressID. Die PLZ kann als Fremdschlüssel in die Relation Adressen aufgenommen werden. Bearbeitet 18. Februar 2015 von Sinoxy
Der Hans Geschrieben 19. Februar 2015 Geschrieben 19. Februar 2015 Wenn jemand umzieht trägst Du zuerst die neue Adresse in die Relation Adressen ein. Diese neue Adresse bekommt dann eine neue ID, anschließend änderst Du das Attribut AdressID in der Relation Angestellten auf das neu erzeugte Tupel in Adressen. Du prüfst erst, ob die neue Adresse schon in der Adressentabelle vorhanden ist, bevor du sie blind einfügst.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden