Redundanz

Aus FLBK-Wiki
Version vom 23. Februar 2026, 09:08 Uhr von Flbkwikiadmin (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „'''Redundanz''' (von lateinisch ''redundare'' „überfließen“) bezeichnet in der Informatik das mehrfache Vorhandensein derselben Informationen oder Codefragmente innerhalb eines Systems. Während Redundanz in der Übertragungstechnik (z. B. Prüfsummen) zur Fehlersicherheit erwünscht sein kann, ist sie in der Softwareentwicklung und Datenbankentwicklung meist ein Zeichen für schlechtes Design. == Gefahren von Redundanz == Das Ha…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Redundanz (von lateinisch redundare „überfließen“) bezeichnet in der Informatik das mehrfache Vorhandensein derselben Informationen oder Codefragmente innerhalb eines Systems. Während Redundanz in der Übertragungstechnik (z. B. Prüfsummen) zur Fehlersicherheit erwünscht sein kann, ist sie in der Softwareentwicklung und Datenbankentwicklung meist ein Zeichen für schlechtes Design.

Gefahren von Redundanz

Das Hauptproblem von Redundanz ist nicht der zusätzliche Speicherplatzbedarf, sondern die Gefahr von Inkonsistenzen.

  • Inkonsistenz: Werden Daten an einer Stelle geändert, aber an einer anderen (redundanten) Stelle vergessen, widersprechen sich die Informationen. Das System ist nicht mehr verlässlich.
  • Wartungsaufwand: Bei Code-Redundanz muss ein Fehler in jedem Duplikat einzeln korrigiert werden. Dies ist fehleranfällig und zeitintensiv.
  • Komplexität: Programme werden unnötig aufgebläht und sind schwerer zu verstehen.

Redundanz in der Programmierung (Code-Redundanz)

In der Softwareentwicklung folgt man dem Prinzip DRY (Don't Repeat Yourself). Code-Redundanz entsteht oft durch „Copy & Paste“-Programmierung.

Vermeidung durch Methoden

Anstatt denselben Algorithmus mehrfach zu schreiben, wird der Code in eine Methode ausgelagert und bei Bedarf aufgerufen.

Vermeidung durch Objektorientierung

Die Objektorientierte Programmierung bietet mächtige Werkzeuge zur Redundanzvermeidung:

  • Kapselung: Daten und Funktionen werden sinnvoll in Klassen gebündelt.
  • Vererbung: Gemeinsame Merkmale von Klassen werden in einer Oberklasse definiert, sodass sie in den Unterklassen nicht erneut implementiert werden müssen.
  • Abstrakte Klasse: Hier werden Grundstrukturen vorgegeben, die von verschiedenen Unterklassen genutzt werden, ohne den Code doppelt zu führen.

Redundanz in Datenbanken

In relationalen Datenbanken wird Redundanz durch den Prozess der Normalisierung minimiert. Ziel ist es, jedes Faktum nur genau einmal in der Datenbank zu speichern.

  • Anomalien: Redundante Datenbestände führen zu Einfüge-, Lösch- und Änderungsanomalien.
  • Lösung: Aufteilung der Daten in mehrere Tabellen, die über Primär- und Fremdschlüssel miteinander verknüpft sind.

Zusammenfassung

Gute Softwarearchitektur zeichnet sich dadurch aus, dass Informationen und Logik einmalig und eindeutig definiert sind. Dies erhöht die Wartbarkeit, die Testbarkeit und die Zuverlässigkeit des gesamten Systems.