Naja deine Frage ist etwas unkonkret, aber du wirst vermutlich die gespeicherten Daten zunächst von der Festplatte laden müssen um dann die geladenen Daten mit den neu von der Tastatur eingelesenen Daten vergleichen zu können
edit: und nach dem Vergleich kannst du dann eine aktualisierte Version speichern.
So dass deine "datenbank" quasi um die neu eingetroffenen Informationen (oder was daraus für die gesamtinformation folgt) erweitert worden ist
Manchmal ist es garnicht nötig / möglich jedesmal den gesamten Datensatz durchzusehen bei jedem aktuellen Vergleich
Um das anhand des Fischbeispiels und meiner glorreichen Durchschnittsberechnung zu erklären:
Natürlich könnte man jeden der jemals eingelernten Fische in einer Datei speichern
Bei Eingabe des 1001ten Fisches müsste dann aus allen 1000 bisher eingegebenen der Durchschnitt jeder Klasse ermittelt werden, um die Durchschnitte jedes Fischtypes mit dem 1001 Fisch zu vergleichen.
Der Aufwand steigt also mit der Anzahl der eingelernten Fische, weil die Durchschnittsberechnung länger dauert. Man spricht auch von der nicht wünschenswerten Eigenschaft "nicht-online-fähig" oder "nicht echtzeitfähig" zu sein. (Sofern es mal sehr sehr viele Fische werden, die die Rechengeschwindigkeit übersteigen). Bei "wenigen" Fischen kann man natürlich auch jedesmal neu rechnen.
Es genügt allerdings auch die Durchschnitte der Fischklassen und die Anzahl der jeweils in diese Klasse gelernten Fische zu speichern. So hätte man auch für den 1001 ten Fisch den selben Rechenaufwand wie für den 1002 - natürlich immer konstante Anzahl von Fischklassen vorausgesetzt. Das wäre dann "online" bzw rekursiv formuliert ohne Genauigkeits/Informationsverlust.
Bsp:
Wenn ein neuer 6ter Fisch mit Gewicht 16 ankommt, der Fischtyp 1 zugeordnet wird und anschließend auch die Durchschnittswerte der zugeordneten Klasse beeinflussen soll muss ich nicht wissen, dass die Gewichte 8, 9, 10, 11, 12 den Fischtyp1 ausmachen. Es reicht auch Durchschnitt=10, Anzahl=5 in der Datenbank. Mit 5*10+16=66 erhalte ich das selbe wie mit 8+9+10+11+12+16 um den neuen Durchschnitt 66/6 = 11 zu berechnen.
(Der neue Datenbankeintrag wäre dann natürlich Durchschnitt=11, Anzahl=6)
Es bleibt also die volle Information erhalten, weil eben der Durchschnitt auch ohne jeden einzelnen Datensatz errechnet werden kann, sofern ich den alten Durchschnitt und die Anzahl der dafür verwendeten Datensätze kenne.
Ähnliches beim
Kalman-Filter der immer nur Mittelwert und Kovarianz speichert - unabhängig davon, wie oft Daten eintreffen die die Zustands-Schätzung beeinflussen. Rekursiv hingeschrieben hat man bei konstanter Zustandsraum-Dimension also O(1) Komplexität für die Aktualisierung der Zustandsschätzung (unabhängig von der Anzahl der berücksichtigten Daten). Irgendwo hab ich gelesen, dass dadurch das Apollo-Programm erst möglich gewesen ist, weil damals Rechenkapazität (im Raumschiff?) tatsächlich sehr knapp war
