Datenverlust in Datenbank vorbeugen

1 Antwort

Es gibt unter den meisten SQL Systemen Transaktionen. Dort kannst du zum Beispiel festlegen wann eine Folge von Anweisungen beginnt und endet. Sollte dazwischen etwas passieren kannst du die ganze Transaktion wider rückgänig machen.

http://de.wikipedia.org/wiki/Transaktion_%28Informatik%29

An sonsten mach dir da nicht so viele Gedanken und lass es in den Standardeinstellungen. Wie du oben schon geschrieben hast ist es wichtig regelmäßig Backups zu machen. Sollte mal was passieren dann kannst du von diesem aus etwas einspielen bzw. in der Datenbank manuell Reperaturen ausführen und dein Problem suchen und dich weiter belesen.

Oh, vielen Dank für den Link und die Tipps. Ich werde auf jeden Fall schauen, die Transaktion irgendwie in das Script eingebaut zu bekommen. Das sorgt ja dann, wenn ich es richtig verstanden habe dafür, dass eine Aktion entweder ganz oder eben gar nicht durchgeführt wird.

Ich frage mich nur, ob es potenziell möglich wäre, dass wenn mehrer User auf den selben Wert in der Datenbank zugreifen, möglicherweis zwei sogar diesen Wert gleichzeitig modifizieren wollen, ob die Aktionen dann nacheinander und reibungslos ausgeführt werden (einer also in Warteposition steht), oder ob einfach ohne Rücksicht auf Verluste gleichzeigtig gelöscht und geschrieben und was weiß ich nicht noch alles wird, und am Ende nur Müll bei rauskommt oder sogar alle Daten weg sind.

1
@itsstupid

Dafür ist doch das Datenbank Management System da, dass eben solche Fehler beim Schreiben und Löschen nicht passieren. Was mir grad einfällt ist, dass wenn du viel mit Einschränkungen wie Primärschlüssel, Fremdschlüssel und den kleinsten Datentyp wählst (nicht die Größe sondern Art der Daten), kannst du so bei Programmierfehlern vorbeugen, dass die Dankenbank inkonstitent wird. Solltest du genauere Fragen zu Beispielen oder weiteren Sachen in Richtung Datenbank haben, dann sollten wir das am besten mal nicht hier in der Frage machen.

1