Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Elisagl am November 12, 2010, 12:39:10

Titel: ???
Beitrag von: Elisagl am November 12, 2010, 12:39:10
Hallo,
Ich habe folgendes Problem: Ich musste für eine Aufgabe eine Datenbank erstellen, die Verwandtschaftsbeziehungen darstellen soll. Jetzt soll ich abfragen, welcher der Verwandten wieviele kinder hat...
Ich habe eine Tabelle namens "Verwandter" mit den Attributen VerwandterID, Vorname, Geburtsname, Geburtsdatum, Geschlecht, Vater und Mutter und eine namens "Eltern" mit den Attributen ElternID, Vater, Mutter. Hab die beiden Tabellen durch die Attribute Vater und Mutter verbunden, hat aber nur funktioniert als ich den Index für Vater und Mutter in der Tabelle Eltern jeweils auf Ja(Ohne Duplikate) gesetzt habe... Bei der Tabelle Eltern hab ich Vater und Mutter als kombinierten Primary Key verwendet. Da steht ich jetzt vor dem Problem, dass in meiner Tabelle "Eltern" jeder Name nur einmal vorkommen darf und somit keine Person mit zwei verschiedenen Partnern ein Kind haben kann...
Ich hoffe ich konnte euch mein problem einigermaßen klar darstellen!
Wäre echt dankbar für eure Hilfe, bin nämlich noch ein ziemlicher Anfänger!
Titel: Re: ???
Beitrag von: database am November 12, 2010, 17:28:50
Hallo,

du solltest aus der Relation 'Verwandter' die Attribute 'Vater' und 'Mutter' entfernen und statt dessen die 'ElternID' aus der Tabelle 'Eltern' speichern.
Dann ist es möglich ein beliebiges Elternpaar zu bilden und dieses einem 'Verwandten' zuzuordnen.
Optimal wäre es natürlich wenn man feststellen könnte, welche Verwandten zusammen gehören und wer die Erzeuger sind - also über eine Zwischentabelle, wobei die Relation Eltern dann m.E. nicht benötigt wird sondern aus je einer Relation Vater und Mutter (VaterID und MutterID) zusammen mit der VerwandtenID in dieser Zwischentabelle gespeichert wird.
Warum das so sein sollte? Alle Verwandten, mit dem gleichen Vater oder der gleichen Mutter sind ECHTE Verwandte...   ;)  und nach meinem Dafürhalten nur so identifizierbar.
Wie du das gelöst hast (Vater und Mutter in der Verwandten-Tabelle), ist es ein klassischer Verstoß gegen die Normalisierungsregeln!

Für detaillierte Erklärungen zum Thema Normalisierung bitte Google bemühen oder die Links in der Signatur von DF6GL durchschmökern  ;D

HTH
Peter