Hi Michael,
wer analysieren kann, ist klar im Vorteil ;-)
Wenn wir zu beiden Aussagen entsprechende Faktoren bestimmen können (aus einer statistischen Analyse der konkret vorliegenden Daten), würden wir ein Verhältnis zwischen Leseoperationen (1 * 1) und Schreiboperationen (x * y) bestimmen können.
Warum (1 * 1) zu (x * y) und nicht 1 zu x (1 Schreiboperation auf x Leseoperationen)? Der resultierende Quotient stellt nach meinem Verständnis doch bereits ein mögliches Maß für eine Gewichtung dar. Warum multiplizierst Du hier zusätzlich?
Irgendwie scheint dies nahezulegen, daß wir durchaus daran interessiert sein sollten, die Lesekosten niedrig zu halten, und zwar gerne auch auf Kosten höherer Schreibkosten.
Die textuelle Erklärung leuchtet mir ein ;-)
Genau das leistet ein Indexbaum einer relationalen Datenbank im Vergleich zu einer sequentiellen Datenspeicherungsform (wie sie sowohl einer XML-Datei als auch der Archiv-Suche zugrunde liegt). Nehmen wir mal die Kostenrechnung für einen Suchvorgang:
- Bei der sequentiellen Anordnung sind die Kosten beim Schreiben in
der Größenordnung O(1) - es wird genau ein Datensatz geschrieben.
O(1), weil Du 1 Schreibvorgang zu n Lesevorgängen in Beziehung setzt?
Die Kosten beim Lesen sind dagegen O(n) bei n Datensätzen, also
linear.
- Bei der Indexstruktur ist das Schreiben viel teurer - jeder neue
Datensatz muß in einen sortierten Baum eingefügt werden! Das kostet
O(log (n)). Umgekehrt ist allerdings das gezielte Lesen sehr billig
- über den Sortierungsbaum kann mit ebenfalls O(log n) jeder ge-
wünschte Datensatz herausgesucht werden.
Was ist der Unterschied zwischen O(log (n)) und O(log n)? - keine Steinigung bitte ;-)
...... Aber wie Frank völlig richtig sagte: "Lineare Faktoren sind Schall und Rauch" -
Sagte er nicht: "Konstante Faktoren sind Schall und Rauch"?
Viele Grüße,
Martin