| Wertebereich der Attribute
Noch ein kleines technisches Problem wäre zu lösen. Oft will man Daten nicht nur anzeigen, sondern man möchte sie sortieren, z.B. nach Datum oder nach Preisen oder in alphabetischer Reihenfolge usw. Auch werden Daten oft addiert, z.B. um den Umsatz einer bestimmte Periode zu erhalten. Das alles ist mit Datenbanken kein Problem. Vorausgesetzt wir geben bei jedem Attribut mit an, um welche Art von Datenfeld es sich handelt: ist es eine Zeichenkette (z.B. ein Name), ein Datum oder eine Zahl...?
Wie oben schon angesprochen geht es heute um das kleine Problem, für jedes Attribut einen Wertebereich festlegen zu müssen. Aus der Vielzahl der Möglichkeiten, die in Datenbanken vorhanden sind greifen wir nur die wichtigsten heraus. Hier erstmal eine Liste, um welche Wertebereiche es sich bei einem Datenfeld handeln könnte: Zeichenfolge, z.B. ein Name Datum, z.B. ein Geburtsdatum Ganze Zahl, z.B. der Vorrat an Bauteilen Dezimalzahl, z.B. der Einkaufspreis meiner Bauteile Fließkommazahl, das ist eine Zahl mit einer festgelegten Anzahl an Kommastellen, z.B. für einen prozentualen Anteil Jeder dieser Attributwerte hat in den verschiedenen Datenbanken einen etwas anderen Namen. Die folgenden beziehen sich auf die Datenbank MySQL VARCHAR(30): Zeichenfolge der maximalen Länge 30 INT(8): Ganzzahliger Wert (mit einer Speicherbelegung von 8) DECIMAL(10,2): Dezimalwert mit zwei Nachkommastellen (und einer Speicherbelgung von 10 DOUBLE: Fliesskommazahl DATE: Datumsangabe (im Format JJJJ-MM-TT)
Eine Klasse KUNDE habe die folgenden Attribute: KUNDE{Name, Vorname, Kundennummer, Kunde_Seit, Vorjahresumsatz, Straße, Hausnummer, Postleitzahl, Ort, Telefon und Fax}. Damit hast du auch schon eine neue Schreibweise für Klassen kennengelernt. Wir ordnen jedem Attribut einen Wertebereich zu: Für den Namen und den Vornamen wählen wir VARCHAR(40), 40 Zeichen sollten ausreichend sein. Längere Namen können dann aber nicht vergeben werden. Die Kundennummer enthalte nur Zahlen, daher können wir hier INTEGER(8) vergeben. Kunde_Seit ist ein Datumsformat, also DATE. Der Vorjahresumsatz ist eine Dezimalzahl mit zwei Nachkommastellen, also DECIMAL(10,2). Die Straße ist wie die Namen ein VARCHAR(40). Genügen 40 Zeichen für den Straßennamen? Kennst du einen Straßennamen der länger ist? Die Postleitzahl ist (bei uns) immer eine ganze Zahl, also INTEGER(8) Ort, Telefon und Fax sind wieder VARCHAR(40), wir wollen bei der Telefonnummer ja z.B. Klammern, +Zeichen oder "/" verwenden.
Übung 1: Ergänze bei folgendem Klassendiagramm bei jedem Attribut die Wertebereiche! Verwende die in MySQL üblichen Bezeichnungen! Lösungsansatz Übung 1: Ist das nicht ein schönes Diagramm! Was du hier siehst ist tatsächlich schon ein fertiges Modell einer gar nicht einfachen Datenbank. Wenn diese Datenbank später mit Daten gefüllt wird, lassen sich wahnsinnig viele Informationen aus ihr gewinnen. Nimm dir ruhig Zeit, dich etwas in dieses Diagramm einzulsesen. Wir werden es im nächsten Kapitel noch brauchen, wenn wir genau diese Datenbank am Rechner umsetzen wollen. Ich rede immer von Daten und Informationen, kleine Begrifflichkeitenkunde: Was ist der Unterschied zwischen Zeichen, Daten und Informationen. Lösung: Zeichen sind einfache Symbole, die noch keinen Sinn ergeben, z.B. &,d,9,3,l,d,k! Aus Zeichen lassen sich Daten herstellen, z.B. Wörter, Namen, usw. Daten sind aber inhaltsleer. Was nutzt dir das Datum 2001-09-11. Erst die Verknüpfung mit einem Geschehen macht daraus eine Information.
Hurra, das Thema ist dieses Mal nicht schwer, ich erspare dir die Hausaufgaben für dieses Mal. Wenn im übernächsten Kapitel die Datenbank am Rechner umgesetzt wird wirst du sehen, dass dies sehr leicht ist, weil die Datenbank-Software (Frontend) hier ein Auswahlmenü zum Anklicken bereithält.
VARCHAR(10): Bezeichnung in MySQL für Zeichenketten. INT(EGER) Bezeichnung in MySQL für Ganzzahlige Werte DECIMAL(10,2) Bezeichnung in MySQL für Dezimalzahlen mit (hier) zwei Nachkommastellen DATE Bezeichnung in MySQL für Datumseingaben im Format JJJJ-MM-TT, z.B. 2004-08-22 Double Bezeichnung in MySQL für Fließkommazahlen, z.B. 1,2345123 Copyright 2003 - Letzte Änderung am 4. September 2004 |