Hamster: vier kleine Gnome

Beitrag lesen

Was viele nicht wissen ist, dass wenn wir uns etwas ausdenken, bspw. ein irgendwie geartetes System, dass dann dieses System nicht nur in unserer Vorstellung als erdachtes System existiert, sondern als tatsächliches. Das glauben Sie nicht?

Ich nenne einfach mal ein Beispiel von dem ich zuverlässige Kenntnis habe, vor einigen Jahren hat Microsoft SQL als T-SQL spezifiziert und implementiert, nach und nach kamen u.a. die DDL- und die DML-Elemente hinzu und in der T-SQL Welt wurden diese Elemente als Gnome geboren.

Nach und nach füllte sich die Gnom-Welt und auch die Gnome INSERT, SELECT, DELETE und UPDATE kamen irgendwann hinzu. Und alle dort schon vorhandenen Gnome freuten sich über die neue Gesellschaft. Doch einer der neuen Gnome war sehr hässlich, es war der INSERT-Gnome. Der SELECT-Gnom war so mächtig, dass er mit einem

SELECT
 *
FROM
 DT1

ganze Tabellen abrufen konnte, zudem konnte er auch vertikal und horizontal filtern. Er war glücklich und angesehen. Dem DELETE-Gnom ging es ebenfalls gut, sein lauter Ruf

DELETE
FROM
 DT1

liess ganze Datentabellen leeren und auch er konnte mit seinem DELETE-Ruf einzelne Datensätze löschen, manchmal rief er sogar DELETE und kein Datensatz wurde gelöscht. Der dritte der glücklichen Gnome war der UPDATE-Gnome, sein

UPDATE
 DT1
SET
 DF1 = 'DF1_Value',
 DF2 = 'DF2_Value'

Ruf war mächtig und angesehen. Nur der Erstgeborene, der INSERT-Gnom war totunglücklich, doch warum? Sein

INSERT
 DT1
  (
  DF1,
  DF2,
  DF3
  )
 VALUES
  (
  'DF1_Value',
  'DF2_Value',
  'DF3_Value'
  )

Ruf schien doch mächtig und gut zu sein?

Leider war es der einzige Gnom über den die Entwickler immer schimpften und er hörte dieses Schimpfen, seine Syntax war einfach missraten. Immer wieder wurden von den Programmierern ungewollt falsche Datenwerte zugeordnet. Da half auch keine Verlagerung in den dicken stored procedures-Gnom. Manche T-SQL-Programmierer waren so verzweifelt, dass sie erst den INSERT-Gnom baten einen leeren Datensatz zu erstellen um ihn mithilfe des UPDATE-Gnoms zu befüllen. Wie demütigend! (Und auch wegen der oft verhandenen Fremdschlüssel-Wichte manchmal unmöglich.)

Warum konnte er nicht so sein wie der UPDATE-Gnom fragte er sich. Oder wie der Kollege aus der MySQL-Welt?

Der arme Kerl.