Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03365.jsonl.gz/97

Datenbanken sind meist sehr komplexe Gebilde, das weiss ich aus meiner eigenen Programmiertätigkeit. Dabei besteht eine Datenbank nicht nur aus gespeicherten Daten, sondern auch daraus, wie mit den Daten umgegangen wird.
So muss unter anderem sichergestellt werden, dass die Art der Inhalte korrekt sind. So kann z.B. geprüft werden, ob bei einer eMail die Syntax korrekt ist, ob bei einem numerischen Wert auch wirklich nur Ziffern enthalten sind, ob bei einer Postleitzahl nicht mehr als 4 Ziffern enthalten sind.
Eine heikle Angelegenheit sind Angaben, die jeweils nur in einem einzigen Datensatz vorhanden sein dürfen. Für eine DatensatzID, die man z.B. zum Verknüpfen von weiteren Daten verwenden kann, verwendet man einfach nur eine fortlaufende Nummer, die das System automatisch vergibt, ohne spezielle Programmierung.
Heikel wird es dann, wenn eine z.B. eine Nummer jeweils nur in einem einzigen Datensatz vorkommen darf. Wenn Doubletten (also die selbe Nummer in 2 Datensätzen) zu erheblichen Fehlern führt, und dies bei einer Datensatzmenge >1 Mio. täglich mehrfach vorkommen dürfte, dann verstehe ich einfach nicht, wenn man dies nicht mit technischen Mitteln verhindert. Studierte Informatiker sollten das doch auf die Reihe kriegen, oder programmiert die Putzfrau?
Das ganze ist doch simpel einfach. Wenn ich von Hand oder über einen automatischen Prozess in einem solchen Feld den Wert ändere (oder einen neuen Datensatz hinzu füge), dann muss ich nur mit einer einfachen Datenbankabfrage nach einem Datensatz suchen, der den einzutragenden Wert hat. Ergibt die Abfrage keinen Treffer, kann der Wert gespeichert werden. Bei einem Treffer muss der Vorgang abgebrochen werden und eine Fehlermeldung ausgegeben werden. Das ist jetzt wirklich nicht schwer.
Das mache ich auch dann, wenn ich den jeweiligen Wert zufällig generiere. Sicher ist sicher. Ich habe keine IT Ausbildung, aber ich kann das. Muss man einfach nur etwas logisch denken.