Registriert seit: 15. Mär 2005
672 Beiträge
FreePascal / Lazarus
|
Re: SQL (allg.): SELECT FIRST u.ä. oder <window clause>
15. Sep 2009, 10:48
ist kein vorwurf an dich, sondern eher ein hinweis auf eine gesunde Kritik gegenüber
sogenannter Standards.
Ganz einfache Frage: Wann ist beim Fußball abseits?
Ganz einfache Antwort: Abseits ist wenn der Schiedsrichter abseits pfeift, wer auch immer wann wo rumgestanden hat
Das Problem sieht man an so ziemlich jedem Wochenende im Fernsehen und es gibt ungeheuer schlaue Definitionen der FIFA, wann der Schiedsrichter denn Abseits pfeifen sollte. Genau wie die Interpretation des Schiedsrichters immer die Spielsituation beinhaltet und das was er dabei gesehen hat, ist es für den Programmierer: Wer etwas realisiert die zum Beispiel eine rows anweisung muss Freiraum zur Interpretation haben .
Beispiel:
select * from
(select * from Tab1 rows 1 to 10) t1
join (select * from Tab2 rows 11 to 20) t2 on t2.id=t1.id
rows 5 to 15
ist in Firebird eine gültige Anweisung, aber in welcher reihenfolge arbeitet man das ab? erst join, dann rows, erst rows, dann join, erst innere rows, erst externe rows, ....
Ein Programmierer einer Datenbankengine muss eine Entscheidung treffen und diese kann sich nachträglich durchaus mal als abweichend vom später definierten Standard zeigen. Wenn aber dann schon Benutzer die nicht standardkonforme Umsetzung nutzen und sich auf deren Verhalten verlassen, dann ist eine nachträgliche Anpassung an der sogenannten Standard eher kontraproduktiv.
Ähnlich wie der Schiedsrichter macht der Programmierer oft Tatsachenentscheidungen und die einfach mal so zu ersetzen schafft selten Vertrauen.
Nähe am Standard ist sowohl für Programmierer als auch für Schiedsrichter hilfreich, aber der Standard sollte kein Gefängnis sein.
|