From ab9484b343abd995cba915bb0ba4be8907dfa6ec Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Fri, 13 Nov 2015 23:45:26 +0000 Subject: Shorter lecture names --- ws2015/dbs/blaetter/01/abgabe.md | 20 +++++++++++++++ ws2015/dbs/blaetter/02/abgabe.md | 30 ++++++++++++++++++++++ ws2015/dbs/blaetter/03/abgabe.md | 54 ++++++++++++++++++++++++++++++++++++++++ ws2015/dbs/blaetter/04/abgabe.md | 15 +++++++++++ 4 files changed, 119 insertions(+) create mode 100644 ws2015/dbs/blaetter/01/abgabe.md create mode 100644 ws2015/dbs/blaetter/02/abgabe.md create mode 100644 ws2015/dbs/blaetter/03/abgabe.md create mode 100644 ws2015/dbs/blaetter/04/abgabe.md (limited to 'ws2015/dbs/blaetter') diff --git a/ws2015/dbs/blaetter/01/abgabe.md b/ws2015/dbs/blaetter/01/abgabe.md new file mode 100644 index 0000000..5538409 --- /dev/null +++ b/ws2015/dbs/blaetter/01/abgabe.md @@ -0,0 +1,20 @@ +# Aufgabe 1-1 + +a) + - Integration + - Operationen + - Data Dictionary + - Benutzersichten + - Konsistenzüberwachung + - Zugriffskontrolle + - Transaktionen + - Synchronisation + - Datensicherung +b) + Logische Datenunabhängigkeit + ~ Die Benutzersichten (externe Schemata) sollen unabhängig sein vom + logischen Schema (Tabellen o.ä.) + + Physische Datenunabhängigkeit + ~ Das logische Schema soll unabhängig sein vom internen Schema (die + Representation der Daten auf dem Medium) diff --git a/ws2015/dbs/blaetter/02/abgabe.md b/ws2015/dbs/blaetter/02/abgabe.md new file mode 100644 index 0000000..e9d7d5e --- /dev/null +++ b/ws2015/dbs/blaetter/02/abgabe.md @@ -0,0 +1,30 @@ +# Relationales Datenmodell + +a) + Daten (Name der Lieferanden, Adressen) sind redundant gespeichert. +b) + Es ist nicht garantiert, dass `Lieferant`, `Adresse`, oder `(Lieferant, Adresse)` Lieferanden eindeutig identifizieren. + + Ersetzung muss jedoch nach `Lieferant` oder `(Lieferant, Adresse)` vorgenommen werden, nicht nach einer etwaigen eindeutigen Spalte, um Konsistenz der redundanten Daten zu erhalten. + + `UPDATE Tabelle SET Adresse="Badstr. 34" WHERE Lieferant = "Huber" AND Adresse = "Turmstr. 12"` +c) + Die ausschließlich mit dem Lieferanden assoziierten Daten `(Lieferant, Adresse)` gehen verloren. +d) + Bestenfalls kann `("", "", NULL, NULL)` eingefügt werden. + Dies scheint nicht der Semantik der Tabelle zu entsprechen. +e) + ```` {.sql} + CREATE TABLE suppliers + ( id INTEGER PRIMARY KEY + , name VARCHAR UNIQUE + , adress VARCHAR + ); + CREATE TABLE orders + ( id INTEGER PRIMARY KEY + , supplier INTEGER REFERENCES suppliers (id) + , item VARCHAR NOT NULL + , price FLOAT + , UNIQUE (supplier, item) + ); + ```` diff --git a/ws2015/dbs/blaetter/03/abgabe.md b/ws2015/dbs/blaetter/03/abgabe.md new file mode 100644 index 0000000..df6a9b2 --- /dev/null +++ b/ws2015/dbs/blaetter/03/abgabe.md @@ -0,0 +1,54 @@ +# SQL-DDL + +a) + ~~~ {.sql} + CREATE TABLE L + ( lnr VARCHAR(10) PRIMARY KEY + , lname VARCHAR(40) NOT NULL + , sitz VARCHAR(40) + ); + + CREATE TABLE T + ( tnr VARCHAR(10) PRIMARY KEY + , tname VARCHAR(40) NOT NULL + , farbe VARCHAR(40) + , gewicht INTEGER + , preis VARCHAR(40) + ); + + CREATE TABLE P + ( pnr VARCHAR(10) PRIMARY KEY + , pname VARCHAR(40) NOT NULL + , ort VARCHAR(40) + ); + + CREATE TABLE LTP + ( lnr VARCHAR(10) + , tnr VARCHAR(10) + , pnr VARCHAR(10) + , menge INTEGER + , FOREIGN KEY (lnr) REFERENCES L(lnr) + , FOREIGN KEY (tnr) REFERENCES T(tnr) + , FOREIGN KEY (pnr) REFERENCES P(pnr) + , PRIMARY KEY (lnr, tnr, pnr) + ); + ~~~ +b) + ~~~ {.sql} + ALTER TABLE L ADD status INTEGER; + ~~~ +c) + ~~~ {.sql} + ALTER TABLE T MODIFY preis float(2); + ~~~ +d) + ~~~ {.sql} + ALTER TABLE T DROP COLUMN preis; + ~~~ +e) + ~~~ {.sql} + DROP TABLE LTP; + DROP TABLE L; + DROP TABLE T; + DROP TABLE P; + ~~~ diff --git a/ws2015/dbs/blaetter/04/abgabe.md b/ws2015/dbs/blaetter/04/abgabe.md new file mode 100644 index 0000000..708a249 --- /dev/null +++ b/ws2015/dbs/blaetter/04/abgabe.md @@ -0,0 +1,15 @@ +--- +header-includes: + - \usepackage{amsmath} + - \usepackage{amssymb} +--- + +# Natural Join + +Zu $\land$. + +# Anfragen in relationaler Algebra + +a) $\pi_{\texttt{P.pname}}(\sigma_{\texttt{P.ort} = \text{Berlin}}(\texttt{P}))$ +b) $\pi_{\texttt{T.tnr}} \left ( \sigma_{\texttt{L.lname} = \text{Meier}} \left ( \texttt{L} \bowtie \texttt{LTP} \texttt{T} \right ) \right )$ +c) $\pi_{\texttt{T.tname}}(\sigma_{\texttt{P.ort} = \text{Berlin}}(\texttt{P} \bowtie \texttt{LTP} \bowtie \texttt{T}))$ -- cgit v1.2.3