====== Datenstrukturen GENprofi5 ======
Die Datenstrukturen sind nicht geheim, sondern sogar ausführlich Dokumentiert. Dies wird benötigt, wenn man mit dem SQL Export Auswertungen machen möchte
===== Vorbemerkung =====
In diesem Dokument werden die in GENprofi5 (gilt auch für GENprofi4) verwendeten Datenbankstrukturen beschrieben.
Das technische Design der Strukturen wirkt teilweise merkwürdig, man muss aber im Hinterkopf behalten, dass diese Strukturen zu einer Zeit entworfen wurden, als die Anzahl zu öffnender Dateien so klein wie möglich gehalten werden musste und der Speicherplatz stark eingeschränkt war.
===== Dateien =====
Die in GENprofi5 verwendeten dBase Dateien dürfen NICHT optimiert werden. In dBase ist es üblich, gelöschte Datensätze zu entfernen (das ist die “Optimierung”), das ist bei dem GENprofi Datenbestand nicht erlaubt, sondern zerstört i. d. R. die Datenkonsistenz. Also egal mit welchem Werkzeug man den GENprofi Datenbestand öffnet, eine dBase typische Optimierung darf nicht durchgeführt werden.
Es wird der Zeichenzatz aus der DOS-Zeit verwendet. Im Fall von GENprofi ist das die [[https://de.wikipedia.org/wiki/Codepage_437|Copdepage 437]].
==== Dateinamen ====
* Stelle 1..5 Name/Inhalt der Tabelle\\ Kürzere Bezeichnungen werden mit “_” aufgefüllt
* Stelle 6..7 Mandant, 00 .. ZZ
==== Dateierweiterung ====
^Suffix^Beschreibung ^
|dbf |dbase Dateien |
|fpt |FoxPro Text Datei, Memo-Erweiterung für Langtexte|
|cdx |Comix Indexdateien |
==== Datei-Übersicht ====
=== Datenbestand ===
^Datei^Beschreibung ^
|Abk |Diese Datei enthält neben den Abkürzungen auch die Beschreibungen und Steuerungsinformationen der Sachgebiete|
|Dat |Sachgebiete für Personen und Familien |
|Fam |Familen |
|Ort |Orte |
|Per |Personen |
|Reg |Register wie Nachnamen, Vornamen, Berufen, Titel, Krankheiten |
|Tab1 |Verknüpfung Personen und Nachnamen, sowie Verknüpfung der Vornamen |
|Tab2 |Verknüpfung Personen mit Personen und Familien |
=== Hilfsdateien ===
^Datei ^Beschreibung ^
|DDEF |Hilfsdatei um Vorbelegungen für die Eingabe der Sachgebiete zu vereinfachen|
|FOKO_TER|Territorien für die Aktion Forscherkontakte |
|GPFSTD |Vorgabedaten für Sachgebiete für die EInrichtung neuer Mandanten |
===== Strukturinformationen =====
==== Allgemeine Hinweise ====
Das einstellige Feld SYSKZ enthält bei gelöschten/inaktiven Datensätzen ein “*”, sonst ist das Feld leer. Inaktive Datensätze werden in GENprofi automatisch wiederverwendet und werden in der normalen Anwendung nicht physisch gelöscht.
Generell gilt, dass alle Datensätze, die in einem Feld den ASCII Wert 255 enthalten, inaktiv sind. Dies hat etwas mit der Sortierreihenfolge zu tun, da ASCII 255 immer an das Ende sortiert wird und damit in der normalen Anwendung nicht stört.
Die Datensatznummer gilt als interne Referenz. In dBase gibt es aber kein Feld mit der Datensatznummer, sondern dies ist die Reihenfolge, in der die Datensätze in der physischen Datei vorliegen. Wenn man also "gelöschte" Datensätze einfach entfernt, ist der Datenbestand und die Datenintegrität unwiederbringlich verloren.
==== Abk ====
In der Abkürzungstabelle werden unterschiedliche Abkürzungen und Kennzeichen verwaltet.
**Hinweis:** Bei der Ausgabedefinition kann man festlegen, dass an Stelle von Namen oder Orten Abkürzungen gedruckt werden sollen. Diese Abkürzungen sind NICHT in dieser Tabelle enthalten, sondern werden direkt bei den entsprechenden Registerwerten verwaltet.
^Feldname ^Typ ^Erläuterung ^
|SYSKZ |C1 | |
|ABK_NR |N12 |lfd. Nr. der Abkürzung, identisch mit der dBase Datensatznummer. |
|STATUS |C1 |P=SACHPER Sachgebietskennzeichen für Personen\\ F=SACHFAM Sachgebietskennzeichen für Familien\\ 0=ALIAS Namenskennzeichen\\ 5=FREI freie Abkürzungen\\ L=LAND Länderkennzeichen\\ 7=TER Territorien für Forscherkontakte\\ K=KONF Konfession|
|ABK |C7 |Abkürzung |
|BEDEUTUNG|C60 |Bedeutung der Abkürzung |
|AUS_MON |C4 |Ausgabe der Abkürzung auf dem Monitor |
|AUSGABE |C120|Die Abkürzung wird beim Druck so ausgegeben.\\ Gilt nur für Statusfeld gleich P, F, 0 und K\\ \\ Bei den Sachgebieten gibt es eine Besonderheit, da dann in dem Feld Ausgabe unterschiedliche Werte für Singular, Plural männlich oder weiblich dargestellt werden.\\ \\ Beispiel: ##PA - Paten der Person\\ Ausgabe: Pate■Paten\\ \\ Beispiel: ##E1 - Eltern\\ Ausgabe: Sohn des ■Sohn der ■So. von ■Tochter des ■Tochter der ■To. von ■und der ■|
==== Ort ====
In dieser Tabelle werden alle Orte und Plätze verwaltet, die für die genealogischen Einträge relevant sind.
^Feldname ^Typ ^Erläuterung ^
|SYSKZ |C1 | |
|ORT_NR |N12 |lfd. Nr. des Orts, identisch mit der dBase Datensatznummer |
|ORT |C60 |Ortsname, muss eindeutig sein |
|AUSGABE |C120|der Ort wird beim Druck so ausgegeben\\ \\ Dies erlaubt es, den Ortsnamen für die Suche systematisch anzugeben und bei der Ausgabe so zu gestalten, wie man es erwarten würde. Ist das Ausgabefeld nicht gefüllt, wird es ignoriert.\\ \\ Beispiel:\\ Ort: Wien - Stephansdom\\ Ausgabe: Stephansdom in Wien|
|LAND |C6 |Länderkennzeichen aus der Tabelle ABK |
|PLZ |C6 |Postleitzahl |
|TER |C3 |Territoriumskennzeichen aus der Tabelle ABK |
|ZUS_PLZ |C6 |zusätzliche Postleitzahl, wurde notwendig, weil es in Deutschland 1993 eine Umstellung auf fünfstellige Postleitzahlen gab. |
|LOCATOR |C6 |QTH Locator Code |
|GOK |C11 |Geog. Ortskoordinaten, siehe Computer Genealogie Heft 27/93 |
|ABK |C15 |Der Ort kann bei der Ausgabe in der Form abgekürzt werden. |
|LEITBASIS| |Vorbereitetes Feld, um den Leitwert an einem zentralen Punkt aufzuhängen. Wird in GP4 nicht benutzt |
|BEMERKUNG|M |Freies Textfeld mit maximal 64KB Länge in GENprofi4, max. 2GB in GENprofi5 |
==== Reg ====
In dieser Tabelle werden Registerwerte wie Namen, Vornamen, Titel, etc. verwaltet, die für die genealogischen Einträge relevant sind.
^Feldname ^Typ ^Erläuterung ^
|SYSKZ |C1 | |
|REG_NR |N12 |lfd. Nr. des Registerwerts, identisch mit der dBase Datensatznummer |
|N_TYP |C1 |Type des Registereintrags\\ \\ 0 = Namen\\ 1 = Vornamen\\ 2 = Titel\\ 3 = Berufe\\ S = Stichworte / Annotationen\\ K = Krankheiten\\ Q = Quellen |
|NAME |C60 |Registerwert, muss eindeutig sein\\ \\ Besonderheit Nachnamen: \\ {Name}, {Zusatz}\\ \\ Beispiel: Habsburg, von\\ Dies wird bei der Ausgabe automatisch umgesetzt und muss nicht über die Ausgabe gesteuert werden.|
|AUSGABE |C120|der Registerwert wird beim Druck so ausgegeben |
|ABK |C15 |Der Registerwert kann bei der Ausgabe in der Form abgekürzt werden. Besonders interessant bei Titeln und bei Quellen. |
|LEITBASIS| |Vorbereitetes Feld, um den Leitwert an einem zentralen Punkt aufzuhängen. Wird in GP4 nicht benutzt |
|BEMERKUNG|M |Freies Textfeld mit maximal 64KB Länge in GENprofi4, 2GB in GENprofi5 |
==== Per ====
Diese Tabelle enthält alle Personen der Familienforschung. Die Lebensinformationen findet man in der Sachgebietstabelle DAT.
^Feldname^Typ^Erläuterung^
|SYSKZ |C1 | |
|PER_NR |N12|lfd. Nr. des Personeneintrags, identisch mit der dBase Datensatznummer |
|REFNR |C25|Eindeutige Referenznummer des Eintrags; Mit Aufhebung der Lizenznummer und der zentralen Verwaltung der Anwender hat dieses Feld keine Bedeutung mehr.|
|ANLAGE |D8 |Anlagedatum |
|STAND |D8 |Datum der letzten Änderung |
|USR_S1 |C12|Suchschlüssel 1 |
|USR_S2 |C20|Suchschlüssel 2 |
|USR_S3 |C20|Suchschlüssel 3 |
|SEX |C1 |M/m = masculinum/männlich\\ F/f/W/w = femininum/weiblich\\ N/n/? = neutrum/unbekannt |
|KONF |C2 |Konfessionskennzeichen aus der Tabelle ABK |
==== Fam ====
In dieser Tabelle werden die Familien der Forschung verwaltet.
Die Verbindungen der Personen findet man in der Tabelle TAB2. Die Informationen zu Hochzeiten, Scheidungen, etc. findet man in der Sachgebietstabelle DAT.
^Feldname ^Typ^Erläuterung ^
|SYSKZ |C1 | |
|FAM_NR |N12|lfd. Nr. des Familieneintrags, identisch mit der dBase Datensatznummer |
|REFNR |C25|Eindeutige Referenznummer des Eintrags; Mit Aufhebung der Lizenznummer und der zentralen Verwaltung der Anwender hat dieses Feld keine Bedeutung mehr. |
|ANLAGE |D8 |Anlagedatum |
|STAND |D8 |Datum der letzten Änderung. |
|USR_S1 |C12|Suchschlüssel 1 |
|USR_S2 |C20|Suchschlüssel 2 |
|USR_S3 |C20|Suchschlüssel 3 |
|HEIRAT |C1 |J/N/?\\ Leerzeichen = Ja\\ L = Eheähnliche Lebensgemeinschaft|
|GESCHIEDEN|C1 |J/N/?\\ Leerzeichen = Nein |
|K_ANZAHL |N2 |Belegte Anzahl Kinder in Familie\\ Dies muss nicht mit der Anzahl erfasster Kinder in dem Datenbestand übereinstimmen. |
|K_ANZDAT |N2 |tatsächlich vorhandene Informationen zu Kindern\\ Es können z. B. 10 Kinder in Urkunden erwähnt werden (=K_ANZAHL), aber es liegen nur für 5 Kinder (K_ANZDAT) Unterlagen vor.|
==== Dat ====
Diese Tabelle enthält alle “Lebensdaten” oder “Ereignisse”. Es sind hier die Daten der Personen als auch der Familien enthalten.
^Feldname ^Typ ^Erläuterung ^
|SYSKZ |C1 | |
|SACH_NR |N12 |lfd. Nr. des Sachgebietseintrags, identisch mit der dBase Datensatznummer |
|SACH_TYP |C1 |Type des Registereintrags\\ \\ 0 = Personen\\ 1 = Familien |
|CNR |C12 |Datensatz-Nummer der Personen- bzw. Familiendatei |
|TYP |C4 |Kennzeichen Sachgebiet aus der Abkürzungstabelle\\ \\ SACH_TYP = 0 → ABK.STATUS=P\\ SACH_TYP = 1 → ABK.STATUS=F |
|VREG |C12 |Verweis auf Register\\ \\ TYP: handelt es sich um Beruf, Titel,Krankheit oder Konfession |
|DAT_V |C8 |Datum (von)\\ Format: TTMMJJJJ\\ wobei Tag, Monat und/oder Jahr nicht gefüllt sein muss.\\ Man kann also eintragen, dass jemand im Dezember geboren wurde, ohne Tag und Jahr zu erfassen! |
|DAT_V_S |C1 |>/N/n = nach\\
, ,
Wird kein Zusatz eingegeben, dann muß trotzdem das Komma eingegeben werden, wenn ein Titel folgt.
* Habsburg
* Habsburg, von → von HABSBURG
* Habsburg, von, Herzog → Herzog von HABSBURG
* Ginsbourg,,Fürst → Fürst GINSBOURG
Mehrere Namen gleichen Typs können durch ";" getrennt eingegeben werden
=== Patronymikon ===
In Ostfriesland hat sich dies bis heute gehalten. Der "Vatersname" wird zwischen Vor- und Familienname eingeschoben (->Zwischenname) und ist für Jungen und Mädchen gleich :
* Vater: Hinrich Garrelfs
* Sohn: Weert Hinrichs Garrelfs
* Tochter: Dedda Hinrichs Garrelfs
==== Tab2 ====
In der Verknüpfungstabelle für Familien und Personen werden die verschiedenen Verknüpfungen verwaltet. Diese Verknüpfungen können Personen mit Personen verbinden (z. B. Patenschaften) oder Personen mit Familien verknüpfen (Ehepartner, Kinder)..
Diese Datei kann optimiert werden!
^Feldname^Typ^Erläuterung ^
|SYSKZ |C1 | |
|KZ |C1 |Art der Verknüpfung |
|NR1 |C12|Verweis von ... |
|NR2 |C12|Verweis auf ... |
|LFDNR |C1 |laufende Nummer, z.B. bei Eheschließungen oder Kindern|
|LFDNRML |C1 |laufende Nummer bei Mehrlingen |
|QKZ |C1 |Qualitätskennzeichen leer oder ? |
=== Arten der Verknüpfung ===
^KZ^Beschreibung ^NR1 ^NR2 ^
|0 |Vater |FAM Nr |PER Nr Vater |
|1 |Mutter |FAM Nr |PER Nr Mutter |
|3 |Kind |FAM Nr |PER Nr Kind |
|4 |Adoptivkind |FAM Nr |PER Nr |
|5 |Trauzeugen |FAM Nr |PER Nr |
|6 |Pate |PER Nr |PER Nr Pate |
|X |Stichworte/Annotation|PER Nr |REG Nr Text |
|N |Namen auf Namen |REG Nr |REG Nr Name |
|V |Vornamen auf Vornamen|REG Nr |REG Nr Vorname|
|O |Ort auf Ort |Ort Nr |Ort Nr |
|R |Region auf Ort |Region Nr|Ort Nr |
|K |Krank auf Krank |Krk Nr |Krk Nr |
|B |Beruf auf Beruf |Ber Nr |Ber Nr |
|T |Titel auf Titel |Tit Nr |Tit Nr |