Datenbankentwurf

aus ZUM-Wiki, dem Wiki für Lehr- und Lerninhalte auf ZUM.de
< Datenbank
Version vom 13. August 2019, 10:11 Uhr von Matthias Scharwies (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Kurzinfo

Inhaltsverzeichnis

Von der Realität zur Datenbank

Mathematik-digital Pfeil-3d.png
Lernpfad

In dieser Unterrichtseinheit wirst du schrittweise angeleitet, unsere Modellierung einer Datenbank in Form eines Klassendiagramms in ein relationales Datenbankschema zu überführen, um anschließend in mySql die entsprechenden Tabellen der Datenbank eingeben zu können.

Für besonders Schnelle gibt es am Ende auch eine besondere Übung! Ich bin gespannt auf eure Ergebnisse!

Übersicht über die bisherigen Schritte

Vom Klassendiagramm zum relationalen Datenbankschema

1. Begriffszuordnung

Wir können bereits verschiedene Aufgabenstellungen wie beispielsweise das Ausleihen eine Buches einer Bibliothek oder das Bestellen und Liefern von Artikeln eines Versandhauses in Form eines Klassendiagrammes modellieren. Wie gelangen wir nun von diesem Klassendiagramm zu einer Datenbank mit Tabellen? Hier unsere Vorgehensweise...

2. Umwandlung eines Klassendiagramms in ein relationales Datenbankschema

Im folgenden werden die wichtigsten Schritte zur Umwandlung eines Klassendiagramms in ein relationales Datenbankschema vorgestellt. Hierbei müssen vor allem die Kardinalitäten der Beziehungen zwischen den einzelnen Klassen berücksichtigt werden. Hier unsere Vorgehensweise...

Der passende (Daten-)typ ist gefragt! (10. April 2013)

3. Der passende (Daten-)Typ ist gefragt!

Im Gegensatz zu einem Tabellenkalkulationsprogramm muss in einer Datenbank beim Anlegen der Tabellen auch gleichzeitig der Datentyp der in einer Spalte stehen kann, eindeutig angegeben werden. Die wichtigsten Datentypen haben wir bereits in der letzten Stunde besprochen.

Stift.gif   Aufgabe 1

Ordne in der Tabelle die jeweiligen Beschreibungen den Datentypen zu!

Datentyp
Beschreibung
CHAR(länge) Zeichenfolge von fester Länge; dem Text werden so viele Leerzeichen angefügt, bis die angegebene Länge erreicht ist
VARCHAR(maxlänge) Zeichenfolge von variabler, aber begrenzter Länge
INT Ganze Zahlen zwischen -2147483648 und 2147483648
DECIMAL(Ziffernanzahl, Nachkommastellen) Kommazahlen im Dezimalsystem mit genau festlegbarer Stellenanzahl
FLOAT Kommazahlen mit etwa 7 gültigen Ziffern
DOUBLE Kommazahlen mit etwa 15 gültigen Ziffern
DATE Datumsangaben
TIME Zeitangaben
DATETIME Kombinierte Datums- und Zeitangaben
BOOLEAN Wahrheitswerte
Stift.gif   Aufgabe Nachdem Du nun bereits die Definitionen richtig zugeordnet hast, sind nun den Beispielen sinnvolle Datentypen zuzuordnen. In der linken Spalte der Datentyp angegeben. Deine Aufgabe ist es nun, das entsprechende Beispiel zuzuweisen!

{{{2}}}

Datentyp
Bsp. aus der Tabelle Buch
CHAR(17) Die ISBN ist ein genau 17 Zeichen langer Text.
INT Seitenzahl, Exemplaranzahl oder Erscheinungsjahr
DECIMAL(7,2) Buchpreis
VARCHAR Titel, Autor und Verlag
BOOLEAN entliehen bzw. nicht entliehen
DATE Entleihdatum
Wert CHAR(4) Erforderlicher Speicherplatz "<" oder ">"? VARCHAR(4)
""
"ab"
"abcd"
"abcdefgh"
Stift.gif   Aufgabe 3

Der Unterschied zwischen VARCHAR und CHAR

Bearbeite die Aufgaben zunächst alleine.

  1. Übertrage die nebenstehende Tabelle unter der Überschrift "Unterschied zwischen VARCHAR und Char" in Deine Informatikmappe.
  2. Trage in der 2. und 3. Spalte jeweils ein, wie die Werte je nach Datentyp gespeichert werden!
  3. Gib jeweils durch Eintragen von ">" oder "<", welcher Datentyp mehr Speicherplatz benötigt!
  4. Vergleiche Deine Lösung mit Deinem Banknachbarn!
Weitere Eigentschaften eines Spalteneintrages in einer Tabelle
  • NULL: Manchmal sind die Attributwerte eines Objektes bei der Erfassung in einer Tabelle nicht bekannt. So kann es sein, dass z.B. in der Spalte "Entleihdatum" in der Tabelle Buch kein Eintrag steht, da gerade nicht entliehen ist. In diesem Fall gibt es in Datenbanken einen besonderen Eintrag, nämlich den Eintrag "NULL" (= kein Wert; engl. ungültig, nichtig). Bei der Spaltendefinition kann also angegeben werden, ob für ein Feld in einer Tabelle auch der Wert NULL zugelassen wird.
  • NOT NULL: Umgekehrtes gilt bei der Verwendung des Eigenschaft "NOT NULL". In diesem Fall muss in der entsprechenden Spalte ein Wert stehen, da ansonsten bei der Dateneingabe eine Fehlermeldung erscheint. Dies ist beispielsweise in Spalte ISBN sinnvoll.
  • DEFAULT: Desweiteren gibt es noch die Eigenschaft "DEFAULT". Hierdurch wird ein bestimmter Wert, falls keine Eingabe erfolgt festgelegt. In der Tabelle Buch ist z.B. in der Spalte "Ist entliehen?" sinnvoll, standardmäßig "FALSE" einzutragen. Hierdurch wird standardmäßig angegeben, dass das Buch als "nicht entliehen" gilt. Es sei denn etwas anderes wird eingetragen.
  • AUTOINCREMENT: Diese Angabe bei der Spaltendefinition bewirkt, dass eine (ganze) Zahl bei Hinzufügen eines weiteren Datensatzes automatisch erhöht wird. Dies ist hauptsächlich beim Primärschlüssel sinnvoll. In der Tabelle Kunde ist dies bei der KundenNr. nützlich. Hierdurch wird automatisch bei der Eingabe eines neuen Kunden, die Kundennummer um eins erhöht.
Stift.gif   Aufgabe 4

Notiere selbständig die oben genannten Eigenschaften und ihre Bedeutung unter der Überschrift NULL, NOT NULL, DEFAULT und AUTOINCREMENT in Deine Arbeitsmappe, so dass Du sie jederzeit nachschlagen kannst!

Bsp: Umwandeln eines Klassendiagramms in ein relationales Datenbankmodell

Stift.gif   Aufgabe 5

Geschafft! Nun müsstest Du fit im Umwandeln eines Klassendiagramms in ein relationales Datenbankmodell sein! Bevor Du dies am Beispiel einer Datenbank einer CD-Liste testest, schlage noch einmal in deiner Mappe oder hier im Wiki folgendes nach:

  1. Was ist ein Primärschlüssel?
  2. Wie wandele ich eine Klassenkarte in eine relationales Schema um? Wie gehe bei welcher Kardinalität vor? Was ist ein Fremdschlüssel? (vgl. nebenstehende PowerPoint!)
  3. Welche Datentypen gibt es? Wie ist die Schreibweise eines relationalen Schemas inkl. Datentyp und besonderen Eigenschaften?

Nun kannst Du Dich an die Aufgabe 6 wagen ...

Cdlisteinfo.jpg
Stift.gif   Aufgabe 6

Ein Mitarbeiter hat für CD-Datenbank folgendes Klassendiagramm entworfen.

  1. Markiere bzw. ergänze in der dazugehörigen PowerPoint (s. Austausch) in den Klassenkarten sinnvolle Primärschlüssel
  2. Gib die jeweiligen Kardinalitäten an und vergleiche mit den Ergebnissen Deines Nachbarn!
  3. Wandle das Klassendiagramm in ein relationales Modell mit Datentyp und ggf. sinnvollen Eigenschaften (NULL, DEFAULT, etc.) (in Klammern nach dem Datentyp)!

Für besonders Schnelle

Stift.gif   Aufgabe für Fortgeschrittene

Die Firma "Rent Me" ist eine Mietwagenfirma die sich hauptsächlich auf die Vermietung von Luxus-Sportwagen spezalisiert hat. Entwirf für die Firma schrittweise beginnend bei den Entwurf eine Klassendiagramms über das relationale Datenbankmodell eine Datenbank. Das Aufgabenblatt "Rent Me" liegt am Pult aus! Ihr könnt die Aufgabenstellung gerne am Rechner (z.B. animierte PowerPoint) oder in Papierform bearbeiten! Ich bin gespannt auf eure Ergebnisse!

mySql-Datenbank in PhpMyAdmin

Datensicherheit und Datenschutz

Datenbanken und Facebook-Psychologie

Die Daten des sozialen Netzwerks erlauben mit einer Präzision von bis zu 95 Prozent Rückschlüsse auf die Persönlichkeit der Nutzer. (Spiegel, 11.03.2013) mehr...

Pizzalieferservice


Diese Sequenz wurde erstellt von:


Petra Kuhn-Bader