Manchmal sind bei den wirklich guten und vielgelesenen Weblogs tatsächlich die Diskussionen spannender als der Beitrag selbst. Gerade eine solche bei kottke.org gefunden (der ja immer für ein bisschen schicke Provokation gut ist): Normalized data is for sissies. Die Headline stammt aus einer Präsentation von Cal Henderson über Flickr (sehr lesenswert übrigens):
I was delighted when I read Cal Henderson's take on normalized data from a recent talk he gave about Flickr (from page 27):Stimmt alles - und ist völliger Bullshit! Es illustriert aber wunderschön die "Ich-bring-mir-das-alles-selbst-bei"-Mentalität bei der Web-Entwicklung, die nicht nur für private Websites gilt sondern mit der (hochintelligente) relativ junge, vorwiegend männliche Quereinsteiger auch riesige Software-Plattformen aufbauen.- Normalised data is for sissies
- Keep multiple copies of data around
- Makes searching faster
- Have to ensure consistency in the application logicTo which I would add: hard drives are cheap.
Normalisierung (Entfernung von Redundanzen) ist eines dieser typischen Konzepte, die zunächst lästig sind und erst auf lange (oder zumindest mittlere) Sicht Nutzen bringen. Und das ist ein Ansatz, der testosterongesättigten (post)pubertären Softwareentwicklern naturgemäß zutiefst zuwider ist. (Ist übrigens nicht bös gemeint; ich war auch so und bin es oft heute noch.)
Was mir trotzdem an diesem Beitrag und den Kommentaren so gut gefällt? Weiterlesen ...
Wie viele der Kommentaren dem guten Jason relativ schnell mitteilten, hat Normalisierung wenig mit Sparsamkeit im Hinblick auf Festplatten zu tun und viel mehr mit Zuverlässigkeit, Korrektheit, Robustheit, Wartbarkeit etc. von Applikationen. Und außer einem Informatikstudenten, der das Konzept gerade voller Begeisterung erstmalig kapiert hat, wird auch niemand sagen "normalize or die!".
Jeder erfahrene Praktiker wird ein Datenmodell zunächst ordentlich normalisieren und dann - abhängig von der konkreten Anwendung - performanceverbessernde Redundanzen wieder einbauen - also de-normalisieren wo nötig. Wobei es mehr als "sinnvoll" ist, diese Redundanzen sehr sauber zu markieren und zu dokumentieren. Denn die Nutzung der Daten mag sich später einmal ändern und dann sind u.U. andere Redundanzen notwendig (und die alten überflüssig). Aber das alles ist furchbar abstrakt und für Nicht-Informatiker völlig uninteressant. Themawechsel.
Viel spannender sind die Rollen, die die Diskutanten einnehmen. Abgehärtete, abgeklärte (teils arrogante) Profis gegen aufmüpfige Halbstarke. Am schönsten illustriert das das folgende Zitat:
The thing is, there isn't a tremendous amount of room for creativity in database design. Most of the problems have not only been solved, they've been solved for 25 or 30 years.Yep! Ist wohl wirklich so. Aber, wer liest schon gerne die dicken alten Schwarten zu dem Thema (z.B. Codd oder Date; sind meist auch schlecht bebildert), wenn es viel mehr Spaß macht, eine eigene Lösung zu entwickeln, die viel "besser" ist - und man es dabei den alten Fürzen (und Weicheiern) auch noch mal so richtig zeigen kann?
Ich gebe zu, dass ich mich damit jetzt sehr auf die Seite der alten Fürze stelle. Sorry! Was die alten Fürze umgekehrt nicht kapieren (ist ja auch wirklich schwer, nicht?), ist, dass sie es hier mit dem ungestümen Nachwuchs zu tun haben, und dass sie selbst auch einmal so waren. Jede Generation von Handwerkern muss die eigenen Fehler machen und mindestens einmal selbst auf die Schnauze fallen, bevor sie beim Meister um Rat fragt (zumindest scheint mir das bei Männchen so zu sein). Das ist so! Und, wenn es nicht so wäre, kämen niemals neue Ideen in die Welt.
Vielleicht das schönste an der Diskussion ist Kottkes knurrige Reaktion auf all die öffentlichen Nackenschläge (ginge mir echt nicht anders) und der folgende Aphorismus von Ryland Sanders:
By the way, what happens when a blogger changes his or her opinion?OK, ist geklaut ... aber trotzdem schön!There is a theory which states that if any blogger discovers that he is wrong and changes his opinion, that he will instantly disappear and be replaced by another blogger that is even more bizarre and inexplicable. Then there is a theory which states that this has already happened.
Hehe, das ist ein abgewandeltes Douglas Adams Zitat, aber passt irgendwie. *G*
Ich kann dem noch eine eigene Anektode hinzufügen, aus einer Informatik-Vorlesung zu Anfang des Studiums. Es ging um Suchalgorithmen, und deren Effizienz. Es ist IMHO schon recht aussagekräftig, dass es mehrere Leute gab die einen "neuen" Algorithmus entwickelten der "intuitiv eigentlich besser" sein sollte als Quicksort. Einziges Manko war, dass sich die neuen Algorithmen häufig als eine Implementierung von BubbleSort herausstellten (das ist einer der Algorithmen die in keiner Situation Vorteile haben, und daher eigentlich nie Anwendung finden sollten, weil es immer einen besseren gibt). *G*
Stime dir also zu, dass es a) durchaus Sinn macht die alten Fürze zu lesen und b) dass Mancher manche Experimente/Fehler einfach mal selber machen muß, weil er dann die Lehren der alten Fürze sehr viel besser versteht.
Posted by: Sencer | Thursday, 28 October 2004 at 11:25
das schöne an bubblesort ist nun mal, dass der algorithmus so leicht zu verstehen, zu merken und zu implementieren ist - und meist bei kleinen apps auch nicht weh tut.
das schwierige, begeisterten newcomern zu vermitteln, dass manche aufgaben nicht effizienter zu lösen sind (nein, nie, nicht, niemals und so auch nicht), ist das mangelnde verständnis für mathematische beweisführung, das ohne ein paar semester mathe/theoretische informatik meist nicht vorhanden ist. für einen jungen (männlichen) menschen, der die welt erobern möchte, ist schwer zu verstehen, das irgendetwas "wirklich nicht geht". nein, wirklich nicht. aber knuth oder gödel sind doch einfach alte säcke, denen der mumm in den knochen fehlte und inzwischen gibt's doch neue programmiersprachen ... nee, kinners geht nicht. ist wie das perpetuum mobile (aber auch da soll's ja immer wieder "erfinder" geben ...)
Posted by: Markus Breuer | Thursday, 28 October 2004 at 11:43
Mir fällt gerade noch ein aktuelles Beispiel aus. Siehe den ersten Kommentar hier:
http://bodyandsoul.typepad.com/blog/2004/10/are_iraqis_bett.html
===
There have been three secretaries of war/defense throughout American history that have proven disastrous to our national interest—Edwin Stanton in the American Civil War, Robert McNamara in Vietnam, now Donald Rumsfeld in the Iraqi war. All three were high energy, overpowering personalities who viewed the military establishment of their day as old fashion and inefficient. All were convinced that they knew better than military professionals as to how a modern war should be conducted, and because of their dynamism were able to convinced inexperienced national chief executives the “wisdom” of their ways.
Each of these politicians believed wholeheartedly in the idea that they only need apply their special genius for efficiency upon a sleepy military enterprise and a war could be won quickly on the cheap. (Solving complex problems quickly on the cheap tends to be a knee-jerk inclination of politicians in any age.) Brushing aside the wisdom, as well as the outmoded thinking of the military brass, these civilian hot shots ended up committing the worst military error possible, bringing to little to late to the battlefield, a method of engagement that leads either to outright defeat or to a horrible and needless extension of the death and destruction of war.
===
Es gibt auch alte Fürze die nicht auf alte Fürze hören...
Posted by: Sencer | Friday, 29 October 2004 at 11:01
noch ein erklärungsversuch für diesen scheinbaren widerspruch:
es gibt auch alte fürze, die innerlich testosterongesteuerte halbstarke geblieben sind;
boys will be boys und so ...
rumsfeld "civilian" zu nennen, stimmt aber glaub' ich nicht. der war marineflieger oder so.
schöne quelle ansonsten. danke!
Posted by: Markus Breuer | Friday, 29 October 2004 at 11:09
Fragen von Menschen Typ Sekretärin, Azubis oder Ingenieuren nach "Machen Sie eigentlich auch Access-Schulungen" beantworte ich regelmäßig mit "nein, ich habe zu oft unter Ergebnissen zu leiden gehabt, wie bei Ihnen wahrscheinlich rauskommen würden".
Selbst wenn man versuchen würde, ihnen Normalisierung zu erklären ...
Posted by: Nicole | Friday, 29 October 2004 at 14:36