• Keine Ergebnisse gefunden

Datenbanken ¨Ubungsblatt 4 – SoSe 2014

N/A
N/A
Protected

Academic year: 2022

Aktie "Datenbanken ¨Ubungsblatt 4 – SoSe 2014"

Copied!
6
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Datenbanken

Ubungsblatt 4 – SoSe 2014 ¨

Hinweis: Wertigkeiten sind nach Unterpunkten der jeweiligen Aufgaben gruppiert.

1. Dr¨ucken Sie folgende Anfragen auf die NAWI Datenbank in Abbildung 1 mithilfe von SQL aus:

a) SVN aller Angestellten, welche mehr als EUR 3000 verdienen.

b) Liste aller Fachbereichsnamen und -nummern mit Vor- und Nachname des jeweiligen Leiters.

c) Vorname, Nachname und Geburtsdatum aller Angestellten der Fachbe- reiche in Salzburg.

Wertigkeit: 1 Punkt d) Liste aller Fachbereiche (Name und Nummer), die keine Projekte haben.

e) SVN aller Angestellten, die Abh¨angige haben und weniger als EUR 2000 verdienen.

Wertigkeit: 1 Punkt f) Alle Projekte (Name und Nummer) des Fachbereiches f¨ur Computerwis- senschaften (Name ’FBCS’), die entweder in Wien oder in Salzburg ab- gewickelt werden.

Wertigkeit: 1 Punkt g) Standorte, an denen es einen Fachbereich gibt und/oder ein Projekt ab-

gewickelt wird.

h) Standorte, an denen es sowohl einen Fachbereich gibt als auch ein Projekt abgewickelt wird.

Wertigkeit: 1 Punkt 2. Bezugnehmend auf das Schema der NAWI Datenbank in Abbildung 2, dr¨ucken

Sie folgende Anfragen mithilfe von SQL aus.

a) Jahresbruttogehalt aller Angestellten (in der Tabelle Angestellte sind Monatsl¨ohne gespeichert).

b) Name, Nummer und Personalkosten aller Projekte, die einem Fachbe- reich in Salzburg zugeordnet sind. Annahmen: Personalkosten bestehen nur aus L¨ohnen; ein Angestellter arbeitet f¨ur h¨ochstens ein Projekt.

c) Niedrigster und h¨ochster Lohn pro Fachbereich.

Wertigkeit: 2 Punkte

(2)

Angestellte

VName NName SVN GDatum Adresse Geschlecht Lohn VorgSVN FNummer

Fachbereiche

FName FNummer LeiterSVN StartDatum

FBStandorte

FNummer Standort

Projekte

PName PNummer PStandort FNummer

arbeitenAn

AngSVN PNummer Stunden

Abh¨angige

AngSVN AbhName Geschlecht GDatum Beziehung

Abbildung 1: Schema der NAWI Datenbank.

d) Angestellter mit dem niedrigsten Pro-Kopf-Einkommen, wobei das Pro- Kopf-Einkommen aus dem Lohn geteilt durch die Anzahl der Personen, die davon leben m¨ussen (Angestellter und jeweilige Abh¨angige) errech- net wird.

Wertigkeit: 1 Punkt 3. (Pr¨ufungsbeispiel 2013-07-02) Eine Datenbank speichert Daten zu einem

Getr¨ankeh¨andler. Hier ein Auszug.

Getr¨ank

ID Marke Produkt Typ 1 Sinalco Cola Zero 2 Cardinal Bier Lemon taste Beh¨alter

ID Volumen Name 7 0.5 Flasche 11 0.33 Dose Kunde

StrNr Land Name

123 CH Coop

123 IT Esselunga 253 AT Billa

(3)

Angestellte

VName NName SVN GDatum Adresse Geschlecht Lohn VorgSVN FNummer

Fachbereiche

FName FNummer LeiterSVN StartDatum

FBStandorte

FNummer Standort

Projekte

PName PNummer PStandort FNummer

arbeitenAn

AngSVN PNummer Stunden

Abh¨angige

AngSVN AbhName Geschlecht GDatum Beziehung

Abbildung 2: Schema der NAWI Datenbank.

Verkauf

GID BID StrNr Land AnzBeh¨alter

1 7 123 CH 2000

2 7 123 CH 3500

2 11 123 IT 500

1 11 253 AT 400

a) Schreiben Sie eine SQL Anfrage, welche alle Marken ausgibt, deren Biere in Italien oder in der Schweiz verkauft werden.

b) Schreiben Sie eine SQL Anfrage, welche die Kunden ausgibt, die die gr¨oßte Menge Bier (in Litern, also Volumen) abgenommen haben.

Wertigkeit: 2 Punkte 4. (Pr¨ufungsbeispiel 2013-09-23) Eine Flugdatenbank mit folgendem relationa- len Schema speichert Informationen zu Flugzeugen, Flugzeugmodellen, Pilo- ten und Fl¨ugen.

• Flugzeug[FzNum, Name, Ort, ModellName]

Seriennummer (FzNum), Name des Flugzeuges (Name), Heimflughafen (Ort) und Name des Flugzeugmodells (ModellName)

• Modell[MName, Herst, Sitze, SpWeite, Geschw]

Modellname (MName), Hersteller des Modells (Herst), Anzahl der Sitze (Sitze), Spannweite (SpWeite) und H¨ochstgeschwindigkeit (Geschw).

• Pilot[SVN, VName, NName, Adresse, Gehalt]

(4)

Sozialversicherungsnummer (SVN), Vorname (VName), Nachname (NNa- me), Adresse (Adresse) und Gehalt (Gehalt)

• Flug[FgID, PilotSVN, FlugzeugNum, OrtAb, OrtAn, ZeitAb, ZeitAn]

Flugnummer (FgID), SVN des Piloten (PilotSVN), Seriennummer des Flugzeuges (FlugzeugNum), Abflugort (OrtAb), Zielort (OrtAn), Ab- flugzeit (ZeitAb), Ankunftszeit (ZeitAn)

Die Schl¨ussel sind unterstrichen und es gelten folgende Fremdschl¨usselbeziehungen:

• ModellName → MName

• PilotSVN →SVN

• FlugzeugNum →FzNum

a) Schreiben Sie eine SQL Anfrage, welche Vor- und Nachname aller Pilo- ten auflistet, die nie ein Flugzeug des Modells “SKR729” geflogen sind.

Wertigkeit: 1 Punkt b) Schreiben Sie eine SQL Anfrage, die f¨ur jeden Hersteller, der mehr als drei Flugzeugmodelle herstellt, dessen Namen und die Anzahl der her- gestellten Flugzeuge mit mehr als 200 Sitzen auflistet. Die Ausgabe soll nach der Anzahl der hergestellten Flugzeug (mit mehr als 200 Sitzen) sortiert sein, sodass der Hersteller mit den meisten Flugzeugen zuerst angezeigt wird.

Wertigkeit: 1 Punkt

Weitere, optionale ¨Ubungen

5. Abbildung 3 zeigt das Schema der NAWI Datenbank.

a) Erstellen Sie die Tabellen f¨ur Fachbereiche und FBStandorte in SQL, einschließlich Schl¨ussel- und Fremdschl¨usselbeziehungen.

b) F¨ugen Sie eine neue SpaltePLZ (Postleitzahl) zur TabelleFBStandorte hinzu. Keine zwei Fachbereiche k¨onnen die gleiche Postleitzahl haben.

Die Werte vonPLZ bewegen sich zwischen 1000 und 9999. Die Angabe der Postleitzahl ist verpflichtend.

Hinweis: Die Angabe der Bedingungen f¨ur neue Spalten folgt der ent- sprechenden Syntax des create tableBefehls.

c) Erstellen Sie zus¨atzlich die Tabelle Angestellte und erg¨anzen Sie Fach- bereiche um die fehlende Fremdschl¨usselbedingung. SQL Syntax:

alter table R add

foreign key (A1, A2, ..., An) referencesT(B1, B2, ..., Bn)

d) F¨ugen Sie den Fachbereich “Computerwissenschaften” mit Standort

“TechnoZ” und dem zugeh¨origen Fachbereichsleiter “Andreas Uhl” in die Tabellen ein. Der Fachbereichsleiter hat keinen Vorgesetzten.

e) Auf welche Schwierigkeiten stoßen Sie, wenn Sie die Tabellen wieder l¨oschen wollen? Wie l¨asst sich dieses Problem in SQL l¨osen?

(5)

Hinweis: Lesen Sie die Dokumentation des drop table Befehls von PostgreSQL.

Angestellte

VName NName SVN GDatum Adresse Geschlecht Lohn VorgSVN FNummer

Fachbereiche

FName FNummer LeiterSVN StartDatum

FBStandorte

FNummer Standort

Projekte

PName PNummer PStandort FNummer

arbeitenAn

AngSVN PNummer Stunden

Abh¨angige

AngSVN AbhName Geschlecht GDatum Beziehung

Abbildung 3: Schema der NAWI Datenbank.

6. (Pr¨ufungsbeispiel 2013-07-02) ER-Diagramm in Abbildung 4 beschreibt die Produktionsabteilung einer Firma, die Laptops herstellt.

Verwenden Sie SQL um die passenden Tabellen zu den Entit¨atstypenPr¨ufung und Notebook Modelle zu erzeugen. F¨ur die Definition der Fremdschl¨ussel k¨onnen Sie annehmen, dass die referenzierten Tabellen schon vorhanden sind.

(6)

Angestellte

Designer Techniker Notebook_Modelle

Notebooks Prüfung

isA

N M

Experte_fuer

1

N gehört_zu

N 1

angewendet 1

N führt_aus Email

Name

NName VName

SVN

Jahr_Expertise

Modell_Code

Reg_Nummer Prüfung_ID

Datum Jahrgang

Alter Geschlecht

Plattenkapazität

Abbildung 4: Schema der Produktionsabteilung.

Referenzen

ÄHNLICHE DOKUMENTE

Wertigkeit: 2 Punkte 2. Was ist die richtige Modellierung f¨ ur folgenden Sachverhalt: An einen Com- puter k¨ onnen mehrere Monitore angeschlossen werden, aber ein Monitor wird an

(Pr¨ ufungsbeispiel 2013-07-02) Das ER-Diagramm in Abbildung 1 beschreibt die Produktionsabteilung einer Firma, die Laptops herstellt. Erstellen Sie aus dem ER-Diagramm das zugeh¨

Dr¨ ucken Sie folgende Anfragen jeweils (i) mithilfe der elementaren Operatoren, (ii) mithilfe der elementaren und zus¨ atzlichen Operatoren der relationalen Algebra aus:. a) SVN

b) F¨ ugen Sie eine neue Spalte PLZ (Postleitzahl) zur Tabelle FBStandorte hinzu. Keine zwei Fachbereiche k¨ onnen die gleiche Postleitzahl haben.. Die Werte von PLZ bewegen

Die Indizes sind flach (keine Baumstruktur) und dense. Ein Block speichert 200 Index Eintr¨ age oder 50 Datens¨ atze. Es werden folgende Anfragen auf R gestellt. Q2 verwendet

b) List the join orders which an optimizer should consider (i.e., orders in which pairs of relations can be joined together to compute the query result). We assume that the

Bestimme die Reihenfolge, in der die Spuren gelesen werden, und die gesamte Armbewegungskosten (d.h.. Berechne wie viele Blockzugriffe ein Nested-Loop Join mit den folgenden

Die Indizes sind flach (keine Baumstruktur) und dense. Ein Block speichert 200 Index Eintr¨ age oder 50 Datens¨ atze. Es werden folgende Anfragen auf R gestellt. Q2 verwendet