Die Suchfunktionen sind wirklich vielseitig,
das Verschlagworten von vielen Bildern geht sehr schnell.
Oberstes Ziel bei der Entwicklung von pixafe ist die Datensicherheit.
Der Datenschutzdialog unterstützt Archivare bei der Umsetzung aller Anforderungen der Datenschutzgrundverordnung (DSGVO). Die Broschüre zur Datensicherheit und Datenschutz erläutert die Sicherheitsmaßnahmen im System im Detail.
Es wurden diverse Vorkehrungen getroffen, um den Verlust oder die ungewollte Zerstörung von Bildern zu vermeiden. Durch verschiedene Techniken der Fehlerbehandlung bzw. Fehlervermeidung werden Verluste eingeschränkt. Ein wesentlicher Beitrag hierzu wird dadurch erreicht, dass kein neues Datenbankmanagementsystem entwickelt, sondern auf ein etabliertes System (IBM DB2). zurückgegriffen wurde.
Bildverzeichnis
Alle Bilder, die in der Bilderdatenbank abgelegt sind, werden in einem speziellen Bildverzeichnis (Datenbankverzeichnis) abgelegt. Während der Anzeige oder Bearbeitung mit einem Bildverarbeitungsprogramm wird auf einer Kopie des Bildes im Arbeitsverzeichnis gearbeitet. Nach der Änderung eines Bildes mittels Bildverarbeitungsprogramm muss dieses explizit erneut in der Datenbank gespeichert werden. Hiermit wird sichergestellt, dass bei einem Absturz eines Fremdsystems (Bildverarbeitungsprogramm) keine Bilder in der Datenbank beschädigt werden.
Löschverzeichnis
Beim Löschen eines Bildes aus der Bilderdatenbank wird das zu löschende Bild nicht sofort aus dem System entfernt, sondern zuvor in den Papierkorb (Löschverzeichnis) verschoben. Erst dann, wenn der Benutzer das Löschverzeichnis explizit leert, werden die gelöschten Bilder aus dem System entfernt. Hiermit wird sichergestellt, dass keine Bilder verloren gehen, die aus Versehen gelöscht wurden, oder die bei einem Systemversagen entfernt worden wären.
Backupverzeichnis
Um den Zustand der Datenbank zu einem beliebigen Zeitpunkt sichern zu können existiert das Backupverzeichnis. In diesem Verzeichnis werden die Inhalte der Datenbank abgespeichert, um sie auf einen anderen Rechner transportieren zu können, bzw. um nach einem Systemausfall die Datenbank rekonstruieren zu können.
Transaktionen
Transaktionen stellen die Daten-Konsistenz bei allen Zugriffen auf das Datenbanksystem sicher. Sie haben die folgenden Eigenschaften, die auch unter der Abkürzung ACID bekannt sind:
Die Transaktion-Technik wird bei pixafe dazu genutzt sicherzustellen, dass keine inkonsistenten Daten in die Datenbank gelangen können. Vor einem Datenbankzugriff wird eine Transaktion gestartet. Wenn es dann bei deren Ausführung zu einem Fehler kommen sollte, werden alle Aktionen innerhalb der gestarteten Transaktion von der Datenbank zurückgenommen und somit deren Konsistenz sichergestellt.
Beziehungen
Die in der Datenbank abgelegten Informationen stehen in Beziehungen zueinander. Wie diese Beziehungen aussehen, wurde im Datenbankschema definert. Das DB2-Datenbanksystem achtet beim Ändern von Daten in der Datenbank (Einfügen, Löschen, Ändern) ganz genau darauf, dass die festgelegten Beziehungen eingehalten werden. Eine der Beziehungen ist, dass keine Person gelöscht werden darf, wenn sie noch auf einem Bild abgebildet ist und zu dessen Anzeige benötigt wird.
Primärschlüssel
Ein Primärschlüssel ist ein Datenbankkontrukt, das sicherstellt, dass eindeutige Datensätze nur einmal innerhalb einer Tabelle abgelegt werden dürfen. Bei der Festlegung des Datenbankschemas wird angegeben, bei welchen Tabellenattributen es sich um Primärschlüssel handelt. Dass diese Schlüsselbedingung nicht verletzt wird ist Sache des Datenbanksystems.
Fremdschlüssel
Fremdschlüssel garantieren, dass auf verwiesene Daten stets verfügbar sind. So wird in der Bilderdatenbank zu einem Bild eine Liste aller abgebildeter Personen in Form von Verweisen gespeichert. Hiermit ist sichergestellt, dass keine Person gelöscht werden kann, die auf einem Bild abgebildet ist, das sich noch in der Datenbank befindet.
Ein weiteres Beispiel ist die Verwaltung von Schlagwörtern in der Datenbank. Sobald ein neues Schlagwort bei der Beschriftung eines Bildes in die Datenbank aufgenommen wird, wird festgestellt, dass es sich um ein neues Schlagwort handelt. Der Benutzer wird gefragt, ob er das Schlagwort in die Datenbank einfügen möchte oder ob er sich eventuell verschrieben hat und darum das Schlagwort noch nicht in der Datenbank vorliegt. Die Schlagwörter werden in einer speziellen Tabelle abgelegt, die Verknüpfungen zu Bildern erfolgen mittels Verweisen oder Fremdschlüsseln.
Constraints
Neben den Beziehungen zwischen verschiedenen Daten gibt es auch Festlegungen für die Struktur einzelner Datenfelder, die die Datenbank überwacht. Über bestimmte Regeln wurde festgelegt, dass nur gültige Datumswerte in die Datenbank eingetragen werden können. Es wird zum Beispiel sichergestellt, dass das Datum 29.Februar 2001 nicht eingegeben werden kann.
Der folgende Constraint dient dazu, ein Datum nur in korrekter Form in die Datenbank zu lassen:
constraint c_dat check(
(( madeday is null and mademon is not null and madeyear is not null) or
( madeday is null and mademon is null and madeyear is not null ) or
( madeday is null and mademon is null and madeyear is null ) or
( madeday is not null and mademon is not null and madeyear is not null )) and
((mademon in (1,3,5,7,8,10,12) and madeday < 32 ) or
(mademon in (4,6,9,11) and madeday < 31 ) or
(mademon = 2 and madeday < 29 ) or
(mademon = 2 and mod( madeyear, 4) = 0 and madeday < 30 ))
-- alle Hunderter sind kein Schaltjahr (mod 100)
-- alle tausender sind wieder Schaltjahre (mod 400))