Skip to content

Commit

Permalink
Kursabschluss SS2022
Browse files Browse the repository at this point in the history
  • Loading branch information
Johannes Schildgen committed Jul 18, 2022
1 parent bcc404c commit d815d68
Show file tree
Hide file tree
Showing 24 changed files with 1,078 additions and 949 deletions.
18 changes: 8 additions & 10 deletions 1.html
Original file line number Diff line number Diff line change
Expand Up @@ -46,35 +46,33 @@ <h4 style="text-align:center">&nbsp;</h4>
</section>
<section data-hide-from="2V">
<h2>Vorlesung</h2>
<div style="position: absolute; top: 120px; right:50px; font-size:230px"><!--<i class="fas fa-university green">--><i class="fab fa-youtube green"></i></div>
<div style="position: absolute; top: 120px; right:50px; font-size:230px"><i class="fas fa-university green"><!--<i class="fab fa-youtube green">--></i></div>
<h4>Vorlesung (ab <span data-metadata="lecture_startdate"></span>)</h4>
<ul data-metadata="lecture_times">
<li></li>
</ul>
</section>
<section data-hide-from="!2V">
<h2>Vorlesung</h2>
<div style="position: absolute; top: 120px; right:50px; font-size:230px"><!--<i class="fas fa-university green">--><i class="fab fa-youtube green"></i></div>
<div style="position: absolute; top: 120px; right:50px; font-size:230px"><i class="fas fa-university green"><!--<i class="fab fa-youtube green">--></i></div>
<h4>Vorlesung (ab 2021-03-18)</h4>
<ul>
<li>Do, 13:45 Uhr (über YouTube Live)</li>
</ul>
</section>
<section data-hide-from="2V">
<h2>Übung</h2>
<h4>Übungblätter</h4>
<h4>Übungblätter (ab <span data-metadata="first_exercise_sheet_date"></span>)</h4>
<ul>
<li>Jede Woche ein Übungsblatt; insgesamt 12 Stück</li>
<li>Aufgabe 1 (gibt i.d.R. 10 Punkte):<br>Abgabe im GRIPS</li>
<!--<li>Weitere Aufgaben zur Besprechung in Übung</li>-->
<li>Aufgabe 1 (gibt i.d.R. 10 Punkte): Abgabe im GRIPS</li>
<li>Weitere Aufgaben zur Besprechung in Übung</li>
</ul>
<br>
<h4>Übung (ab <span data-metadata="exercise_startdate"></span>)</h4>
<ul>
<li>Besprechung von Aufgabe 2 etc. in 2er-Gruppen </li>
<li>5-Minuten-Slots über Zoom</li>
<li><span data-metadata="exercise_time"></span>: Beispiellösung über YouTube Premiere</li>
</ul>
<ul data-metadata="exercise_times">
<li></li>
</ul>
<aside class="notes">Achtung: Es ist nicht möglich, Punkte für die Übung zu bekommen, wenn im GRIPS die Deadline abgelaufen ist oder die Abgabe nicht vollständig eingereicht wurde.</aside>
</section>
<section data-hide-from="!2V">
Expand Down
2 changes: 1 addition & 1 deletion 2.html
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ <h4 style="margin-top: 20px">Entität</h4>
<h1>Was ist ein sinnvoller Entitätstyp?</h1>
<ul>
<li>Webshop</li>
<li data-poll="correct">Kunde</li>
<li data-poll="correct">Blumen</li>
<li>Login</li>
<li>Titanik</li>
</ul>
Expand Down
86 changes: 43 additions & 43 deletions 3.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion 4.html
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ <h3>CREATE TABLE - Spaltenoptionen</h3>
passwort CHAR(32), land VARCHAR(100) DEFAULT 'Deutschland',
geworben_von INT REFERENCES kunden(kundennummer));</code></pre>

<h4>Constraints (Integritätsbedingungen):</h4>
<h4>Spaltenoptionen:</h4>
<ul class="small">
<li>PRIMARY KEY: Primärschlüssel</li>
<li>NOT NULL: Verbot von NULL-Werten</li>
Expand Down
4 changes: 2 additions & 2 deletions 6.html
Original file line number Diff line number Diff line change
Expand Up @@ -221,8 +221,8 @@ <h2>SQL-Injections</h2>
<div style="position: absolute; top: 20px; right:5px; font-size:160px"><i class="fas fa-exclamation-triangle red"></i></div>
<p class="small">Vorsicht beim Erzeugen von Query-Strings,<br>die Benutzereingaben beinhalten! (&rightarrow; <a href="https://www.xkcd.com/327/" target="_blank">xkcd.com/327</a>)</p>
<pre style="width:100%"><code class="java" data-trim contenteditable data-sample='code/JDBC_Webshop/src/lecture/ZeigeProdukt_SQLInjection.java#23-24'></code></pre>
<p class="fragment small"><em>Geben Sie einen Hersteller ein: </em><input type="text" value="'; DROP TABLE webshop.produkte;" style="font-size: 22pt; width:13cm"></p>
<p class="fragment"><input type="text" value="' UNION (SELECT email||' '||passwort, NULL FROM webshop.kunden)" style="font-size: 22pt; width:25cm"></p>
<p class="fragment small"><em>Geben Sie einen Hersteller ein: </em><input type="text" value="'; DROP TABLE webshop.produkte; --" style="font-size: 22pt; width:13.3cm"></p>
<p class="fragment"><input type="text" value="' UNION (SELECT email||' '||passwort, NULL FROM webshop.kunden) --" style="font-size: 22pt; width:25cm"></p>
<aside class="notes">Mit SQL-Injections lassen sich Sicherheitslücken ausnutzen, die es dem Benutzer ermöglichen, Datenbankbefehle einzuschleusen. Das hier gezeigte Programm ist gut gemeint, aber unsicher. Wenn der Benutzer Hersteller Calgonte eingibt, soll <code>SELECT ... WHERE hersteller = 'Calgonte'</code> ausgeführt werden. Dadurch, dass der Benutzerinput ohne Überprüfung und Maskierung von Sonderzeichen einfach so als Teil der Anfrage an den String drangehangen wird, ermöglicht man dem Anwender beliebige Anfragen auf der Datenbank auszuführen. Ersterer Hack würde die Produkte-Tabelle droppen. Dies kann man mit der JDBC-Parameter-Einstellung <code>allowMultiQueries=false</code> verhindern. Der zweite Hack würde dennoch funktionieren. Er ermöglicht dem Angreifer die Einsicht der E-Mail-Adressen und Passwörter aller Kunden. Durch die Eingabe von <code>' OR 1=1 --</code> findet man alle Produkte.</aside>
</section>

Expand Down
97 changes: 97 additions & 0 deletions exercises/ex1 old.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Datenbanken - Übungsblatt 1</title>
<link rel="stylesheet" href="../exercises/exercises.css">
<link href="../lib/fontawesome.all.min.css" rel="stylesheet">
</head>
<body>
<header>
<div>
<div>
<b>Datenbanken - SS 2022</b><br>
Prof. Dr.-Ing. Johannes Schildgen<br>
[email protected]<br>
<b>Übungsblatt 1 vom 05.04.2022</b>
</div>
<div><img src="../img/oth.png" style="border:0; height:50px"></div>
</div>
<hr>
</header>
<section style="padding-top: 2.5cm">
<h1>Aufgabe 1: Datenbanken-Grundbegriffe (10P)</h1>
<p>Abgabe-Deadline: 05.04.2022 8:00 im Moodle</p>
<p>Welche der folgenden Aussagen sind wahr? Jede richtige Antwort gibt 1 Punkt.</p>
<table border="0" style="width: 100%">
<tr>
<td style="width:10mm">&nbsp;</td>
<td>&nbsp;</td>
<td style="text-align: center; width:15mm">Richtig</td>
<td style="text-align: center; width:15mm">Falsch</td>
</tr>
<tr>
<td>1.</td><td>In OLTP-Systemen sind Transaktionen oft komplex und langdauernd.</td>
<td style="text-align: center"><i class="far fa-square"></i></td>
<td style="text-align: center"><i class="far fa-square"></i></td>
</tr>
<tr>
<td>2.</td><td>Ein Data-Warehouse ist eine separate DB, die parallel zur operationalen DB zum Einsatz kommt.</td>
<td style="text-align: center"><i class="far fa-square"></i></td>
<td style="text-align: center"><i class="far fa-square"></i></td>
</tr>
<tr>
<td>3.</td><td>Das I in ACID steht für Integrität.</td>
<td style="text-align: center"><i class="far fa-square"></i></td>
<td style="text-align: center"><i class="far fa-square"></i></td>
</tr>
<tr>
<td>4.</td><td>MySQL ist ein Datenbankmanagementsystem.</td>
<td style="text-align: center"><i class="far fa-square"></i></td>
<td style="text-align: center"><i class="far fa-square"></i></td>
</tr>
<tr>
<td>5.</td><td>Ein Befehl einer Anfragesprache, mit dem man eine neue Spalte in eine existierende Tabelle hinzufügen kann, fällt in die Kategorie DDL.</td>
<td style="text-align: center"><i class="far fa-square"></i></td>
<td style="text-align: center"><i class="far fa-square"></i></td>
</tr>
<tr>
<td>6.</td><td>In den DB-Metadaten wird beschreiben, dass Peter die Telefonnummer 0151-12345 hat.</td>
<td style="text-align: center"><i class="far fa-square"></i></td>
<td style="text-align: center"><i class="far fa-square"></i></td>
</tr>
<tr>
<td>7.</td><td>Daten belegen in der Regel mehr Platz als Metadaten.</td>
<td style="text-align: center"><i class="far fa-square"></i></td>
<td style="text-align: center"><i class="far fa-square"></i></td>
</tr>
<tr>
<td>8.</td><td>Das logische Datenmodell legt fest, wie Datensätze intern auf die Festplatte gespeichert werden.</td>
<td style="text-align: center"><i class="far fa-square"></i></td>
<td style="text-align: center"><i class="far fa-square"></i></td>
</tr>
<tr>
<td>9.</td><td>Eine View ist eine Sicht auf die in der Datenbank gespeicherten Daten und kann zum externen Zugriff für Anwendungen dienen.</td>
<td style="text-align: center"><i class="far fa-square"></i></td>
<td style="text-align: center"><i class="far fa-square"></i></td>
</tr>
<tr>
<td>10.</td><td>Wenn ich bei meinem DBS die Storage-Engine umstelle, muss ich mein Tabellenschema komplett neu anpassen.</td>
<td style="text-align: center"><i class="far fa-square"></i></td>
<td style="text-align: center"><i class="far fa-square"></i></td>
</tr>
</table>
</section>

<section>
<h1>Aufgabe 2: ER-Diagramm einer Mitfahrbörse</h1>
<p>Erstellen Sie ein ER-Diagramm für die Mitfahrbörse Blablabla.</p>
<p>Benutzer registrieren sich bei Blablabla mit ihrer Handynummer und geben ihren Namen an. Außerdem beschreiben sie ihr Auto: Farbe und Modell.</p>
<p>Wenn ein Benutzer eine Fahrt erstellt, erhält diese eine automatisch generierte Fahrtnummer. Es müssen Start- und Zielort eingegeben werden, sowie eine beliebige Anzahl von Zwischenstopps. Bei Blablabla geht es nicht ums Geld, daher sind alle Fahrten kostenlos.</p>
<p>Benutzer können sich für Fahrten eines anderen Benutzers eintragen, wenn sie mitfahren möchten. Dazu wird lediglich ein Status notiert, damit klar ist, ob die Meldung noch unbestätigt oder bereits bestätigt ist.</p>
<p>Die Kommunikation erfolgt über SMS, daher braucht Blablabla kein eigenes Nachrichtensystem.</p>
</section>
</body>
</html>
Loading

0 comments on commit d815d68

Please sign in to comment.