Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
Delphi 11 Alexandria
|
AW: Interne Arbeitsweise von Datenbanken für Dummies
16. Dez 2019, 13:02
Mir geht es mehr darum, mal so eine grundsätzliche Idee zu haben.
Mal ein Beispiel: Gegeben ist eine Anwendung mit ein paar Mio Datenobjekten, Personen, Konten, Überweisungen.
Die Objekte sind alle im Speicher in 3 Listen, natürlich mit gegenseitigen Referenzierungen.
Jetzt ist die Frage, wie man Transaktionen umsetzen kann und die Daten sicher speichert - ganz grundsätzlich.
Indizes zu berechnen ist wohl weniger das Problem.
Dazu wird eine neue Liste erzeugt, die die Ids der Objekte in einer anderen Reihenfolge speichert.
Für Transaktionen würde ich neue Listen erzeugen, die eine aufsteigende Transaktionsnummer verwalten und Objekte mit geänderten Daten oder einem Löschkennzeichen erhalten.
Unter Beim abrufen von Daten wird in den Originallisten gelesen und in der eigenen offenen Transaktionsliste. Fremde offene Transaktionslisten oder nachträglich committete fremde Transaktionslisten werden ignoriert.
Irgendwann müssen abgeschlossene Transaktionslisten in die Originalliste eingearbeitet werden.
Eine Speicherung auf die Festplatte ist natürlich auch notwendig, was nur stückweise erfolgen kann (also Tabelle löschen und komplett neu schreiben geht natürlich nicht).
Was ist aber, wenn in so einem Moment der Strom ausfällt.
Solche grundsätzlichen Dinge fände ich mal interessant.
|