Never never ever ….

so oder ähnlich würde der Satz anfangen, wenn Tom Kyte die Datenbank gesehen hätte, die ich am Donnerstag abfragen durfte.
Ich durfte für eine „Behörde“ eine Datenbank-Abfrage entwerfen, damit eine Teilmenge der Daten zu einem TAPI-Server kopiert werden können.
Der Auftrag schien mehr als Trivial: Seitens des Software-Herstellers (welcher für die besagte Datenbank zuständig ist), gab es eine fertige SQL-Abfrage mit auf dem Weg. Im Idealfall wäre diese nur anzupassen.
Tja was soll ich sagen, es kam natürlich anders: Selbst der Hersteller scheint keine wirkliche Ahnung von seiner Datenbank (bzw. dessen Schema) zu haben.
Es fing schon mal damit an, dass der zu nutzende SQL-User keine Select-Rechte auf die entsprechenden Tabellen hatte …..
Aber was ich dann zu sehen bekam, war dann der Hammer:
– In der Datenbank gibt es keine Beziehungen zwischen den Tabellen, diese kennt nur die Anwendung.
– Leere Felder sich nicht mit „null“ belegt, sondern mit einem „Leerstring“; sind aber in der Datenbank „nullable“.
– Nachschlagefelder sind mit fixen Konstanten belegt (1=Herr, 2 =Frau..)
– Unique-Constraints wurden auch keine verwendet.
– Und die Dokumentation der Tabellen (vom Hersteller zur Verfügung gestellt) ist auch fehlerhaft.

Wie gesagt, der Hersteller hatte wohl auch keine Ahnung von dem Schema – anders war es nicht zu erklären, dass er auch „Unique“ ausging – wo diese nicht gegeben war … und mit „is not null“ gearbeitet hat – wo doch len(isnull(feld,“)) > 0 besser geeignet ist.

Hätte nie gedacht, so eine Datenbank bei einem Kunden dieser Größenordnung vorzufinden. Zumal diese Datenbank noch eine gewisse Größe hatte. Und dann noch der Hersteller der Software: Keine kleine Krauterfirma ….

Hier lautet meine Empfehlung: Diese Buch lesen und anwenden.

Advertisements

Ein Gedanke zu “Never never ever ….

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s