<< Klicken Sie, um das Inhaltsverzeichnis anzuzeigen >> Navigation: Technisches > EMIL Datenbank |
Alle Systeme, die Daten speichern, verfügen über eine Art Datenbank.
Die EMIL Datenbank ist eine SQL-Server Datenbank auf Basis des populären und zuverlässigen Firebird 3 Open Source SQL Servers. Firebird ist leistungsfähig, hat einen sehr kleinen Footprint und erzeugt keinerlei Lizenzkosten. In EMIL® und einigen anderen von itc-ms.de entwickelten Industrieanwendungen hat sich Firebird in rund 20 Jahren als äußerst zuverlässige und auch performante Basis bewährt.
Eine Datenbank ist aber nicht allein durch die eingesetzte Technik robust und zuverlässig. Ebenso wichtig ist das Datenbank-Design. EMIL verwendet konsequent ein sehr streng an den SQL Design-Standards orientiertes Datenbankmodell.
SQL-Datenbanken speichern Daten in verschiedenen Tabellen, die miteinander verknüpft sind. So hat EMIL z.B. eine Tabelle für Patienten (SUBJECT), eine für Visits (VISIT) und eine für die Datenitems (ITEM). Jedem Patienten können beliebig viele Visiten zugeordnet werden. Jeder Visite können beliebig viele Items zugeordnet werden, das sind z.B. Blutduck, Gewicht etc. Es ergibt natürlich keinen Sinn, bei jedem Visit wieder alle Stammdaten des Patienten oder mit jedem Item wieder das Datum und die Visit-Art zu speichern, daher teilt man dies auf getrennte Tabellen auf und verknüpft diese dann untereinander über sogenannte Primärschlüssel. Dies ist Teil der sogenannten Normalisierung.
Primärschlüssel sind in EMIL grundsätzlich automatisch generierte Zahlenwerte, die einen Datensatz in einer Tabelle eindeutig kennzeichnen, man sollte diesen keinen Informationsgehalt geben. Verknüpfungen anderer Tabellen verweisen auf diese Primärschlüssel und sorgen so für eine zuverlässige Verknüpfung. EMIL verwendet durchgängig 64Bit Integer für Primärschlüssel, so dass es auch bei sehr großen Datenbanken nicht zu einem Überlauf bei vielen Datensätzen kommen kann.
Damit diese Verknüpfungen konsistent bleiben, werden in der EMIL Datenbank durchgängig sogenannte Fremdschlüssel Constraints eingesetzt. Diese verhindern zum einen, dass es ungültige Verknüpfungen gibt (z.B. ein Visit ist mit einem nicht existenten Patienten verknüpft). Zum anderen stellen sie sicher, dass kein Datensatz gelöscht werden kann, mit dem ein anderes Objekt verknüpft ist. Man kann also bereits in der Datenbank keinen Patienteneintrag löschen, wenn diesem ein oder mehrere andere Objekte, z.B. Visits zugeordnet sind.
Diese Mechanismen greifen auf einer Ebene unterhalb der eigentlichen Anwendung. Damit ist auch dann die Konsistenz gewährleistet, wenn ein Fehler in der Anwendung versucht, inkonsistente Daten zu schreiben. Die Datenbank quittiert dies dann mit einer Fehlermeldung und verhindert das Anlegen inkonsistenter Daten.
Beim EMIL Datenbankdesign wurden noch weitere Schritte gegangen, um die Sicherheit zu erhöhen, z.B. über Trigger.
Über sogenannte Datenbanktrigger können auf unterster Datenbankebene bei jedem Einfügen, Ändern oder Löschen Aktivitäten ausgeführt werden. In der EMIL Datenbank werden diese genutzt, um jede Änderung zusammen mit Zeitpunkt, angemeldetem Benutzer und vorherigem Wert zu protokollieren. Daraus gewinnt EMIL z.B. die Audittrail-Anzeige in der Patientenakte.
Weiterhin werden von EMIL Patientendaten grundsätzlich nicht gelöscht, vielmehr werden sie durch das Setzen einer Markierung deaktiviert und gehen so nie verloren.
Die ganzen Maßnahmen sind natürlich nur wirksam, wenn Sie als Anwender auch regelmäßige und zuverlässige Datensicherungen anfertigen. Denn wenn die Datenbank durch einen Computerfehler, Stromausfall oder Ähnliches beschädigt oder zerstört wird, sind Daten in Gefahr.