Datenbanken Game-Shop

1. Lernbereich 1 – SELECT

Wir haben letzte Woche das ERM für unseren Game-Shop erstellt und als Datenbank in Access angelegt. Erinnert euch nochmal daran. Welche Tabellen brauchen wir? Was wollen wir alles speichern? Welche Beziehungen gibt es zwischen den Tabellen?

Aufgaben 1.1

Überlegt kurz ob Du folgende Fragen aus der Datenbank beantworten kannst:

  • Wer kauf bei mir ein?
  • Welcher Kunde hat welche Produkte (Spiele) gekauft?

Hier nochmal unser ERM

Hier findet ihr unsere Datenbank von letzter Woche, mit von einer KI angelegten Testdaten. Ladet euch die Datenbank herunter. Speichert sie auf eurem persönlichen Laufwerk (H:\) und öffnet sie in Access.

Aufgaben 1.2: Vorüberlegungen

Schau dich in der Datenbank um. Öffne die einzelnen Tabellen und schau dir die Einträge an. Wo werden die Beziehungen zwischen den Tabellen dargestellt?

1.1 Kunden – Customers

In der Tabelle Customers werden zum Beispiel die Kundendaten gespeichert – wie Name, Straße, Ort, Land…

SQL ist eine Datenbanksprache für relationale Datenbanken zum Abfragen und zum Bearbeiten (Einfügen, Ändern, Löschen) von Daten. Mit dem Befehl SELECT kann man Daten abfragen.

Hast du dir alle Tabellen angeschaut? Super! Dann geht es jetzt los mit SQL

1.2 Mit SELECT kannst du Daten aus Tabellen abfragen.

Wir schauen uns zunächst die Tabelle mit den Kunden (Customers) an. Finde heraus wie du in Access SQL-Abfragen erstellen kannst (Suchmaschine oder KI). Erstelle folgende Abfragen und Speichere sie mit sinnvolen Namen ab:

SELECT Name, Ort, Land FROM Customers   
SELECT * FROM Customers WHERE Land = 'Canada'
SELECT * FROM Customers WHERE Land = 'Canada' OR Ort = 'Jasonmouth'
SELECT * FROM Customers ORDER BY Land DESC

So kannst du SQL-Befehle in Access erstellen

Aufgaben 1.2.1: Einfache SELECTS

  • Gib die hier aufgeführten SQL Befehle selbst ein und schau dir die Ergebnisse an.
  • Gib Name, Postleitzahl, Ort und Land aller Kunden aus UK aus. 
  • Gib alle Felder von Customers aus, die als Land France oder Spain haben. 
  • Gib Ort und LAND aus und zwar alphabetisch sortiert nach Ort.
  • Probiere weitere Abfragen aus. Der SQL Spickzettel hilft dir dabei. 

Aufgabe 1.2.2: komplexere SELECTS

  • Lass dir alle deine Spiele im Shop anzeigen
  • Lass dir alle Spiele anzeigen, die teurer wie 25 € sind
  • Lass dir alle Spiele für PCs anzeigen
  • Lass dir alle Shooter anzeigen
  • Lass dir alle Spiele aus den Genres Shooter und Strategie ausgeben
  • Lass dir alle PC-Spiele aus dem Genre Strategie ausgeben

1.3 Funktionen MAX, MIN; AVG, SUM, …

Wie viele Spiele bietest du an die teuerer wie 25 € sind?

SELECT COUNT(*) FROM Games WHERE PREIS > 25;

Der Befehlt COUNT zählt die Anzahl der gefunden Datensätze.

Aufgaben Kapitel 1.3: SELECTS mit Funktionen

  • Suche das teuerste und das billigste Spiel und ermittle den Durschnittspreis deiner Spiele
  • Was würde es kosten alle Spiele zu kaufen?
  • Aus welchen Ländern hast du Kunden?

1.4 LIKE und Wildcarts (Platzhalter/Jokerzeichen)

SELECT * FROM Games WHERE Titel LIKE 'C*'

Alle Spiele, deren Titel mit einem C beginnt.

Aufgabe 1.4: SELECTS mit Platzhaltern

Die Wildcards (Platzhalter) unterscheiden sich in den unterschiedlichen SQL-Dialekten. Recherchiere die Platzhalterzeichen in Access und ändere bzw. ergänze sie in deinem Spickzettel.

2. Mit INSERTS kannst du Daten in eine Tabelle einfügen

INSERT INTO Customers
(KundenID, Name)
VALUES (103, 'Max Mustermann')

Details kannst du wieder dem Spickzettel entnehmen

Aufgabe 2: Trage dich als Kunde in die Datenbank ein.

3. Mit Update kannst du Daten in der Tabelle ändern.

UPDATE Customers
SET Straße = 'Teststr. 5' 
WHERE KundenID = 103

Aufgabe 3: Ändere deine E-Mailadresse und deine Telefonnummer

4. Mit DELETE kannst du Daten aus der Tabelle entfernen

DELETE FROM Customers WHERE KundenID = 103

5. Daten aus mehreren Tabellen mit INNER JOIN

Aufgaben 5

  1. Alle Bestellungen des Kunden „George Lee“
  2. Alle Spiele der Bestellung mit der BestellID 2 oder 3
  3. Der Gesamtpreis einer Bestellung
  4. Gib eine Liste aller Kunden mit ihren jeweiligen Bestellnummern und Bestelldaten aus.
  5. Zeige alle Bestellungen mit den dazugehörigen Spieltiteln und der Menge.
  6. Gib alle Spiele mit dem Namen der Plattform aus, auf der sie verfügbar sind.
  7. Berechne den Gesamtumsatz pro Spiel (Menge × Einzelpreis).
  8. Zeige alle Kunden mit dem Gesamtwert ihrer Bestellungen.
  9. Berechne die Gesamtwerte der Bestellungen neu und vergleiche mit dem eingetragenen Gesamtwert.

SQL-Aufgaben

  1. Liste alle Kunden im deutschsprachigen Raum (Deutschland, Österreich, Schweiz) auf.
  2. Wie viele Kunden sind das? Zähle mit SQL.
  3. Füge zwei neue Mitarbeiter (Employees) in die Datenbank ein.
    LastName: Mustermann
    FirstName: Maxi
    BirthDate: 12/26/1969
    Note: Unser neuer Mitarbeiter
    LastName: Musterfrau
    FirstName: Maxi
    BirthDate: 03/04/1978
    Note: Unsere neuste Mitarbeiterin
  4. Änder den Vorname (FirstName) von Herrn Mustermann auf Max
  5. Zeige Mitarbeiter ohne Bild(Photo) an.
  6. Zeige für alle Bestellungen auf Stuttgart die Bestellnummer, Bestelltdatum, ShipperID, KundenID, KundenName und die Stadt (Hier musst du JOIN nutzen)
  7. Ersetze in der Abfrage der Aufgabe 6 die ShipperID durch den ShipperName
  8. Zeige für die Bestellpositionen der Bestellung 10268 folgende Werte an:
    • OrderDetailID
    • OrderID
    • ProductName
    • Quantity
    • Price
  9. Berechne für die Ausgabe aus Aufgabe 8 den Gesamtpreis der Bestellposition (Price * Quantity) und benenne ihn als Gesamtpreis

    ERM | ERD Schüler-Datenbank

    Erstellt für folgende Datenbank ein ERM mit draw.io. Nutzt zur Darstellung der Entitäten und Attribute folgende Darstellung (Abbildung 1):

    Abbildung 1

    Stellt für alle Entitäten die vollständigen Attribute und Beziehungen dar.

    Primärschlüssel bitte unterstreichen und Fremdschlüssel durch einen Stern* kennzeichnen.

    Beziehungen sind durch Rauten mit einem passenden Verb und der Kartinalität darzustellen.

    Abbildung 2

    Regeln

    1. In realen Datenbanken gibt es nur die Kartinalitäten 1 : 1 oder 1 : n.
      n : m Beziehungen müssen immer mit einer Zwischen-Entität/Tabelle aufgelöst werden.
    2. 1 : n Kardinalitäten folgen der Pfeilrichtung. D.h. das befindet sich immer auf der Seite der Pfeilspitze. (siehe Abbildung 2)
    3. Der Primärschlüssel einer Entität wandert in Richtung des Pfeils als Femdschüssel in die andere Entität.

    Datenbankbeschreibung

    Ein vereinfachtes Entity-Relationship-Modell (ER-Modell) für eine Schülerdatenbank könnte die grundlegenden Entitäten und deren Beziehungen darstellen. Hier ist eine Beschreibung der Hauptentitäten und ihrer Attribute:

    1. Schüler (Schueler)
      • Attribute:
        • Schueler_ID (Primärschlüssel)
        • Vorname
        • Nachname
        • Geburtsdatum
        • Geschlecht
        • Klasse
    2. Klasse (Klasse)
      • Attribute:
        • Klasse_ID (Primärschlüssel)
        • Klassenname
        • Jahrgangsstufe
    3. Lehrer (Lehrer)
      • Attribute:
        • Lehrer_ID (Primärschlüssel)
        • Vorname
        • Nachname
        • Fach
    4. Fach (Fach)
      • Attribute:
        • Fach_ID (Primärschlüssel)
        • Fachname
    5. Noten (Noten)
      • Attribute:
        • Noten_ID (Primärschlüssel)
        • Note
        • Prüfungsdatum
      • Beziehungen:
        • Schueler_ID (Fremdschlüssel, verweist auf Schueler)
        • Fach_ID (Fremdschlüssel, verweist auf Fach)
    6. Klassenlehrer (Klassenlehrer)
      • Attribute:
        • Klassenlehrer_ID (Primärschlüssel)
      • Beziehungen:
        • Klasse_ID (Fremdschlüssel, verweist auf Klasse)
        • Lehrer_ID (Fremdschlüssel, verweist auf Lehrer)

    Beziehungen:

    • Ein Schüler ist in einer Klasse.
    • Ein Lehrer unterrichtet mehrere Fächer.
    • Ein Schüler kann in mehreren Fächern Noten erhalten.
    • Eine Klasse hat einen Klassenlehrer.

    Erarbeitung ERD/ERM

    Liebe Klasse,

    um größere Datenbanken zu planen, gibt es eine grafische Modellierungsmethode, die sich bewährt hat: das Entity-Relationship-Modell.

    Schaut euch zunächst das Video zum ER-Modell an:

    „Entitäten“(engl. Entity) sind dabei Objekte der Wirklichkeit die wir als Datenmodell abbilden. „Relationen“ sind die Beziehungen zwischen diesen Objekten.

    Den Prozess, einen Ausschnitt aus der Wirklichkeit in ein Modell zu überführen, nennt man „Modellierung“.

    Die Modellierung erfolgt in für Schritten:

    1. Ermittlung der Entitäten: Identifizieren der Hauptobjekte, über die die Datenbank Informationen speichern soll.
    2. Definition der Attribute: Festlegen der Eigenschaften jeder Entität.
    3. Bestimmung der Beziehungen: Festlegen, wie die Entitäten miteinander verbunden sind.
    4. Ermittlung der Kardinalitäten: Bestimmen, wie viele Entitäten in den Beziehungen miteinander verbunden sind.
    5. Zeichnen des ER-Diagramms: Das Diagramm hilft, das Modell zu visualisieren und sicherzustellen, dass alle Beziehungen korrekt abgebildet sind.

    Aufgabe:

    Viel Erfolg!

    Einstieg ins Thema Datenbanken

    1. Rechercheaufgabe zu Access

    Ladet euch die Word-Datei herunter und versucht diese mit Hilfe von Online-Recherchen auszufüllen.

    Das Word-Dokument ausgefüllt bitte an markus.hacker@ezsh.de zurück!

    2. Schaut euch das Startvideo an!

    3. Macht folgende Übungen

    Arbeitet die Lernkarten Seite für Seite durch. Für die Übungen könnt ihr entweder die Übungsdatenbank bei w3schools (wie im Video) nutzen oder das neue System von der Lernkarte (hier die Beispieldatenbank). Irgendwie hat AppCamps das nicht konsequent erneuert.

    4. Schaut euch noch das Abschlussvideo dieser Lektion an.

    Fertig!