• Keine Ergebnisse gefunden

Tutorübung zu Grundlagen Datenbanken

N/A
N/A
Protected

Academic year: 2022

Aktie "Tutorübung zu Grundlagen Datenbanken"

Copied!
29
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

David Dejori

Tutorübung zu Grundlagen Datenbanken

(2)

• 14 Tutorübungen

• Übungsbeginn:

– Gruppe 25: montags um 16:00 Uhr in 02.11.018 – Gruppe 64: montags um 18:00 Uhr in 02.11.018

• Punktesystem:

– Für Anwesenheit ein Punkt pro Übung

– Für das Vorstellen einer Hausaufgabe ein weiterer Punkt – Nur Punkte für eine Übung pro Woche

• Anwesenheitskontrolle:

– Erfolgt ca. 30 Minuten nach Übungsbeginn

– Bei größerer Verspätung kein Anwesenheitspunkt

• Keine Übung an Feiertagen à auf andere Tutorübungen ausweichen

2 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Organisatorisches – Tutorübung

(3)

• Notenbonus von 0,3 in der Klausur, falls:

– 16 Punkte in den Tutorübungen erreicht wurden; und

– 25% der Punkte in den Vorlesungsquiz erreicht wurden; und – Klausurnote zwischen 1,3 und 4,0 (inklusive) liegt.

• Notenbonus gilt für beide Klausuren

Organisatorisches – Notenbonus

(4)

• Bei Fragen:

– E-Mail: david.dejori@tum.de

– Tutorsprechstunde (mittwochs von 13:00 bis 16:00 in 02.09.011B) – Moodle-Forum

• Folien: https://daviddejori.com/gdb

• Bei Problemen mit TUMonline, Moodle, etc. Übungsleitung kontaktieren: gdb@in.tum.de

4 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Organisatorisches – Kontakt

(5)

• Unterschied zwischen Schema und Instanz einer Relation

• Definitionen:

– Spalten einer Relation à Attribute – Zeilen einer Relation à Tupel

• Operatoren der relationalen Algebra – Projektion (π)

– Selektion (σ)

– Umbenennung (ρ) – Kreuzprodukt (✕) – Equi-Join (⋈)

– Natürlicher Join (⋈)

Wiederholung: Relationale Algebra

(6)

Anwesenheitskontrolle

David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

(7)

Punkteverteilung:

• Hausaufgabe 1 (a) + (b) à 1 Punkt

• Hausaufgabe 2 (a) + (b) à 1 Punkt

• Hausaufgabe 2 (c) + (d) à 1 Punkt

• Hausaufgabe 2 (e) à 1 Punkt

Hausaufgaben

(8)

Welche Daten werden durch das Absenden dieses Tweets generiert? An welchen Stellen im System von Twitter könnten diese gespeichert werden? Denken Sie nicht nur an den Text des Tweets sondern auch an potentielle Metadaten. Welche zusätzlichen Daten werden generiert, wenn Ihr Sitznachbar auf das Herz (“Like”) klickt?

8 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Hausaufgabe 1 (a)

(9)

Welche Daten werden durch das Absenden dieses Tweets generiert? An welchen Stellen im System von Twitter könnten diese gespeichert werden? Denken Sie nicht nur an den Text des Tweets sondern auch an potentielle Metadaten. Welche zusätzlichen Daten werden generiert, wenn Ihr Sitznachbar auf das Herz (“Like”) klickt?

• Text mit Zuordnung zum Account “@netzbürger42” und Veröffentlichungszeitpunkt

• Referenz auf “@DLR_de” (inkl. Benachrichtigung für das DLR)

• Hashtags “#PostgreSQL” und ”#irgendwasmitdaten”

• Indirekte Daten à IP-Adresse, GPS-Koordinaten, Browser, Betriebssystem, etc.

• Like à Verbindung zwischen Account und Tweet

• Speicherung in relationalen Datenbanken in verschiedenen Rechenzentren

Hausaufgabe 1 (a)

(10)

Seit dem 25.5.2018 gilt die DSGVO, wegen der u. a. personenbezogene Daten auf Anfrage gelöscht werden müssen. Überlegen Sie sich, welche Daten bei so einer Anfrage gelöscht werden müssen und welche Probleme dabei auftreten können.

10 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Hausaufgabe 1 (b)

(11)

Seit dem 25.5.2018 gilt die DSGVO, wegen der u. a. personenbezogene Daten auf Anfrage gelöscht werden müssen. Überlegen Sie sich, welche Daten bei so einer Anfrage gelöscht werden müssen und welche Probleme dabei auftreten können.

• Alle Tweets sowie das Nutzerkonto werden gelöscht

• Daten an einer Stelle gespeichert à einfach zu löschen

• Komplizierter:

– Löschen von Interaktionen mit anderen Nutzern

– Beibehalten der Datenkonsistenz: Was geschieht mit Direktnachrichten?

§ Sieht Gesprächspartner antworten noch?

§ Wird das gesamte Gespräch gelöscht?

§ Gespräch nicht löschen, dafür Nutzernamen durch Pseudonym ersetzen?

• Großes Problem: Daten in Backups noch vorhanden à Backups verschlüsseln

Hausaufgabe 1 (b)

(12)

Formulieren Sie die folgenden Anfragen auf dem Universitätsschema in Relationenalgebra.

Geben Sie die Lösungen in der in der Vorlesung besprochenen Operatorbaumdarstellung an.

a) Geben Sie Namen und Semester aller Studenten an, die mindestens im 7. Semester sind.

b) Geben Sie den Namen aller Professoren an, die mindestens eine Vorlesung mit mi- nestens 4 SWS lesen.

c) Geben Sie alle Vorlesungen an, die der Student Xenokrates gehört hat.

d) Geben Sie die Namen aller Assistenten an, deren Boss mindestens eine Vorlesung geprüft hat.

e) Geben Sie die Titel der direkten Voraussetzungen für die Vorlesung Wissenschaftstheorie an.

12 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Hausaufgabe 2

(13)

Geben Sie Namen und Semester aller Studenten an, die mindestens im 7. Semester sind.

Hausaufgabe 2 (a)

(14)

Geben Sie Namen und Semester aller Studenten an, die mindestens im 7. Semester sind.

14 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Hausaufgabe 2 (a)

(15)

Geben Sie den Namen aller Professoren an, die mindestens eine Vorlesung mit mindestens 4 SWS lesen.

Hausaufgabe 2 (b)

(16)

Geben Sie den Namen aller Professoren an, die mindestens eine Vorlesung mit mindestens 4 SWS lesen.

16 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Hausaufgabe 2 (b)

(17)

Geben Sie alle Vorlesungen an, die der Student Xenokrates gehört hat.

Hausaufgabe 2 (c)

(18)

Geben Sie alle Vorlesungen an, die der Student Xenokrates gehört hat.

18 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Hausaufgabe 2 (c)

(19)

Geben Sie die Namen aller Assistenten an, deren Boss mindestens eine Vorlesung geprüft hat.

Hausaufgabe 2 (d)

(20)

Geben Sie die Namen aller Assistenten an, deren Boss mindestens eine Vorlesung geprüft hat.

20 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Hausaufgabe 2 (d)

(21)

Geben Sie die Titel der direkten Voraussetzungen für die Vorlesung Wissenschaftstheorie an.

Hausaufgabe 2 (e)

(22)

Geben Sie die Titel der direkten Voraussetzungen für die Vorlesung Wissenschaftstheorie an.

22 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Hausaufgabe 2 (e)

(23)

Sie designen eine Webanwendung zur Univerwaltung. Früh entschließen Sie sich zum Einsatz eines Datenbanksystems als Backend für Ihre Daten. Ihr Kollege ist skeptisch und würde die Datenverwaltung lieber selbst implementieren. Überzeugen Sie ihn von Ihrem Entschluss.

Finden Sie stichhaltige Antworten auf die folgenden von Ihrem Kollegen in den Raum gestellten Äußerungen:

a) Die Installation und Wartung eines Datenbanksystems ist aufwendig, die Erstellung eines eigenen Datenformats ist straight-forward und flexibler.

b) Mehrbenutzersynchronisation wird in diesem Fall nicht benötigt.

c) Es ist unsinnig, das jeder Entwickler zunächst eine eigene Anfragesprache (SQL) lernen muss, nur um Daten aus der Datenbank zu extrahieren.

d) Redundanz ist hilfreich, wieso sollte man auf sie verzichten?

Gruppenaufgabe 1

(24)

Die Installation und Wartung eines Datenbanksystems ist aufwendig, die Erstellung eines eigenen Datenformats ist straight-forward und flexibler.

Lösung:

• Einige Datenformate sind inhärent unflexibel

• Kein Standard für Erweiterung, Verteilung, Recovery, etc. (z. B. Dateigröße in FAT32)

• Keine standardisierten Datentypen

• Aufwand für Erstinstallation einer Datenbank vernachlässigbar

24 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Gruppenaufgabe 1 (a)

(25)

Mehrbenutzersynchronisation wird in diesem Fall nicht benötigt.

Lösung:

• Mehrbenutzersynchronisation ist inhärent notwendig, wenn mehrere Personen auf die Datenbank zugreifen

• Eigenschaften, die nicht einfach “nachgepatched” werden kann

• Man muss sich keine Gedanken über Nebenläufigkeit machen

Gruppenaufgabe 1 (b)

(26)

Es ist unsinnig, das jeder Entwickler zunächst eine eigene Anfragesprache (SQL) lernen muss, nur um Daten aus der Datenbank zu extrahieren.

Lösung:

• Ein eigenes Datenformat und dessen API muss auch gelernt werden

• SQL ist standardisiert und kann auch beim Wechsel des DBMS weiterverwendet warden

• Alle Datenbankentwickler sprechen die gleiche Sprache à man versteht Anfragen, die jemand anders geschrieben hat

26 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Gruppenaufgabe 1 (c)

(27)

Redundanz ist hilfreich, wieso sollte man auf sie verzichten?

Lösung:

• Redundanz sorgt für Anomalien, etwa beim Updaten von Daten.

Gruppenaufgabe 1 (d)

(28)

Finden Sie ein Beispiel für ein Problem (bzw. eine Inkonsistenz), die auftreten kann, wenn unkontrolliert parallel auf Daten zugegriffen wird. Ein traditionelles Beispiel hierfür ist eine gegenseitige Banküberweisung zwischen zwei Konten A und B. Wenn A einen Betrag x zu B überweist und B einen Betrag x’ zu A, sollte immer gelten Kontostand(A) + Kontostand(B) ist konstant, da sonst Geld verschwunden ist. Konstruieren Sie einen Ablauf zweier gegenseitiger Überweisungen, bei dem die Eigenschaft, dass die Kontostandssumme konstant sein soll nach dem Abschluss der zwei Überweisungen verletzt ist.

28 David Dejori | Tutorübung zu Grundlagen Datenbanken | Wintersemester 2019/20

Gruppenaufgabe 2

(29)

Finden Sie ein Beispiel für ein Problem (bzw. eine Inkonsistenz), die auftreten kann, wenn unkontrolliert parallel auf Daten zugegriffen wird. Ein traditionelles Beispiel hierfür ist eine gegenseitige Banküberweisung zwischen zwei Konten A und B. Wenn A einen Betrag x zu B überweist und B einen Betrag x’ zu A, sollte immer gelten Kontostand(A) + Kontostand(B) ist konstant, da sonst Geld verschwunden ist. Konstruieren Sie einen Ablauf zweier gegenseitiger Überweisungen, bei dem die Eigenschaft, dass die Kontostandssumme konstant sein soll nach dem Abschluss der zwei Überweisungen verletzt ist.

Lösung:

• A liest eigenen Kontostand in Variable a ein.

• A dekrementiert a um x.

• B liest eigenen Kontostand in Variable b ein.

• B dekrementiert b um x’.

• B liest As Kontostand in Variable a’ ein.

• B inkrementiert a’ um x’.

• B schreibt a’ in As Kontostand zurück.

Gruppenaufgabe 2

Referenzen

ÄHNLICHE DOKUMENTE

a) Geben Sie einen Ausdruck an, der die Relation ¬hoeren erzeugt. Diese enthält für jeden Studenten und jede Vorlesung, die der Student nicht hört einen Eintrag mit.. Matrikelnummer

Gesucht sind die Namen aller Studenten, die genau alle dreistündigen Vorlesungen gehört haben und die zugehörige Prüfung bestanden haben... Hinweis: Beachten Sie, dass die

(f) Bestimmen Sie für jede Vorlesung wie viele Studenten diese hören.. Geben Sie auch Vorle- sungen ohne

Das bedeutet also, dass Kunden gelöscht werden können, ihre Bestellungen aber anonymisiert im System gespeichert bleiben.. (d) Fügen Sie Ihrer Datenbank nun mittels DML-Anweisungen

(ii) WITH-Abfrage für die Gesamtanzahl an Studenten erstellen (iii) Durchschnitt der SWS =

Bestimmen Sie, wie in der Vorlesung gezeigt, den optimalen Ausführungsplan als Baum mit Kosten-/Kardinalitätsabschätzungen mithilfe von dynamischem Programmieren.. Wofür stehen

SQL-92 spezifiziert mehrere Konsistenzstufen (isolation level) durch welche der Benutzer (bzw. die Anwendung) festlegen kann, wie stark eine Transaktion von anderen parallel

Ein Spieler gewinnt ein solches Spiel, falls sein Gegner nicht mehr