• Keine Ergebnisse gefunden

Aufgabenblatt Nr. 12 (last but not least) Abgabe: Mittwoch 11. Juli

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufgabenblatt Nr. 12 (last but not least) Abgabe: Mittwoch 11. Juli"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Fachbereich 12 – Institut für Informatik Dr. Karsten Tolle

Datenbanken und Informationssysteme (DBIS)

Grundlagen der Programmierung 2 Aufgabenblatt Nr. 12 (last but not least)

Abgabe: Mittwoch 11. Juli vor! der Vorlesung

Aufgabe 1 (32 Punkte) Normalformen

Gegeben sei das Relationenschema R = (A, B, C, D, E). Geben Sie für die jeweils angegebenen funktionalen Abhängigkeiten an:

1. welche Schlüssel für die Relation existieren 2. welches die NICHT-Primen Attribute sind

3. ob sich R in 2. Normalform befindet (mit kurzer Begründung).

Gehen Sie davon aus, dass die 1. Normalform vorliegt.

a) F = {A  C, B  D, C C}

b) F = {A  E, E  A, C  AD}

c) F = {D  ABCE, AB  DE, CE  AB}

d) F = {AB  CE, AD  ABD, E  D}

e) F = {ABCDE  ACE, AD  BC, BC  E, E  D}

// Bis e) sind dies die Aufgaben von Blatt 11, die Schlüssel sollten Sie also schon gefunden // haben (bzw. im Tutorium besprochen haben). … wer diese trotzdem nicht hat, muss die // Schlüssel halt berechnen.

f) F = {AB  C, D  ACD, BC  E}

g) F = {B  AC, AD  BE, AB  D, D  B }

Aufgabe 2 (35 Punkte) Sicherheit

Erstellen Sie ein SQL-Script (und schicken Sie dieses zusätzlich per E-Mail an Ihren Tutor – Kommentare nicht vergessen), welches folgendes umsetzt:

1. Eine Datenbank mit dem Namen „prg2_blatt12_2_2018“ erzeugt. Im Folgenden nur noch Datenbank genannt.

2. Anlegen eines neuen Benutzers, der Ihren Vornamen als Name hat und dem Passwort

„prg2_2018“. … im Weiteren nur noch Benutzer genannt.

3. Definieren Sie eine Rolle namens „role_prg2“;

4. Weisen Sie der Rolle alle Rechte für diese Datenbank zu.

5. Zuweisen der Rolle „role_prg2“ an den Benutzer.

6. Anlegen einer Tabelle „person“, mit den Attributen: ID, Name, Vorname, Status. Wobei Status den Default-Wert „private“ haben soll.

7. Einfügen von mindestens drei Datensätzen in die Tabelle.

8. Anlegen einer View „person_view“, welche nur die Personen mit einem Status = „private“

anzeigt.

9. Eine Anfrage, welche den Hashwert für das Passwort „prg2_2018“ anzeigt.

10. Eine Anfrage, welche den Hashwert für den Benutzer (sollte also der gleiche wie unter 10 sein) aus der entsprechenden Tabelle des DBMS anzeigt.

11. Setzen der System-Variablen „read_only“ auf true. Geben Sie in einem Kommentar hierzu an, was die Auswirkungen dieser Einstellung sind. Testen Sie dies möglichst unter ihrem

gewohnten Account und auch als mit dem neu angelegten Benutzer.

12. Testen Sie und geben Sie in einem Kommentar im Script an, ob der Benutzer nach dem Einloggen die Datenbank, Tabelle und View sieht und auf diese zugreifen kann. Falls nicht, versuchen Sie zu ergründen woran dies liegt und was getan werden muss, um dies zu ändern.

(2)

Aufgabe 3 (9 Punkte) Sicherheit

In der Konfigurationsdatei für ihr DBMS finden Sie folgende Zeilen:

[mysqld]

skip-show-database

bind-address = 127.0.0.1 secure-file-priv=0

Erläutern Sie in eigenen Worten, was diese drei Eintragungen bedeuten.

Aufgabe 4 (24 Punkte) SQL Group by having

Die Grundlage für die Bearbeitung dieser Aufgabe bildet der SQL-Dump auf der PRG-2 Seite. Dieser wird nach der Vorlesung am 04. Juli veröffentlicht.

Erstellen Sie für folgende Anfragen entsprechende Lösungen in SQL (geben Sie die Zusätzlich gefragten Punkte als Kommentare im SQL-Script an und schicken Sie dieses an Ihren Tutor).

a) Geben Sie die Liste der Postleitzahlen und der Anzahl für Eintragungen von diesen in der Tabelle strassenverzeichnis an. Sortieren Sie das Ergebnis absteigend nach der Anzahl und begrenzen Sie das Ergebnis aus die Ergebnisse mit einer Anzahl größer als 25. Siehe Beispielergebnis unten, passen Sie in Ihrer Lösung die Attributnamen entsprechend des Beispielergebnisses an.

b) Geben Sie zwei mögliche Schlüsselkandidaten für die View "strassen_polizei" an (basierend auf den gegebenen Daten) und belegen Sie Ihre Behauptung durch je eine entsprechende "Group by" Anfragen. Begründen Sie ebenfalls jeweils kurz, warum die Minimalität gegeben ist.

c) Welches oder welche Polizeireviere decken die meisten Postleitzahlen ab? Geben Sie mindestens die Anzahl der abgedeckten Postleitzahlen und die Nummer der

Polizeireviere aus.

Beispielergebnis 4a)

Wichtige Termine und Informationen:

PRG-2 Klausur am Montag den 30. Juli Anmeldung bis 2 Wochen vorher

Start: 9:00 Uhr (Dauer: 120 Minuten)

Wo: Hörsaalgebäude Bockenheim Vorlesungsräume HIII, HIV, HV und HVI (wer genau in welchem Raum schreibt, wird noch bekannt gegeben) Studierendenausweis mitbringen! … auf der PRG-2 Seite auf Änderungen achten!

PRG2-Seite:

http://www-stud.rbi.informatik.uni-frankfurt.de/~prg2/SS2018/index.html

Referenzen

ÄHNLICHE DOKUMENTE

Tragen Sie sich dabei selbst (also mit Ihren Namen und Vornamen) auch als Person ein, die auf Bildern gezeigt wird. c) Anfrage 1: Listen Sie die Bilder zusammen mit der ID und

6. Erzeugen Sie eine neue Tabelle ABFLUG2, die vollständig auf der Struktur der Tabelle ABFLUG beruht. Benennen Sie bei der Kopier-Operation die Spalte KAPITAEN in die Spalte PILOT

7. Erzeugen Sie eine neue Tabelle AUSLEIHE2, die vollständig auf der Struktur der Tabelle AUSLEIHE beruht. Benennen Sie bei der Kopier-Operation die Spalte BNR in die Spalte

Der Ablauf, der Inhalt und die Ergebnisse dieser vier Schritte sollten bereits in RDB1 im Aufgabenblatt 4: View Integration (Aufgabe 4.2) genauer beschrieben

Jeder Schauspieler, der noch keine Zahl hat und mit einem der Schauspieler mit der Zahl 1 in einem Film zusammen gespielt haben, bekommt eine Kevin Bacon Zahl von 2. Das

Wenn ihr jetzt mit Statement 6 einen zweiten Index baut und wieder Statement 7 ausführt, hat sich die Ausführungszeit der Anfrage um zwei Drittel reduziert (dauert ungefähr 10

Transact-SQL ist eine proprietäre Erweiterung des SQL-Standards und erweitert den SQL-Standard um Funktionen wie Prozedurale Programmierung, lokale Variablen,

Transact-SQL ist eine proprietäre Erweiterung des SQL-Standards und erweitert den SQL-Standard um Funktionen wie Prozedurale Programmierung, lokale Variablen,