Datenbanken - Redundanz und Anomalie
Hi Leute,
habe vor paar Tagen angefangen mich mit dem Thema Datenbanken auseinanderzusetzen. Dabei bin ich auf relationale Datenbanken gestoßen. Dadurch sollen ja Redundanzen und Anomalien vermieden werden.
Der Teil mit den Redundanzen ist mir soweit klar. Nur mit der Anomalie komm ich nicht wirklich klar. Habe dazu folgende kurze Erklärung gefunden:
*gleiche Sacheverhalte werden unter unterschiedlichen Bezeichnungen dargestellt UND es gibt verschiedene Eintragungen für den selben Wert.
Ich hab mir das jetzt so erklärt, dass beispielsweise in einer Spalte der Vorname und in einer anderen Spalte Vor- und Nachnahme dargestellt wird. Aber was soll denn der zweite Teil der Erklärung bedeuten? Ich seh da gar keinen Unterschied :)
Vielleicht kann mir da ja wer von euch weiterhelfen :)
liebe Grüße
Rosenrot
2 Antworten
Anomalien kommen immer bei nicht normalisierten Datenbanksystemen vor.
Guck dir mal die Normalformen an.
Man unterscheidet die Insert, Update und Delete Anomalie.
Tabelle: HausBesitzer
Name Farbe Besitzer
Haus1 rot Hr Müller
Haus2 grün Fr Bauer
Haus2 grün Hr Bauer
Wie du siehst hat Haus1 nur einen Besitzer und Haus2 sogar zwei Besitzer.
Wird das Haus nun in "blau" gestrichen , müsstest du plötzlich zwei Datensätze "updaten".
Du kannst weiterhin kein Haus erzeugen ohne Besitzer. (Insert-Anomalie)
Jetzt lässt sich Herr Bauer leider scheiden. Dafür zieht Hr Schneider in Haus 2. Erneut hast du ein Problem weil du nur einen Teil löschen und updaten musst. (Lösch-Anomalie)
Man erzeugt damit immer redundante Informationen und ist nicht flexibel.
Lösung wäre Tabelle "Haus"
id Name
1 Haus1
2 Haus2
Weiterhin Tabelle Farbe
id name
1 grün
2 blau
3 rot
4 orange
Zwischentabelle HausFarbe
id haus farbe
1 1 2
2 2 1
Wenn sich nun die Farbe ändert, würdest du nur einen Wert ändern, nämlich den Code der Farbe.
Es gibt tausend Möglickheiten, etwas falsch zu machen. Dabei reicht es schon aus, Datenstrukturen so anzulegen, dass widersprüchliche Angaben möglich sind. Ob tatsächlich solche Fälle vorkommen, ist dabei nebensächlich. Es geht darum, die Datenbank-Struktur so zu gestalten, dass Widersprüche gar nicht möglich sind, z.B. dass Daten immer nur an einer Stelle gespeichert werden und bei Bedarf immer nur auf diese Stelle zugegriffen wird. Die relationale Datenbank ermöglicht solche Strukturen, kann aber nicht verhindern, dass diese Möglichkeit nicht genutzt wird.
Etwas mehrfach zu speichern ist Redundanz, ist inhaltlich deshalb aber nicht falsch. Anomalie ist außerdem widersprüchlich, nicht eindeutig. Muss nicht falsch sein, ermöglicht aber einen Widerspruch.
Redundanz im Zusammenhang mit Datensicherung ist hier nicht gemeint. Ebenso wenig das Speichern von Schlüsseln zum Zuordnen und Verknüpfen.