Abgabe-Deadline: 08.12.2020 12:00 im Moodle
Spielen Sie das Spiel SQL Island (http://www.sql-island.de) und lassen Sie sich zum Ende des Spiels ein Zertifikat generieren. Wenn Sie die darauf befindliche Zertifikat-ID im Moodle eintragen, erhalten Sie 10 Bonuspunkte.
Abgabe-Deadline: 08.12.2020 12:00 im Moodle
Erstellen Sie CREATE TABLE
-Befehle, um das folgende ER-Diagramm eines sozialen Netzwerkes in Datenbanktabellen zu überführen. Verwenden Sie zur Umsetzung der Generalisierung die vertikale Partitionierung. Achten Sie auf Primärschlüssel, Fremdschlüssel, UNIQUE-, CHECK- und NOT NULL-Constraints sowie DEFAULT-Werte und wählen Sie geeignete Datentypen. Das eingesetzte DBMS soll PostgreSQL sein.
Hinweise:
Sie können das Schema entweder auf http://sqlfiddle.com/ erstellen (wählen Sie dort oben PostgreSQL 9.6 aus) oder sich mit der PostgreSQL der Hochschule (siehe Aufgabe 2) verbinden.
Wichtig: Um außerhalb des Hochschulnetzwerks auf die PostgreSQL-Datenbank der OTH Regensburg zuzugreifen, müssen Sie eine VPN-Verbindung aufbauen (siehe https://www.oth-regensburg.de/supportwiki/doku.php?id=public:netz:vpn-forticlient).
Installieren Sie den SQL-Client DBeaver (https://dbeaver.io/) oder einen anderen Datenbank-Client und richten Sie dort eine Verbindung zu der folgenden PostgreSQL-Datenbank ein:
Da das Passwort gleich Ihrem Benutzernamen ist, wird empfohlen, es mit ALTER USER ihr_benutzername PASSWORD 'neues_passwort';
zu ändern.
Formulieren Sie diese Anfragen mit SQL:
1. | Legen Sie die Tabellen aus Aufgabe 1 an. |
2. | Fügen Sie zwei Benutzer ein: Benutzernummer 1, Name Olivia und Benutzernummer 2, Name Yvonne. |
3. | Geben Sie die Benutzertabelle vollständig aus. |
4. | Ändern Sie den Namen von Benutzer 1 auf Olivia von Opel. |
5. | Wie viele Benutzer gibt es? |
6. | Welche Benutzer haben ein ' von ' im Namen? |
7. | Löschen Sie Benutzer 1. |
Auf der Webseite des Datenbankmanagementsystems Hyper können Sie SQL-Anfragen gegen das Uni-Schema aus dem Kemper-Datenbanksysteme-Buch stellen: http://hyper-db.de/interface.html
Professoren(PersNr, Name, Rang, Raum)
Studenten(MatrNr, Name, Semester)
Vorlesungen(VorlNr, Titel, SWS, gelesenVon)
hoeren(MatrNr, VorlNr)
Vorlesungen.gelesen_von ist Fremdschlüssel auf Professoren.PersNr
hoeren.MatrNr ist Fremdschlüssel auf Studenten.MatrNr
hoeren.VorlNr ist Fremdschlüssel auf Vorlesungen.VorlNr
Formulieren Sie die folgenden Anfragen mittels SQL. Verwenden Sie bitte nicht das Relax-Tool. Verwenden Sie bei den Fragen 1 bis 4 keine Unteranfragen oder CTEs. Richtige Antworten geben 2 Punkte. Für teilweise richtige Antworten können leider keine Teilpunkte gegeben werden, da ein automatisches Query-Bewertungssystem eingesetzt wird. Achten Sie daher auch darauf, dass keine Tippfehler in Ihren Anfragen sind.
1. | Wie viele Professoren, die den Rang C4 haben, gibt es? (2P) |
2. | Geben Sie die Namen der Studierenden aus, die die Vorlesung "Grundzüge" hören, und zwar alphabetisch aufsteigend sortiert. (2P) |
3. | Geben zu jedem Professor, der mindestens zwei Vorlesungen hält, den Namen sowie die Gesamt-SWS-Zahl der von ihm oder ihr gehaltenen Vorlesungen aus. (3P) |
4. | Wie sind die Namen der Studierenden, die zusammen mit dem Studenten namens "Feuerbach" zumindest eine gemeinsame Vorlesung hören? Geben Sie keinen Namen doppelt aus. (3P) |
5. | Welche Professoren haben den Rang C4 und halten keine einzige 4-SWS-Vorlesung. |