Ernst Hügli schrieb:

>> [...] "Jahr der Fertigstellung einer
>> Komposition" [Ganzzahl, Jahreszahl nach Christus, vier Ziffern]

> [...] (ich habe dazu 
> angemerkt, dass in Deinem Fall Jahrzahlen aus dem Mittelalter oder gar 
> dem Altertum wenig realistisch sind, also vierstellige Zahlen < 1500 
> oder drei- oder weniger stellige oder gar negative Zahlen)? Und hier 
> musst Du im Entwurf ansetzen, wobei es mindestens zwei Möglichkeiten gibt:
> 
>     * mit einer Gültigkeitsprüfung, wie sie Guenter vorschlägt; Access
>       sieht - im Gegensatz zu Base - eine solche Möglichkeit explizit im
>       User-Interface für den Entwurf vor (als Angebot: take it or leave it)
>     * durch Benutzung eines explizit als YEAR (o.ä.) deklarierten
>       Feldtyps, wie Du mich für PHPMyAdmin in einer früheren Mail
>       hingewiesen hast. Ich habe mit diesem Werkzeug bisher (noch?)
>       nicht gearbeitet, vermute aber dennoch, dass dahinter eine
>       vierziffrige Ganzzahl > 1582 versteckt ist, also die von Guenter
>       erwähnten Constraints teilweise in die Deklaration des Feldtyps
>       integriert wurden. Alles Andere würde wenig Sinn machen

Das wurde ja im Thread mittlerweile aufgeklärt: Du hattest richtig
vermutet.

> Ohne sowas wird sie bei einer Selektion nach Jahren - z.B. "Alle Werke, 
> die nach der Jahrtausendwende komponiert wurden" - je nach Formulierung 
> gewisse Werke nicht finden: Setzest Du das Selektionskriterium auf 
> ">2000" (da das Jahr 2000 bekanntlich das letzte im 20. Jh. ist), dann 
> findet er den Eintrag "09" nicht, denn 09 < 2000 (als Zahlenvergleich 
> trivial). Oder aber: Du formulierst ">00", und dann wird er mit Ausnahme 
> der im Jahr 2000 (bzw. 1900, ..., wenn die Eintragungen so weit zurück 
> reichen) eben alles finden.
> 
> Fazit einmal mehr: der Entwurf (neudeutsch Design genannt) bestimmt, was 
> Du nachher mit der DB anstellen kannst. Natürlich kannst Du im 
> Nachhinein den Datentyp und allfällige Constraints noch ändern - doch je 
> nach Anzahl Datensätzen steht Dir danach (oder davor, das ist teilweise 
> Ansichtssache) noch ein hartes Stück Arbeit bevor, denn Du musst dann 
> alle Werte anpassen - ob per Programm oder händisch ist dabei 
> gleichgültig. Du investierst jedenfalls ein Mehrfaches der Zeit in die 
> Korrektur, die Du für einen sauberen Entwurf benötigt hättest. Du musst 
> dann nämlich auch noch sämtliche Beziehungen, ... prüfen, ob sich da 
> nicht Folgefehler der Änderung einschleichen.
> 
> Übrigens: die meisten DB und Tabellenkalkulationen haben mit 
> Datumvariablen die erwähnte Restriktion: vierstellig, > 1582. Die zweite 
> Bedingung hat mit der Kalenderreform von Papst Gregor im Oktober 1582 zu 
> tun, die erste ist wohl eine Frage des praktischen Nutzens bzw. der 
> internen Darstellung von Datumwerten. So ist es denn wohl eher von 
> theoretischer Bedeutung, dass Calc bereits ab dem Jahr 9958 Probleme mit 
> der korrekten Darstellung eines Datums bekommt (ich habe mich noch nicht 
> bemüht, die Ursache dieser Grenze zu eruieren - wahrscheinlich hängt es 
> eben mit der internen Darstellung von Daten zusammen).

Als Fazit könnte man für das Attribut "Jahr der Fertigstellung einer
Komposition" ziehen:

Datentyp SMALLINT

In den SQL-Anweisungen für Abfragen

* Eine Prüfung auf Zahl mit genau vier Ziffern
* Bei Eingaben einer Zahl kleiner als 1400 (also vor der
Renaissancemusik) könnte man eine Rückfrage ausgeben lassen "Sind sie
sicher ...?" 
* Beim Versuch einer Eingabe größer als das aktuelle Jahr könnte man
ausgeben "Spekulationen über die Fertigstellung künftiger Werke sollen
in dieser DB keinen Platz finden".


Andreas
-- 
Sammlung von Attributen für eine DB des Werkes eines Komponisten:
http://borumat.de/+temp/openoffice/rohdaten-simon-barber-work.ods


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an