Datenbanken Uebungen: Unterschied zwischen den Versionen

Aus CCWiki
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „Im folgenden finden sich Übungen für das Thema Datenbanken. Als '''D'''aten'''B'''ank'''M'''anagement '''S'''ystem wird '''MySQL'''[https://www.mysql.com/de/…“
 
Keine Bearbeitungszusammenfassung
 
(47 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Im folgenden finden sich Übungen für das Thema Datenbanken. Als '''D'''aten'''B'''ank'''M'''anagement '''S'''ystem wird '''MySQL'''[https://www.mysql.com/de/] verwendet.
Im folgenden finden sich Übungen für das Thema Datenbanken. Weiters soll direkt ein Überblick über die Themen erfolgen. Als '''D'''aten'''B'''ank'''M'''anagement '''S'''ystem wird '''MySQL'''[https://www.mysql.com/de/] verwendet


Als Voraussetzung wird eine funktionierende '''MySQL''' installation mit '''MySQL Workbench'''[https://www.mysql.com/de/products/workbench/] vorausgesetzt. '''MySQL Workbench''' ist ein grafisches Tool um mit '''MySQL''' zu arbeiten.
= Überblick =
Ein grundlegendes Verständnis folgender Begriffe soll erlangt werden. Diese sind nicht chronologisch geordnet.
* '''E'''ntity '''R'''elation Diagramme erstellen ('''Chen Notation''')
* Implementieren des '''ER''' Diagramms in '''MySQL'''
* Primär- und Fremdschlüssel
** Erstellen von Fremdschlüssel '''Constraints'''
* SQL Queries
** Tabellen verknüpfen mit '''WHERE''' und '''INNER JOIN'''
** Unterschied zwischen '''INNER JOIN''' und '''LEFT OUTER JOIN''' und '''RIGHT OUTER JOIN'''
** Einfügen mittels '''INSERT'''
** Löschen mittels '''DELETE'''
** Aktualisieren mittels '''UPDATE'''
* Anbindung an die Datenbank mittels '''JDBC''' in '''Java'''
** Verbindung zur Datenbank herstellen
** Daten anlegen
** Daten abrufen
** Daten löschen
 
= Übungen =
 
Als Voraussetzung wird eine funktionierende '''MySQL''' installation mit '''MySQL Workbench''' vorausgesetzt. '''MySQL Workbench''' ist ein grafisches Tool um mit '''MySQL''' zu arbeiten.
 
Der Download für beide Tools findet sich [https://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-8.0.27.1.msi hier].
* Add Product
* MySQL Server hinzufügen
* MySQL Workbench hinzufügen
 
Für den Bereich '''S'''tructured '''Q'''uery '''L'''anguage wird weiters vorausgesetzt dass eine '''Datenbank''' mit folgenden Inhalten existiert:
Ein großer Dank geht an die Uni Göttingen für die Bereitstellung der '''Mondial'''<ref name="göttingen">https://www.dbis.informatik.uni-goettingen.de/Mondial/</ref> Datenbank
* [[Datei:Mondial-schema-mysql.zip]]
* [[Datei:Mondial-inputs-mysql.zip]]
 
# Zuerst MySQL Workbench öffnen, mit dem DBMS verbinden.
# File -> Open Sql Script -> Schema auswählen (zuerst das zip entpacken)
# Mit dem Blitz ausführen
## Tritt ein Fehler auf >>,ORACLE<< aus der ersten Zeile entfernen
# File -> Open Sql Script -> Input auswählen (zuerst das zip entpacken)
# Mit dem Blitz ausführen
# Nun sollte die Datenbank Mondial existieren und es geht weiter mit den übungen zu SQL Abfragen
 
== SQL Abfragen ==
Verschiedene Abfragen um Tabellen zu verbinden. Verwende für die Abfragen die '''Mondial''' Datenbank.
[[Datei:ER-Mondial.jpg|mini|none|600px|Mondial ER Diagramm<ref>https://www.dbis.informatik.uni-goettingen.de/Mondial/mondial-abh.pdf</ref>]]
[[Datei:Mondial Abhängingkeiten.jpg|mini|none|400px|Mondial Abhängigkeiten<ref name="göttingen"/>]]
 
==== Aufgabe SQL Queries ====
Wie viele Einwohner hat Österreich?
 
Wie viele Einwohner hat der Kontinent Europa?
 
Welche Flüsse fließen durch Österreich?
 
Welche Flüsse fließen durch Europa (nur den Flussnamen)?
 
Wie viel Prozent der Menschen leben im Kontinent Europa?
 
Alle Länder die mit einem A anfangen
 
Alle Länder die mit einem A anfangen und deren Bundesländer mit Einwohnerzahl, sortiert nach Einwohnerzahl
 
Alle Flüsse die durch Europa fließen (nur Flüsse und deren Länge), sortiert nach Länge
 
Alle Inseln im Pazifik mit >50% islamischem Bekenntnis
 
Alle 3000er, welche in einem Land sind, welches zu mindestens 60% römisch Katholisch ist
 
Alle Länder mit mindestens einem See mit mindestens 100 Meter Tiefe und mindestens einem Berg mit mindestens 1500 Höhenmeter
 
Einwohnerzahl pro Religion
 
Alle Länder, nur die Namen und die Meere dazu (keine Null Werte)
 
Alle Länder, nur die Namen, und wenn sie haben, das Meer dazu
 
Das Unabhängigkeitsdatum von Ländern die eine Wüste haben und die ethnische Gruppe '''African'''
 
[https://matura.drlue.at/index.php/Datenbanken_Loesungen Hier nicht klicken]
 
== Datenbank Anwendung ==
Im folgenden soll in mehreren Schritten eine Datenbank Anwendung modelliert und erstellt werden. Diese Anwendung soll ein einfaches Zahlungssystem mit Überweisung und Bankomat beeinhalten.
* Kunden sollen angelegt werden
* Es sollen Konten angelegt werden
* Konten sollen Geld überweisen/einzahlen und überweisen können
* Jede Transaktion soll gespeichert werden mit Betrag, Quelle, Ziel und Datum
* Der Kontostand soll aufgrund aller vorhergehenden Transaktion berechnet werden
 
==== Aufgabe: '''E'''ntity '''R'''elation (ER) Diagramm erstellen ====
Entwirf ein korrektes '''ER''' Diagramm für die Datenbankanwendung, zumindest sollen die Tabellen '''Kunde''', '''Konto''' und '''Transaktion''' enthalten sein. Achte auf die korrekte Beziehung zwischen den Tabellen.
* Ein Kunde kann mehrere Konten haben
* Ein Konto kann mehrere Kunden haben, diese haben dann eine unterschiedliche Rolle (Besitzer, Zeichnungsberechtigt, etc...)
* Eine Transaktion muss ein Quell- und ein Zielkonto haben
 
==== Aufgabe: Anlegen der Datenbank in MySQL ====
Implementiere das erstellte '''ER''' Diagramm in MySQL. Achte auf das Anlegen von korrekten '''Primär-''' und '''Fremdschlüsseln.
 
==== Aufgabe: Verbinden der Datenbank (JDBC) in Java ====
Verbinde dich über die '''JDBC''' Schnittstelle in Java mit der angelegten Datenbank. Das Anlegen einer Testdatenbank kann sehr hilfreich sein um Tests zu schreiben.
 
==== Aufgabe: Kunden/Konten und Transaktionen in Java anlegen und abrufen ====
Erstelle die Modelle für deine Tabellen in Java und ermögliche über Methoden das '''Erstellen''', '''Aktualisieren''', '''Lesen''' und '''Löschen.
'''C'''reate '''R'''ead '''U'''pdate '''D'''elete
 
==== Aufgabe: (Kommandozeilenanwendung) für den Bankomat erstellen ====
Erstelle ein Userinterface für die Bankomat Anwendung.
* Der Benutzer soll authentifiziert werden
* Es soll eine entsprechende Auswahl an Konten angezeigt werden
* Einzahlen/Auszahlen soll möglich sein
* Überweisung an anderes Konto
 
= Quellen =

Aktuelle Version vom 30. November 2021, 19:09 Uhr

Im folgenden finden sich Übungen für das Thema Datenbanken. Weiters soll direkt ein Überblick über die Themen erfolgen. Als DatenBankManagement System wird MySQL[1] verwendet

Überblick

Ein grundlegendes Verständnis folgender Begriffe soll erlangt werden. Diese sind nicht chronologisch geordnet.

  • Entity Relation Diagramme erstellen (Chen Notation)
  • Implementieren des ER Diagramms in MySQL
  • Primär- und Fremdschlüssel
    • Erstellen von Fremdschlüssel Constraints
  • SQL Queries
    • Tabellen verknüpfen mit WHERE und INNER JOIN
    • Unterschied zwischen INNER JOIN und LEFT OUTER JOIN und RIGHT OUTER JOIN
    • Einfügen mittels INSERT
    • Löschen mittels DELETE
    • Aktualisieren mittels UPDATE
  • Anbindung an die Datenbank mittels JDBC in Java
    • Verbindung zur Datenbank herstellen
    • Daten anlegen
    • Daten abrufen
    • Daten löschen

Übungen

Als Voraussetzung wird eine funktionierende MySQL installation mit MySQL Workbench vorausgesetzt. MySQL Workbench ist ein grafisches Tool um mit MySQL zu arbeiten.

Der Download für beide Tools findet sich hier.

  • Add Product
  • MySQL Server hinzufügen
  • MySQL Workbench hinzufügen

Für den Bereich Structured Query Language wird weiters vorausgesetzt dass eine Datenbank mit folgenden Inhalten existiert:

Ein großer Dank geht an die Uni Göttingen für die Bereitstellung der Mondial[1] Datenbank
  1. Zuerst MySQL Workbench öffnen, mit dem DBMS verbinden.
  2. File -> Open Sql Script -> Schema auswählen (zuerst das zip entpacken)
  3. Mit dem Blitz ausführen
    1. Tritt ein Fehler auf >>,ORACLE<< aus der ersten Zeile entfernen
  4. File -> Open Sql Script -> Input auswählen (zuerst das zip entpacken)
  5. Mit dem Blitz ausführen
  6. Nun sollte die Datenbank Mondial existieren und es geht weiter mit den übungen zu SQL Abfragen

SQL Abfragen

Verschiedene Abfragen um Tabellen zu verbinden. Verwende für die Abfragen die Mondial Datenbank.

Mondial ER Diagramm[2]
Mondial Abhängigkeiten[1]

Aufgabe SQL Queries

Wie viele Einwohner hat Österreich?
Wie viele Einwohner hat der Kontinent Europa?
Welche Flüsse fließen durch Österreich?
Welche Flüsse fließen durch Europa (nur den Flussnamen)?
Wie viel Prozent der Menschen leben im Kontinent Europa?
Alle Länder die mit einem A anfangen
Alle Länder die mit einem A anfangen und deren Bundesländer mit Einwohnerzahl, sortiert nach Einwohnerzahl
Alle Flüsse die durch Europa fließen (nur Flüsse und deren Länge), sortiert nach Länge
Alle Inseln im Pazifik mit >50% islamischem Bekenntnis
Alle 3000er, welche in einem Land sind, welches zu mindestens 60% römisch Katholisch ist
Alle Länder mit mindestens einem See mit mindestens 100 Meter Tiefe und mindestens einem Berg mit mindestens 1500 Höhenmeter
Einwohnerzahl pro Religion
Alle Länder, nur die Namen und die Meere dazu (keine Null Werte)
Alle Länder, nur die Namen, und wenn sie haben, das Meer dazu
Das Unabhängigkeitsdatum von Ländern die eine Wüste haben und die ethnische Gruppe African

Hier nicht klicken

Datenbank Anwendung

Im folgenden soll in mehreren Schritten eine Datenbank Anwendung modelliert und erstellt werden. Diese Anwendung soll ein einfaches Zahlungssystem mit Überweisung und Bankomat beeinhalten.

  • Kunden sollen angelegt werden
  • Es sollen Konten angelegt werden
  • Konten sollen Geld überweisen/einzahlen und überweisen können
  • Jede Transaktion soll gespeichert werden mit Betrag, Quelle, Ziel und Datum
  • Der Kontostand soll aufgrund aller vorhergehenden Transaktion berechnet werden

Aufgabe: Entity Relation (ER) Diagramm erstellen

Entwirf ein korrektes ER Diagramm für die Datenbankanwendung, zumindest sollen die Tabellen Kunde, Konto und Transaktion enthalten sein. Achte auf die korrekte Beziehung zwischen den Tabellen.

  • Ein Kunde kann mehrere Konten haben
  • Ein Konto kann mehrere Kunden haben, diese haben dann eine unterschiedliche Rolle (Besitzer, Zeichnungsberechtigt, etc...)
  • Eine Transaktion muss ein Quell- und ein Zielkonto haben

Aufgabe: Anlegen der Datenbank in MySQL

Implementiere das erstellte ER Diagramm in MySQL. Achte auf das Anlegen von korrekten Primär- und Fremdschlüsseln.

Aufgabe: Verbinden der Datenbank (JDBC) in Java

Verbinde dich über die JDBC Schnittstelle in Java mit der angelegten Datenbank. Das Anlegen einer Testdatenbank kann sehr hilfreich sein um Tests zu schreiben.

Aufgabe: Kunden/Konten und Transaktionen in Java anlegen und abrufen

Erstelle die Modelle für deine Tabellen in Java und ermögliche über Methoden das Erstellen, Aktualisieren, Lesen und Löschen.

Create Read Update Delete

Aufgabe: (Kommandozeilenanwendung) für den Bankomat erstellen

Erstelle ein Userinterface für die Bankomat Anwendung.

  • Der Benutzer soll authentifiziert werden
  • Es soll eine entsprechende Auswahl an Konten angezeigt werden
  • Einzahlen/Auszahlen soll möglich sein
  • Überweisung an anderes Konto

Quellen