Skip to content
Snippets Groups Projects
Commit 5ff51487 authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Praktikumsunterlagen Versuch 2

parent f48ce110
No related branches found
No related tags found
No related merge requests found
File added
......@@ -47,36 +47,53 @@
Prof.~Dr.~Peter Gerwinski
\end{center}
Aufgabe: Schreiben Sie ein Programm, das auf strukturierte Daten zugreift
und diese per TCP/IP kontrolliert zur Verfügung stellt.
Aufgabe: Stellen Sie einen realistischen Datenbestand
in einer relationalen Datenbank dar.
\begin{multicols}{2}
% \begin{multicols}{2}
\begin{itemize}
\item
Die strukturierten Daten sollen in Gestalt einer Text-Datei zur Verfügung stehen,
z.\,B.\ einer CSV-Datei. Einschränkungen hinsichtlich der Daten,
z.\,B.\ das Ausschließen bestimmter Zeichen aus Strings, sind erlaubt.
Installieren Sie auf einem Rechner, auf dem Sie Administrationsrechte haben,
ein Datenbank-Management-System (DBMS, z.\,B.\ PostgreSQL, MariaDB).
Legen Sie einen Nutzer mit Passwort an.
\item
Ihr Programm soll über einem TCP-Port
Befehle zur selektiven Datenabfrage entgegennehmen
und die angeforderten Daten über dieselbe TCP-Verbindung ausliefern.
Machen Sie sich mit dem Umgang mit dieser Datenbank vertraut.
Hierfür können Sie z.\,B.\ die Tabelle,
für die Sie in Praktikumsversuch 1 ein Abfragesystem programmiert haben,
in die Datenbank einspielen.
Geben Sie SQL-Befehle sowohl von Hand ein
als auch über vorab erstellte SQL-Skripte.
\item
Das Definieren einer für diese Situation angemessenen Abfragesprache
ist Teil der Praktikumsaufgabe.
Überlegen Sie sich ein realistisches Szenario
als Anwendungsbeispiel für eine relationale Datenbank.
Nutzen Sie für Ihre Daten verschiedene (sinnvolle!) Datentypen.
\item
Implementieren Sie eine Passwort-Abfrage,
über die sich berechtigte Benutzer Ihres Informationssystems
authentifizieren können.
Beispiel 1: Musiksammlung (vgl.~die Beispiele aus der Vorlesung
bzw.~aus \url{https://de.wikipedia.org/wiki/Normalisierung_(Datenbank)}
zum Thema "`Normalformen"')
\item
Zusatzaufgabe 1: Implementieren Sie auch Schreibzugriff auf die Text-Datei.
Beispiel 2: Online-Shop.
Hier gibt es typischerweise Listen für die Kundschaft
inklusive teilweise mehrerer Adressen,
Listen von Waren, Listen von Bestellungen, \dots
\item
Zusatzaufgabe 2: Demonstrieren Sie, wie sich die Authentifizerung
durch Mitlesen des Netzwerkverkehrs umgehen läßt.
Achten Sie bei der Organisation Ihrer Daten auf die Einhaltung
der in der Vorlesung vorgestellten Normalformen.
\item
Zusatzaufgabe 3: Gestalten Sie die Authentifizierung so, daß sie sich
durch Mitlesen des Netzwerkverkehrs nicht mehr umgehen läßt.
Erstellen Sie ein SQL-Skript, mit dem Sie diese Datenbank
automatisch einspielen können. (Beispiele dazu finden Sie z.\,B.\ unter
\url{https://gitlab.cvh-server.de/pgerwinski/dbs/-/tree/2023ws/20231123}.)
\item
Stellen Sie Abhängigkeiten zwischen den Tabellen
durch primäre Schlüssel (\lstinline[style=cmd]{PRIMARY KEY}),
Fremdschlüssel (\lstinline[style=cmd]{FOREIGN KEY})
und Tabellenverknüpfungen (\lstinline[style=cmd]{JOIN}) her.
\item
Erstellen Sie Sichten auf Tabellen (\lstinline[style=cmd]{VIEW})
für praxistypische Anwendungsfälle (z.\,B.\ in Beispiel 1:
Liste sämtlicher Musikstücke inklusive Album, Erscheinungsjahr usw.).
\end{itemize}
\end{multicols}
% \end{multicols}
\strut\hfill\emph{Viel Erfolg!}
......@@ -88,7 +105,7 @@
\setlength{\leftskip}{3cm}
Stand: 22.\ November 2023
Stand: 28.\ November 2023
Copyright \copyright\ 2023\quad Peter Gerwinski\\
Lizenz: \mylicense
......
../common/pgscript.sty
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment