Grüß Gott,
ursprünglich habe ich nach einem Beispiel für eine Baumstruktur gesucht, die man im Unterricht als Beispiel nutzen kann. Daraus ist dann im Laufe der Zeit die Suche nach den Ahnen entstanden.
Ich bin daher historisch von den Bäumen heruntergestiegen.
Nun haben Relationale Datenbanken Schwächen bei der Modellierung von Bäumen (das sogenannte Stücklistenproblem). Beispielsweise kann man in SQL nicht fragen: "Gib mir die Wurzel zu einem Knoten = Gib mir den jüngsten Nachkommen". Genauer: Im neuesten SQL-Standard ist dazu ein Befehl vorgesehen, der aber bei den eher bescheidenen Genealogie-Datenbanken nicht realisiert ist.
Wie man aus meinem Anmeldedatum sieht, habe ich mich erst kürzlich getraut, in dieses professionelle Forum einzutreten. Man lernt, dass es eine Vielzahl von Programmen gibt, die fast alle die Kommunikation über den Gedcom-Standard erlauben. Dieser Standard beschreibt ein Austauschformat, ist also keine Datenbank.
Nach dieser langen Einleitung nun zu meinem Problem:
Um in einem RDBM (Relationalen Datenbank Management)-System einen Baum darzustellen, genügt eine einfache, reflexive Tabelle (Bild 1) (eine Tabelle mit mindestens einem Fremdschlüssel auf sich selbst).
Natürlich kann man hier bereits darüber streiten, ob die Felder p_p_aNrV (Vater) und p_p_aNrM (Mutter) als Verweise auf die Personennummer p_aNr einen Verstoß gegen die 1. Normalform (1NF) darstellen. Da es sich aber aus biologischen Gründen um genau zwei handelt, sei das erlaubt. Weiterhin sollen erst einmal alle Schmutzeleien wie gleichgeschlechtliche Ehe, unehelich geborene Personen usw. außen Acht gelassen werden.
Sucht man nun nach einer Access-Datenbank, die Gedcom verarbeitet (einliest), so trifft man nur auf ein Template von Microsoft aus dem Jahre 2007. Das Nachfolgertemplate aus 2016 enthält interessanterweise diese Fähigkeit nicht mehr.
Hinweis: Die Fragestellung dieses Beitrages hat weder etwas mit Microsoft noch mit Access zu tun. Also bitte keine Diskussion darüber.
Spannend ist das zugehörige Datenmodell (Bild 2), das eine direkte Umsetzung des Gedcom-Standards ist.
Im Zentrum von Gedcom stehen zwei Tabellen Families und Individuals, die nicht allein einen Baum realisieren können, was auch im Gedcom Standard 5.5.1. ausdrücklich dokumentiert ist.
Die Tabelle Families könnte man nach ihren Feldern auch als Ehe bezeichnen. Die Ehe besteht aus zwei Personen, die in Individuals näher beschrieben werden. Die Felder Father und Mother sind eine schlechte Umsetzung von HUSB und WIFE aus Gedcom.
Jede Person (Individual) hat einen Fremdschlüssel Parents auf die Ehe der beiden Eltern. Erst über diesen Weg findet man die Eltern einer Person.
Ich stelle mir daher die Frage: Welches der beiden Datenmodelle ist (technisch gesehen) das bessere.
Diese Frage würde ich hier gern mit DB-Analysten diskutieren. Es geht nicht darum, ob MySql besser als Access, DB 2, SQL Server usw. ist.
Da ich mit Gedcom erst am Anfang stehe, interessieren mich die Fragen:
1. Wie werden uneheliche Kinder behandelt?
2. Wie werden Ahnen ohne Eltern behandelt?
3. Wie wird die Konsistenz der Daten geprüft?
4. Der Standard sieht gegenseitige Verweise in beiden Tabellen aufeinander vor. Wie werden Widersprüche erkannt?
Selbstverständlich muss auch das Baum-Modell um eine Tabelle Ehe (assoziative Zwischentabelle) ergänzt werden, wenn es dieselben Daten wie das Gedcom-Modell aus Bild 2 enthalten soll.
Diese Tabelle kann theoretisch leer bleiben, während Families für jede Familie einen Datensatz enthalten muss.
Euer Waltschrat
ursprünglich habe ich nach einem Beispiel für eine Baumstruktur gesucht, die man im Unterricht als Beispiel nutzen kann. Daraus ist dann im Laufe der Zeit die Suche nach den Ahnen entstanden.
Ich bin daher historisch von den Bäumen heruntergestiegen.

Nun haben Relationale Datenbanken Schwächen bei der Modellierung von Bäumen (das sogenannte Stücklistenproblem). Beispielsweise kann man in SQL nicht fragen: "Gib mir die Wurzel zu einem Knoten = Gib mir den jüngsten Nachkommen". Genauer: Im neuesten SQL-Standard ist dazu ein Befehl vorgesehen, der aber bei den eher bescheidenen Genealogie-Datenbanken nicht realisiert ist.
Wie man aus meinem Anmeldedatum sieht, habe ich mich erst kürzlich getraut, in dieses professionelle Forum einzutreten. Man lernt, dass es eine Vielzahl von Programmen gibt, die fast alle die Kommunikation über den Gedcom-Standard erlauben. Dieser Standard beschreibt ein Austauschformat, ist also keine Datenbank.
Nach dieser langen Einleitung nun zu meinem Problem:
Um in einem RDBM (Relationalen Datenbank Management)-System einen Baum darzustellen, genügt eine einfache, reflexive Tabelle (Bild 1) (eine Tabelle mit mindestens einem Fremdschlüssel auf sich selbst).
Natürlich kann man hier bereits darüber streiten, ob die Felder p_p_aNrV (Vater) und p_p_aNrM (Mutter) als Verweise auf die Personennummer p_aNr einen Verstoß gegen die 1. Normalform (1NF) darstellen. Da es sich aber aus biologischen Gründen um genau zwei handelt, sei das erlaubt. Weiterhin sollen erst einmal alle Schmutzeleien wie gleichgeschlechtliche Ehe, unehelich geborene Personen usw. außen Acht gelassen werden.
Sucht man nun nach einer Access-Datenbank, die Gedcom verarbeitet (einliest), so trifft man nur auf ein Template von Microsoft aus dem Jahre 2007. Das Nachfolgertemplate aus 2016 enthält interessanterweise diese Fähigkeit nicht mehr.
Hinweis: Die Fragestellung dieses Beitrages hat weder etwas mit Microsoft noch mit Access zu tun. Also bitte keine Diskussion darüber.
Spannend ist das zugehörige Datenmodell (Bild 2), das eine direkte Umsetzung des Gedcom-Standards ist.
Im Zentrum von Gedcom stehen zwei Tabellen Families und Individuals, die nicht allein einen Baum realisieren können, was auch im Gedcom Standard 5.5.1. ausdrücklich dokumentiert ist.
Die Tabelle Families könnte man nach ihren Feldern auch als Ehe bezeichnen. Die Ehe besteht aus zwei Personen, die in Individuals näher beschrieben werden. Die Felder Father und Mother sind eine schlechte Umsetzung von HUSB und WIFE aus Gedcom.
Jede Person (Individual) hat einen Fremdschlüssel Parents auf die Ehe der beiden Eltern. Erst über diesen Weg findet man die Eltern einer Person.
Ich stelle mir daher die Frage: Welches der beiden Datenmodelle ist (technisch gesehen) das bessere.
Diese Frage würde ich hier gern mit DB-Analysten diskutieren. Es geht nicht darum, ob MySql besser als Access, DB 2, SQL Server usw. ist.
Da ich mit Gedcom erst am Anfang stehe, interessieren mich die Fragen:
1. Wie werden uneheliche Kinder behandelt?
2. Wie werden Ahnen ohne Eltern behandelt?
3. Wie wird die Konsistenz der Daten geprüft?
4. Der Standard sieht gegenseitige Verweise in beiden Tabellen aufeinander vor. Wie werden Widersprüche erkannt?
Selbstverständlich muss auch das Baum-Modell um eine Tabelle Ehe (assoziative Zwischentabelle) ergänzt werden, wenn es dieselben Daten wie das Gedcom-Modell aus Bild 2 enthalten soll.
Diese Tabelle kann theoretisch leer bleiben, während Families für jede Familie einen Datensatz enthalten muss.
Euer Waltschrat
Kommentar