Datenbanksprache (SQL) - BFH

Werbung
Vorlesung Datenbanken: Übungen
P. Fierz / FS 2014
Kapitel 5
Datenbanksprache (SQL)
5.1
Das Entity-Relationship Diagramm
ist_vorgesetzter
0..1
0..*
<<Entity>>
Mitarbeiter
<<PK>> mNr : long
Name : string
AhvNr : string
Plz : string
Ort : string
Geschlecht : {M,F}
Geburtsdatum : date
1..*
gehört_zu
1
leitet
1
0..1
<<Entity>>
Abteilung
<<PK>> aNr : long
AName : string
Standort : string [1..*]
<<Entity>>
Leitung
ldate : date
0..*
1
0..*
<<Entity>>
Angehöriger
AGeburtsdatum : d...
AGeschlecht : {M,F}
Partner : boolean
führt_durch
arbeitet_für
0..*
<<Entity>>
Projekt
<<PK>> pNr : long
PName : string
PStandort : string
0..*
<<Entity>>
Anteil
WochenStunden : float
5.2
Das relationen Modell
Mitarbeiter
= ({mNr, Name, AhvNr, Plz, Ort, Geschlecht,
Geburtsdatum, aNr, Vorgesetzter nw},
{mNr},
ks({AhvNr}),
fs({Vorgesetzter}, Mitarbeiter, null),
fs({aNr}, Abteilung, res))
Angehoeriger = ({mNr, Vorname, AGeburtsdatum, AGeschlecht, Partner},
{mNr, Vorname},
fs({mNr}, Mitarbeiter, cas))
Abteilung
= ({aNr, AName, mNr, LeiterSeit},
{aNr},
5-1
Vorlesung Datenbanken: Übungen
P. Fierz / FS 2014
ks({AName}),
ks({mNr}),
fs({mNr}, Mitarbeiter, res))
Standort
= ({aNr, Standort},
{aNr, Standort},
fs({aNr}, Abteilung, cas))
Projekt
= ({pNr, PName, paNr, PStandort},
{pNr},
ks({PName}),
fs({paNr}, Abteilung, res))
MitProj
= ({mNr, pNr, WochenStunden},
{mNr, pNr},
fs({mNr}, Mitarbeiter, cas),
fs({pNr}, Projekt, cas))
Bemerkung 5.1 [Implementation]
• Das Mehrwertige Attribut “Standort” in Abteilung ist durch die Relation “Standort”
implementiert.
• Die Beziehung “arbeitet_für“ ist durch die Relation ”MitProj“ implementiert.
5.3
Queries
Aufgabe 5.1 [Queries Firma] Geben Sie SQL Ausdrücke an, welche die folgenden Aufgaben
lösen.
a) Bestimmen von mNr und Name aller Mitarbeiter, die in Bern wohnen und für die kein
Vorgesetzter eingetragen ist.
b) Bestimmen von mNr, Name, LeiterSeit, aNr und AName aller Abteilungleiter, die die
Abteilung leiten zu der sie gehören.
c) Bestimmen von mNr, Name, LeiterSeit, aNr und AName aller Abteilungleiter, die die
Abteilung leiten zu der sie nicht gehören.
d) Erstellen Sie eine Liste aller Mitarbeiter mit mNr, Name und die Anzahl Projekte an
denen diese Arbeiten. Mitarbeiter, die an keinem Projekt arbeiten sollen in der Liste
mit 0 Projekten erscheinen. Die Liste soll nach der Anzahl Projekte sortiert sein.
Lösen Sie die Aufgabe auch ohne den OUTER JOIN Befehl.
e) Bestimmen von mNr und Name aller Mitarbeiter, die ein Angehoeriger mit Vorname =
Jana haben.
f) Bestimmen von aNr und AName aller Abteilungen, die sowohl Thun wie auch Zuerich
als Standort haben.
5-2
Vorlesung Datenbanken: Übungen
P. Fierz / FS 2014
g) Bestimmen von aNr und AName aller Abteilungen, die genau Thun und Bern als Standort haben.
h) Bestimmen von mNr, Name, pNr, PName, Wochenstunden und Pstandort aller Projekte
mit den entsprechenden Mitarbeiter. Projekte an denen noch keine Mitarbeiter beteiligt
sind sollen in der Liste auch erscheinen.
i) Bestimmen aller Abteilungen, für die sowohl Mitarbeiter aus der Abteilung 1 wie auch
aus der Abteilung 3 an Projekten mitarbeiten.
j) Bestimmen aller Abteilungen, die ein Projekt führen für das sowohl Mitarbeiter der
Abteilung 1 wie der Abteilung 4 arbeiten.
k) Bestimmen von mNr, Name und AhvNr aller Mitarbeiter, die nur an Projekte arbeiten
die durch ihre Abteilung geführt werden.
l) Bestimmen aller Paare (mNr1, mNr2) von Mitarbeitern, die mindestens an einem
gemeinsamen Projekt arbeiten.
m) Bestimmen aller Mitarbeiter (mNr, Name), die Vorgesezte von Mitarbeitern sind, die
selbst auch Vorgesetzte von Mitarbeitern sind.
n) Bestimmen aller Mitarbeiter (mNr, Name), die Vorgesezte von Mitarbeitern sind, die
selber keine Vorgesetzten sind.
o) Bestimmen von pNr, PName, PStandort, paNr und AName der Projekte, an denen nur
Mitarbeiter der Abteilung arbeiten, die das Projekt führt.
p) Bestimmem der Abteilungen, die mindestens dieselben Standorte haben wie die Abteilung
mit aNr=1.
q) Bestimmen der Paare (mNr1, Name1, mNr2, Name2) von Mitarbeitern die genau an
denselben Projekten arbeiten. Zusätzlich soll die gemeinsame Anzahl Projekte ausgegeben
werden.
5-3
Herunterladen