 |
(11.08.04 21:50)
Abstraktion – die Kunst des Weglassens - ist etwas sehr Nützliches. Sie hilft uns, zu einfachen und verständlichen Lösungen zu kommen. Doch ist mehr Abstraktion nicht unbedingt besser. Ab einem bestimmten Punkt, führt zu viel Abstraktion zu ungewollter Komplexität und verringert damit die Verständlichkeit.
Abstraktion ist ein geeignetes Mittel, um die vielen Problemen inne wohnende mengenmässige Vielfalt in den Griff zu bekommen. Abstraktion hilft uns zum Beispiel, Redundanz zu vermeiden. Das leuchtet im Grundsatz ein und ist erstrebenswert. Es stellt sich aber die heikle Frage, wie umfassend Redundanz mit Hilfe von Abstraktion vermieden werden kann beziehungsweise soll.
Ein Beispiel aus dem Bereich Datenmodellierung: Bei konsequenter Abstraktion und Normalisierung eines relationalen Datenbankschemas landen wir – unabhängig von der Problemstellung - unweigerlich bei einer universellen Stückliste, die es erlaubt, alle Elemente über eine Beziehungsmenge untereinander ohne Schaffung von inhaltlicher Redundanz zu verknüpfen und sogar den nahtlosen Übergang von der konkreten zur Meta-Ebene ermöglicht. Das Problem: Eine solche Struktur ist aus vielen Gründen praktisch unbrauchbar. Zwar ist die Struktur an sich einfach und auf das absolut Wesentliche reduziert; wir können also mit Fug und Recht behaupten, strukturell die maximale Abstraktion erreicht zu haben. Doch haben wir damit auch eine leicht verständliche Lösung geschaffen?
Die Stücklisten-Struktur an sich ist einfach und leicht zu verstehen. Wir könnten also versucht sein zu glauben, dass wir die Komplexität erfolgreich gebannt haben. Doch leider haben wir sie lediglich von der strukturellen auf die inhaltliche Ebene verschoben. Dabei geht einer der wesentlichen Vorteile guter relationaler Modelle verloren, nämlich die Möglichkeit, die relationale Beziehungssemantik als ordnenden Rahmen zur Datenstrukturierung zu verwenden. Die relationale Semantik erlaubt es uns, einfach und elegant, gültige Daten-Relationen zu beschreiben und darauf aufbauend deren Konsistenz zu überprüfen, vorausgesetzt, das Datenmodell ist in der dritten Normalform und verwendet das Konzept des Homomorphismus, um Konsistenzbedingungen mit Hilfe eingeschränkter Beziehungen zu beschreiben.
Obwohl die universelle Stückliste ein gültiges relationales Modell ist und in der dritten Normalform vorliegt, können wir die Vorteile eines relationalen Modells nicht mehr für uns nutzen. So landen praktisch sämtliche Plausibilisierungen, die dafür sorgen, dass nur sinnvolle Verknüpfungen zwischen Elementen vorgenommen werden können, vollständig in der entsprechenden Zugriffslogik, die zudem wesentlich umfangreicher ausfallen wird, da eine grosse Menge an Datenmanipulations-Code (Insert, Update und Delete) nötig wird. Etwas so einfaches wie eine Anschrift mit Strasse, Hausnummer und Verweis auf eine Ortschaft ist in der Stücklistenlösung verwaltungstechnisch bereits enorm aufwendig, da ja u.a. auch die Attribute der Anschrift als Einzelelemente in der Stückliste hinterlegt werden müssen, während in einem weniger abstrakten Modell wohl eine Entitätsmenge (Tabelle) Anschrift mit entsprechenden Attributen definiert und mit Hilfe weniger SQL-Befehle zu bewirtschaften wäre. Ein weniger abstraktes Modell hätte hier also enorme Vorteile.
Die Frage ist somit nicht, ob Abstraktion etwas Gutes oder Schlechtes ist. Es geht vielmehr darum, das geeignete Mass an Abstraktion zu finden. Ich habe bereits früher – allerdings unter einem etwas anderem Blickwinkel – darauf hingewiesen, dass abstrahieren mit Mass enorm wichtig ist, wenn wir verhindern wollen, dass Abstraktion zur Sinnentleerung wird.
-nemo :-)
Über diesen Artikel diskutieren.
|
 |