Redundanz

Einführung

Laut Duden bedeutet das Wort Redundanz in der Deutschen Sprache, "... das Vorhandensein von eigentlich überflüssigen, für die Information nicht notwendigen Elementen". Der Begriff der Redundanz ist im normalen Sprachgebrauch durchaus gebräuchlich. Er beschreibt aber auch ein bestimmtes Phänomen in der Informatik.

Auch die Redundanz in der Informatik hat etwas mit einem Überfluss von etwas zu tun. Um genau zu sein, mit einer Überlänge in programmiertem Code oder überflüssigen Daten. Daten sind dann redundant, wenn sie ohne Informationsverlust weggelassen werden können.

Redundanz in der Programmierung

Um zu vermeiden, dass ein Algorithmus mehrfach (also redundant) implementiert werden muss, bietet die objektorientierte Programmierung die Möglichkeit, Algorithmen einmalig in einer Klasse zu definieren und sie dann immer wieder in unterschiedlichem Kontext zu verwenden. Dieser Ansatz wird durch das Konzept der Vererbung noch verstärkt.

Folgendes Beispiel soll das Verständnis fördern. Die Verfügbarkeitsprüfung (prüfeVerfügbarkeit()...) für einen Fuhrpark kann zentral in der Klasse Fahrzeuge definiert werden. Alle erbenden Klassen haben dann Zugriff auf diese Methode. Die Methode prüfeVerfügbarkeit() und der Algorithmus brauch nur einmalig implementiert werden; und zwar in der Klasse Fahrzeug. Würde man den Algorithmus der Verfügbarkeitsprüfung in mehreren Klassen (hier also Motorrad, PKW, LKW ...) implementieren, wäre das überflüssig und somit redundant.In der Programmierung führen Redundanzen zu Wartungsproblemen, denn der Algorithmus ist an mehreren Stellen anzupassen, falls sich eine Änderung der Logik ergibt. Neben dem erhöhten Aufwand für die Anpassung, steigt das Fehlerrisiko. Denn es ist möglich, dass Anpassungen des Algorithmus nicht vollständig und korrekt in allen Implementierungen umgesetzt werden.

Redundanz in der Datenhaltung

In der Entwicklung von relationalen Datenbanken gilt es, Redundanzen möglichst vollständig zu vermeiden, da diese zu einem höheren Speicherplatzbedarf und zu Inkonsistenzen führen können. Redundanzen sind die Ursache für Anomalien. Redundanzfreiheit gilt als Grundprinzip für ein logisches Datenmodell.

Durch Normalisierung des Datenbankschemas können Redundanzen weitgehend vermieden werden. Es gibt Redundanzen, die in Kauf genommen werden, weil deren Vermeidung einen zu hohen Aufwand im Verhältnis zu ihrer Problematik darstellen würde, wie zum Beispiel die doppelte Speicherung des Namens Müller für Herrn Müller und für Frau Müller. Die absichtliche Inkaufnahme von Redundanz nennt man Denormalisierung.

In der folgenden Tabelle wird der Kunde Max Meier redundant gespeichert. Eine Referenz auf den Kundendatensatz würde den Speicherbedarf reduzieren. Die Verwaltung dieses Kunden in x-Datensätzen kann zu Anomalien führen.