Gib in den folgenden Relationen sinnvolle Primärschlüssel an. Begründe deine Wahl. Es kann auch zusammengesetzte Primärschlüssel geben.
LaptopReparaturListe(laptopModell, laptopHersteller, laptopSerienNummer, fehlerMeldung, reparaturFertig, reparaturPreis)
Patient(patientID, patientName, patientAdresse)
Arztbesuch(datum, patientID, diagnose)
Eine Fluggesellschaft möchte eine neue Datenbank programmieren. Diese soll die notwendigen Wartungen und daraus resultierende Mängel und Reparaturen ihrer Flugzeugflotte modellieren. Erstelle aus den unten stehenden Anforderungen ein passendes ER-Diagramm.
- Über ein Flugzeug werden Informationen über den Hersteller, das Modell, die Anzahl der Fahrgestelle und der Triebwerke und das Baujahr gesammelt.
- Für eine Wartung wird gespeichert, an welchem Flugzeug sie durchgeführt wurde, welches Service-Team verantwortlich war, wann die Wartung durchgeführt wurde, und es werden Mängel erfasst.
- Jeder Mangel wird mit einem Text beschrieben und muss in einer eigenen Reparatur behoben werden.
- Für eine Reparatur wird ebenfalls das Service-Team und das Datum gespeichert, das die Reparatur durchgeführt hat.
- Jedes Service-Team hat einen Namen und besteht aus einem Hauptverantwortlichen Arbeiter und mehreren "normalen" Arbeitern.
- Jeder Arbeiter hat einen Namen, einen Jobtitel wie z.B. "Ingenieur" oder "Mechaniker", ein Gehalt und ein Einstellungsdatum.
a)
- Ergänze passende Kardinalitäten im ER-Diagramm aus Aufgabe 2.
- Erstelle für das ER-Diagramm aus Aufgabe 2 ein zugehöriges Relationenmodell.
- Kennzeichne im Relationemodell zu Aufgabe 2 Primär- und Fremdschlüssel wie im Unterricht geübt.
b)
- Die Schule bietet für Schüler die Möglichkeit der Ausleihe von Geräten für schulische Zwecke. Dazu muss der Schüler ein Antragsformular auf der Homepage der Schule ausfüllen. Die Daten werden auf dem zugehörigen Webserver in einer Datenbank gespeichert. Das folgende ER-Diagramm modelliert diesen Realitätsauschnitt. Interpretiere das ER-Diagramm:
- Erweitere das ER-Modell so, dass für alle Geräteklassen die zugehörigen Geräte mit den Angaben über Hersteller, Inventarnummer und Bezeichnung erfasst werden.
Dieser Aufgabe liegt das folgende Relationenmodell zu Grunde:
Formuliere die folgenden Abfragen in SQL:
- Es soll eine Liste mit allen Herstellern erstellt werden.
- Es soll eine Liste mit Produkten ermittelt werden, von denen nicht genügend im Lager vorhanden sind.
- Es soll ermittelt werden, wie viele "Senseo Kaffemaschinen" vom Hersteller "Phillips" vorhanden sind.
- Es soll der Gesamtwert des Lagerbestands ermittelt werden.
Erläutere die folgenden SQL-Abfragen. Gehe dabei auf jeden einzelnen Sprachbefehl ein (SELECT, FROM, WHERE, COUNT, AS, …)
SELECT name, straße, hausnummer FROM kunden WHERE ort = 'Nidda' ORDER BY straße, hausnummer
SELECT produktName, einzelPreis * lagerBestand AS geheimSpalte FROM lager;
SELECT COUNT(*) FROM städte WHERE land = 'Deutschland'
SELECT name, land FROM städte WHERE name LIKE '%heim%'
SELECT land, COUNT(*) FROM städte WHERE name LIKE '%heim%' GROUP BY land
SELECT land, SUM(einwohner) FROM städte GROUP BY land;
Gegeben ist die folgende Datenbankstruktur:
- Kunde(ID, Name, Adresse)
- Telefonvertrag(ID, #KundeID, Freiminuten, Grundgebühr, PreisProMinute, PreisProSMS)
- Gespräche(#KundenID, Datum, Zeit, Minuten)
- SMS(#KundenID, Datum, Zeit, Inhalt)
a) Erläutere, warum in der Relation Gespräche mehrere Attribute als Primärschlüssel markiert sind.
b) Füge mit je einer DML-Abfrage dich selbst als neuen Kunden hinzu, schließe einen Vertrag (ohne Freiminuten mit 19,90€ Grundgebühr, 19ct/Minute und SMS) ab und trage mehrere Gespräche und SMS ein.
c) Du hast einen Fehler auf der Website des Anbieters gefunden. Zur Belohnung bekommst du 10 Freiminuten und deine Grundgebühr wird auf 10,99€ verringert. Erstelle dafür eine DML-Abfrage.
d) Der Monat ist beendet. Berechne mit einer einzigen DQL-Abfrage, wie viel du am Monatsende Bezahlen musst.
e) Du kündigst deinen Vertrag. Lösche die dich betreffenden Datensätze aus allen Tabellen. Erstelle dafür mehrere DML-Abfragen.
Bringe die Datenbank in die 3. Normalform: