warum sind Redundanzen und Dateninkonsistenzen für eine Datenbank schädlich?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Dateninkonsistenzen sind böse, weil woher soll der Computer denn dann wissen, welche Daten richtig sind... daher versucht man so etwas, z.B. über Fremdschlüssel, tunlichst zu vermeiden.

Redundanzen (also das mehrfache Speichern von Daten) erhöhen den Aufwand und die Größe der Datenbank. Zumal sichergestellt werden sollte, immer alle zu aktualisieren, damit es eben nicht zu Inkonsistenzen kommt. Allerdings kann es hier Ausnahmen geben. Zum Beispiel wenn Daten zwar eigentlich abhängig von anderen Spalten sind, aber aufwendig berechnet werden müssen, ist es manchmal sinnvoll, das berechnete Ergebnis zusätzlich in der Datenbank zu speichern und nur bei einem INSERT / UPDATE die Berechnung durchzuführen, wenn diese häufig abgerufen werden, aber nur selten aktualisiert.

Simples Beispiel:
Bei einem nicht genannten Versender wird nur ein Eintrag für die Firma als Kunde mit Adresse, Ansprechpartner, etc. geführt. Bestellt Abteilung A des Kunden etwas bei dem Versender, und danach Abteilung B, landen beide Bestellungen bei B. Ist unschön, wenn Abteilung A und B noch verschiedene Adressen haben :(

Woher ich das weiß:Studium / Ausbildung – Informatiker

Redundant ist zum Beispiel du speicherst etwas unnötig Öfter ab.

Dateninkonsistenz kann zu Fehlern bei Abfragen führen. Irgendwelche Scripts können deswegen failen. Primary/Foreign Keys können falsch Gesetz sein etc.

Ist alles nicht wofür eine Datenbank sein soll.

Aber natürlich ist das bei Jeder Datenbank Art anders.

NoSql Datenbanken.
Key Value stores.

Graph Datenbanken

usw. Alle haben ihre eigenen Merkmale und Eigenschaften.

Dateninkonsistenzen verfälschen oder erschweren die Auswertung der Daten und Redundanzen verlängern Such- und Aktualisierungszeiten.

Je größer eine Datenbank wird, umso länger dauert das Speichern. Wenn viele redundante Datensätze vorhanden sind, wird unnötig Zeit vergeudet. Außerdem besteht die Gefahr, dass man mehrdeutige Ergebnisse erhält.