Antje Hofmann: Datenhaltung als XML oder in Datenbank oder beides?

Hallo Forum,

ich arbeite gerade an der Konzeption eines Projektes und überlege, wie am günstigsten die Datenhaltung durchzuführen ist.

Der Datenbestand besteht aus folgenden Gruppen:

Identifikationsmerkmale --> diese Daten ändern sich hin und wieder und werden mehrfach verwendet

Ein Identifikationsmerkmal kann mehrere Inhalte haben.

Inhalte --> diese Daten werden selten geändert

Ein Inhalt kann immer nur ein Identifikationsmerkmal und eine Anzeigeinformation haben.

Anzeigeinformationen --> diese Daten ändern sich häufig und enthalten Datumsfelder, welche regelmäßig abgefragt werden

Eine Anzeigeinformation kann immer nur einen Inhalt haben.

Anhand der Anzeigeinformationen bestimmt das System, welche Daten wann angezeigt werden. Das bedeutet, bei jedem Aufruf der Seite werden diese abgefragt. Je nach Ergebnis werden bestimmte Identifikationsmerkmale und die Inhalte angezeigt.

Was ist nun günstiger, wenn man eine rege Nutzung des Angebotes und einen mittelgroßen Datenbestand voraussetzt?

Alle Daten in die Datenbank stopfen?

Wie das geht weiß ich :-) und auch wie man das am günstigsten löst. Allerdings gefällt mir dieser Ansatz nicht so, weil ich relativ viele statische Inhalte habe.

Alle Daten als XML-Datei(en) halten?

Hier gibst bei mir eine echte Wissenlücke. Wie schnell kann ein XML-Datenbestand nach bestimmten Kriterien durchsucht und gefiltert werden? Wie performant sind Änderungen am Datenbestand?

Eine Kopplung der Datenhaltung?

Die Anzeigeinformationen kommen in die Datenbank und der Rest ins XML. Rein gefühlsmäßig würde mir diese Lösung mehr zusagen. Der Nachteil ist, dass z.B. die Informationen verteilt sind.

An sich eine simple Aufgabe. Ich möchte jedoch meinen Vorschlag begründen können und auch die Gründe für die Ablehnung solide erläutern können. Es ist schließlich nicht sehr glaubwürdig zu sagen, Entscheidung fiel nach Gefühl. ;-)

Seid so nett und schließt meine Wissenslücke bezüglich XML und äußert, wie ihr das Problem angehen würdet.

Viele Grüße

Antje

  1. Hi,

    Alle Daten als XML-Datei(en) halten?
    Hier gibst bei mir eine echte Wissenlücke. Wie schnell kann ein XML-Datenbestand nach bestimmten Kriterien durchsucht und gefiltert werden? Wie performant sind Änderungen am Datenbestand?

    ein wesentlicher Faktor hierbei ist, ob Du diese Daten persistent im Speicher halten kannst (Shared Memory, dauerhaft laufende Applikation usw.). Wenn dem so ist, lohnt es sich, die Daten einmalig zu analysieren und (z.B.) als Objektstruktur zu halten.

    Kannst Du das nicht, hängt es u.a. von der Datenmenge (je mehr, desto DB), der Zugriffsmenge (je mehr, desto XML) und der Zugriffszeit auf die DB (je schneller, desto gut - von einem DB-seitigen Caching gehe ich aus) ab.

    Eine Kopplung der Datenhaltung?

    Kommt drauf an, wie unterschiedlich die Daten semantisch, vom Aufbau her und von den Zugriffsbedingungen sind. Bei doch eher ähnlichen Eigenschaften würde ich aus Wartbarkeitsgründen auf eine solche Verteilung verzichten.

    HTH :-)

    Cheatah

    1. Hallo Cheatah,

      ein wesentlicher Faktor hierbei ist, ob Du diese Daten persistent im Speicher halten kannst (Shared Memory, dauerhaft laufende Applikation usw.). Wenn dem so ist, lohnt es sich, die Daten einmalig zu analysieren und (z.B.) als Objektstruktur zu halten.

      Kannst Du das nicht, hängt es u.a. von der Datenmenge (je mehr, desto DB), der Zugriffsmenge (je mehr, desto XML) und der Zugriffszeit auf die DB (je schneller, desto gut - von einem DB-seitigen Caching gehe ich aus) ab.

      danke für deine Antwort. Ich habe mich letzten Endes nach Durchdenken der Randbedingungen für XML entschieden und die anderen Möglichkeiten nur erwähnt. Ein wesentlicher Grund für diese Entscheidung war, dass die meisten Dokumente eh als XML-Dokumente gehalten werden und es kein Problem ist, das Ganze auch zu cachen.

      Viele Grüße

      Antje