Na, dann kennst du jetzt mindestens einen (unsere externe
Firma übrigens auch ent, wobei deren Qualität auch wirklich
net hoch ist ;o))
War das nicht mein Reden?
Naja, zumindest verlieren die nicht bei 5 (!!) Tabllen den
Überblick ;o))
Unterscheide Tabellenanzahl und Datensatzanzahl. Das mit den fünf miteinander verbundenen Tabellen hast Du soweit verstanden, hoffe ich. Fülle jede Tabelle mit 5000 Datensätzen (wir wollen Dein Access ja nicht überstrapazieren), lösche wahllos ein, zwei Datensätze raus und sag mir morgen, wo die Inkonsistenz in der Datenbank ist. Wie lange brauchst Du dafür?
Naja, zumindest da sind wir uns einige, denn ein „normiertzes“
Datenmodell ist in der Regel in der Praxis völlig
blödsinnig…
Wenigstens das. Ja.
Wen man ein Programm sauber programmiert hat braucht man
keinerlei referentielle Integrität bis zu einer gewissen
Größenordnung.
Mein Reden. Bis zu etwa „Hello World!“. Schreibst Du
Programme, die Du anwendest, oder muss ein DAU damit arbeiten
können?
Naja, wenn das bei dir bei 5 Tabellen schon einen Unterscheid
macht ;o))
Wie gesagt: Die Komplexität einer Datenbank definiert sich anders. Du wirst auch irgendwann dahinter kommen.
Aber noch mal die Frage: Wer arbeitet mit Deinen Programmen?
Und was glaubst Du, wie lange ein solcher braucht, um
die Daten in einen zumindest theoretisch inkonsistenten
Zustand zu bringen?
Naja, wenn das bei deinen Programmen so schnell geht …
Nein, bei meinen Programmen passiert das nicht. Und auch dann nicht, wenn der Kunde nach fünf Jahren bei einem Uralt-Projekt in kurzer Zeit massive Änderungen drin haben will. Ich baue die Änderungen ein und muss nicht an allen möglichen Stellen meine Datenkonsistenz überprüfen. Das Datenmodell macht das für mich.
Und wie lange brauchst Du, um
Aktualisierungs- und Löschweitergabe zu programmieren, ohne
die Funktionen zu verwenden? Mit dem Setzen von zwei Kreuzchen
brauche ich ungefähr 5 Sekunden.
und wieviele Daten hast du so schon gelöscht, wenn für dich
schon sageundschreibe 5 Tabellen eine Herausforderung
bedeuten???
Willst Du 'ne Datensatzanzahl oder 'ne Speicherangabe? Und was geilst Du Dich an den 5 Tabellen auf? Ich glaube, Du verstehst nicht, wovon ich rede. Ach ja:
Wie lange brauchst Du noch mal, um
Aktualisierungs- und Löschweitergabe zu programmieren, ohne
die Funktionen zu verwenden?
Sorry, aber wenn du bei 5 Tabellen den Überblick verliert
gehörst du net zu guten Programierern sondeern eher zu den
DAU`s… mahc dich angegriffen fühlen, aber wer bei 5 Tabellen
schon von Herausforderung spricht oder den Überblick verliert
sollte nun wirklich die Klappe halten wenn Profis sich
äußern!!
Tststs. Muss fast sagen: „Ich weiß, Du verstehst…“.
Von daher macht es gerade für Anfänger wenig sinn dies zu
benutzen.
s. o. … lern noch ein Bisserl, dann reden wir weiter…
… Weiter geht’s: Über was wollen wir reden? Mach mal einen, zur Abwechslung kompetenten, Vorschlag.
Gerade Anfänger sollten so etwas benutzen. Später wird nämlich
das Geschrei groß, wenn Fehler auftauchen oder Daten
vermeitnlich nicht mehr da sind. Und diese dann überall
abzufangen, wird richtig unlustig. Ein sauberes
Datenbankdesign erleichtert das Umsetzen der Schnittstelle
ungemein.
Wie gesagt… ab ner gewissen Grenze sicherlich, aber wer
schon bei 5 Tabellen Probleme bekommt brauch über sowas net
mitreden!
Ja, ja, ich habe es begriffen, dass Du es nicht hast.
Wie gesagt: Programmierst Du für Dich oder Anwender? Und die
fühlen sich nicht in Datenbanken wohl. Die wollen in Formulare
was eingeben und wo anders die Daten wiederrauspurzeln sehen.
Und die wollen auch nicht manuell irgendwelche Leichen in der
Datenbank oder, schlimmer noch, falsche und/oder nicht mehr
auffindbare Daten drin haben, weil eine Aktualisierung nicht
funktioniert hat.
Falls du es noch net begriffen hast! Anwender arbeiten
eigentlich NIE (es sei denn du hast programmiert ;o))) in
einer Datenbank sodaß bei gescheiten Projekten mit gescheiten
Programmierern es dazu net kommst! Allerdings kann ich
verstehen, daß du es anders kennst, wenn du schon bei 5
Tabellen Probleme bekommst!
Was habe ich bloß mit den 5 Tabellen angerichtet? Außer einem dringenden Gefühl Deinerseits, nicht zu argumentieren.
Nur mal als Zwischenfrage: Was machen Deine Anwender mit der Datenbank, wenn nicht arbeiten?
Noch mal: Du hast jetzt also Dein grandioses Projekt mit 50+x Tabellen, weil kleiner ja für Kinder ist. Gehen wir mal davon aus, dass die Oberfläche tatsächlich keine Inkonsistenzen produzieren kann (Wie verifizierst Du das? Mit welchem Aufwand? Und mit welchem Aufwand nach einer Änderung?) und das kein Anwender die Oberfläche umgeht. So weit, so (ungerechtfertigter weise) optimistisch. Jetzt hätte ich gerne eine zustäzliche Tabelle in dem Projekt, die irgendwo zwischen irgendwelchen anderen Tabellen hängt und semantisch von diesen abhängig ist. Jetzt, bitte mal mit Antworten:
-
Wie lange brauchst Du, um die erforderlichen Mechanismen zur Garantie einer konsistenten Datenbank nachzuprogrammieren?
-
Wie lange brauchst Du, um die weiterhin fehlerfreie Funktion des ganzen Programms zu verifizieren? (Das heißt übrigens nicht, Fehlerfreiheit anzunehmen, bis das Gegenteil bewiesen wird.)
Gruß
Bernd
*FürdenneDatenbankerstab50Tabellenüberhauptmalinteressantwirdundsichfragtwoduwohlarbeitest*
Die Tabellenanzahl ist ja furchtbar wichtig und aussagekräftig. Mein derzeit aktuelles Projekt hat abzgl. Systemtabellen 150 Tabellen. Und? Wen interessiert’s? Wenn ich jetzt aber dem Kunden sage: Ich programmier Dir mal schnell bestehende Funktionalität zum Betrag x nach, dann schlägt der mich mit 'nem nassen Feudel, bis ich lache. Und das zurecht. Wenn Du so tolerante Kunden hast, denen egal ist, wie Du Deine Zeit und ihr Geld verschleuderst, sei froh. Und bei Gelegenheit wirst auch Du verstehen, was komplex ist und was nicht.
Gruß, Manfred