/fraktal/ - Software für ein Meldesystem
Freiheitsgrade der Nutzdaten-Strukturen
/fraktal/ nutzt für die Speicherung der Daten ein relationales
Datenbanksystem (die Jet-Engine - sinnvoll bis ca. 30.000 Datensätze -
und der MS-SQL-Server werden zur Zeit unterstützt) und erweitert dessen
Funktionalität um komplexe Datentypen, Mehrfachfelder und variable Datensatzfelder.
Als Basistypen stehen die vereinfachten Standardtypen Text, Zahl, Datum und LookUp
zur Verfügung - LookUp bezeichnet dabei einen Datentypen, der einen Wert aus einer
vordefinierten Menge speichert (z.B. Anrede = <Herr, Frau, Firma>) -
(C-Konstrukt <enum>).
Für alle Datentypen - oder auch für spezielle Felder - können Eingabehilfen erstellt
werden, wie sie rechts für ein Eingabefeld mit dem Inhalt „Reiseland”
zu sehen ist.
|
|
Aus den Basistypen können neue, komplexe Datentypen zusammengesetzt werden
(C-Konstrukt <struct>) - hierbei ist jedoch ein wenig Programmierarbeit notwendig.
Zusammengesetzte Datentypen werden vom System als zusammengehörig verarbeitet, d.h. es
kann eine eigene Eingabehilfe zur Verfügung gestellt werden, Plausibilitätsprüfungen können
bereits auf Feldebene die Teilfelder berücksichtigen und in Auswertungen kann
eine spezielle Logik hinterlegt werden.
Eine Schachtelung von komplexen Datentypen ist nicht möglich.
Ein klassisches Problem bei der Definition einer Datensatzstruktur sind Mehrfachfelder,
z.B. mehrere Telefonnummern, Stationen einer Reise oder Therapien bei einer Sucht-Erkrankung.
Relationale Datenbanksysteme lösen dies über 1:n-Relationen, deren Verwaltung bei der
Programmierung der Benutzerschnittstelle viel Aufwand verursacht.
/fraktal/ stellt Mehrfachfelder direkt zur Verfügung - auch für komplexe Datenfelder -
und übernimmt deren Verwaltung von der Erstellung zusätzlicher Felder im Eingabeformular
über deren Versand in den Transportdateien bis hin zu ihrer Berücksichtigung in den Auswertungen.
Einen den Mehrfachfeldern sehr ähnlichen Aufwand erzeugen konditionale Felder, also
Felder, die nur in bestimmten Fällen benötigt werden (z.B. Laborwerte, die nur bei
bestimmten Erkrankungen sinnvoll sind oder Zusatzangaben bei Publikationen, die
nur bei bestimmten Medienformen - Buch, Video, Datenträger - gemacht werden können).
/fraktal/ ermöglicht einen solchen variablen Teil eines Datensatzes, der
sich am besten mit dem C-Konstrukt <union> vergleichen lässt, aber nicht dessen
interne Konsequenzen hat.
Die Strukturdefinition der Datensätze wird in einer Tabelle gehalten und von
/fraktal/ interpretiert. Damit sind Änderungen der Datenstrukturen
einfach möglich und können - sofern es sich um Erweiterungen handelt - in der
Regel ohne neue Programmierung eingesetzt werden.
Die anderen Komponenten (Eingabeformulare, Transportsystem,
Auswertungen, Export) passen sich automatisch an Strukturänderungen an.
Strukturänderungen müssen in großen Systemen erst über mehrere Stationen
verteilt werden. Erfahrungsgemäß dauert es eine geraume Zeit, bis alle
beteiligten Stellen ein Update wirklich durchgeführt haben. Während dieser
Zeitspanne arbeitet das Meldesystem mit unterschiedlichen Datensatzstrukturen,
was von /fraktal/ aber ohne Probleme akzeptiert wird.
|