Proseminar Datenbanken

Werbung
PS Datenbanken, SS 2008
Dominik Engel
14. März 2008
Universität Salzburg
FB Computerwissenschaften
1. Übungsblatt zum
Proseminar Datenbanken
▸ Speichern Sie alle SQL-Statements, die Sie verwenden, und alle Resultate und bringen Sie einen
Ausdruck ins Proseminar mit. Wenn nicht anders angegeben zählt jedes der Beispiele 1 Punkt.
▸ Projektgruppeneinteilung ist selbstbestimmt möglich bis 2.4.2008. Bitte Mitglieder der gewünschten
Projektgruppe bis zu diesem Termin per E-Mail bekanntgeben.
1. Erklären Sie die Begriffe DBMS und DBS. Was versteht man unter konzeptionellem Schema und
physikalischem Schema?
2. Erläutern Sie die Motivationen für den Einsatz eines DBS und die Vorteile die sich durch den
Einsatz ergeben.
3. (2 Punkte) Gegeben sei folgender B-Baum vom Grad 2:
14
8
10
15 17
• Fügen Sie die Schlüssel 3, 12, 13, 23, 28, 20, 16, 19, 18, 30, 40, 44 in dieser Reihenfolge ein.
Protokollieren Sie den Stand des B-Baums nach jeder Einfüge-Operation. (Zur Auffrischung
finden Sie den Algorithmus auf der Webpage der Lehrveranstaltung.)
• Welche Vorteile bringt ein B-Baum bei der Schlüsselsuche?
4. (2 Punkte)
• Machen Sie sich mit DB2 und SQLDeveloper vertraut. Sie können SQLDeveloper auf
jedem Linuxrechner im Übungsraum starten (mittels sqldeveloper-solyp) oder auf
Ihrem eigenen Rechner installieren (siehe Webpage der Lehrveranstaltung). Legen Sie eine
neue Verbindung zu vampir.cosy.sbg.ac.at an, benutzen Sie zur Authentifizierung
Ihre Userdaten und Ihr Passwort, die Sie in der Vorbesprechung erhalten haben. Eine Anleitung finden Sie auch auf der Webpage der Lehrveranstaltung.
• Legen Sie nun mittels CREATE-Statement eine Tabelle ABTEILUNGEN an. Diese Tabelle
soll die Abteilungen einer fiktiven kleinen Firma verwalten. Die Spalten sollen wie folgt
definiert werden:
– AbtID integer not null
– AbtName varchar(50) not null
Definieren Sie AbtID als primary key.
1
• Legen Sie mittels CREATE-Statement eine weitere Tabelle ANGESTELLTE an. Diese Tabelle
soll Abteilungszuordnung, Funktion und Gehalt (in Euro) der Angestellten der Firma
beinhalten. Die Spalten sollen wie folgt definiert werden:
–
–
–
–
–
PersNr integer not null
Name varchar(50) not null
AbtID integer not null
Funktion varchar(50) not null,
Gehalt integer not null
Definieren Sie PersNr als primary key.
• Fügen Sie die Daten von Seite 3 in die Tabelle ABTEILUNGEN ein. Verwenden Sie dazu
INSERT-Statements.
• Danach fügen Sie die Daten für Tabelle ANGESTELLTE mittels INSERT-Statements ein. Um
Ihnen hier das Abtippen zu ersparen, finden Sie auf der Webpage der Lehrveranstaltung
das SQL-Skript angestellte.sql, das Sie im SQLDeveloper ausführen können (achten
Sie darauf, dass die Schaltfläche Enable Semicolon Terminator“ aktiviert ist). Vergessen
”
Sie nicht, nach dem INSERT-Statement COMMIT auszuführen!
5. Geben Sie alle Angestellten sortiert nach Personalnummer aus, die die Funktion Grafiker“
”
haben und deren Gehalt kleiner ist als 25000 e.
6. Formulieren Sie ein Anfrage, die alle Angestellten mit ihrem Gehalt in Euro und ihrem Gehalt
in Dollar (1 e = 1,55 $) ausgibt.
7. Erhöhen Sie das Gehalt für Angestellte Mona Badelt“ um 1000 e. Überprüfgen Sie die Richtigkeit
”
der Ausführung mit einem entsprechenden SELECT-Statement.
8. Geben Sie ein SELECT-Statement an, das die Namen aller Angestellten und den Namen der
Abteilung in der sie arbeiten ausgibt. Die Verbindung zwischen den beiden Tabellen Angestellte
und Abteilungen wird über AbtID hergestellt.
9. Verringern Sie das Gehalt aller Angestellten der Abteilung Sales“ um 500 e. Überprüfgen Sie
”
die Richtigkeit der Ausführung wieder mit einem entsprechenden SELECT-Statement.
10. Versetzen Sie Moritz Posch“ von der Abteilung Programming“ in die Abteilung Production“.
”
”
”
11. Formulieren Sie ein SELECT-Statement, welches den Namen jeder Abteilung gefolgt vom durchschnittlichen Gehalt in dieser Abteilung ausgibt.
12. Formulieren Sie eine Anfrage, die Name, Funktion und Gehalt des Mitarbeiters mit dem höchsten
Gehalt, das in der Firma bezahlt wird, ausgibt.
13. Suchen Sie alle Personen in der Abteilung Sales“, die Gehälter bekommen welche über dem
”
Gesamtdurchschnitt liegen und geben Sie deren Namen und Abteilung aus.
2
AbtID AbtName
1
Programming
2
Authoring
3
Production
4
Sales
Daten für Tabelle Abteilungen
PersNr
3985
3434
3317
3596
5674
4205
5689
4477
5500
5536
6600
4908
3615
4001
3485
5617
4101
3094
5903
3857
Name
Tamara Cerny
Andreas Weisz
Hanna Hailegger
Tara Seistil
Nora Thaler
Felicitas Ettenauer
Antonia Passinke
Max Grosslercher
Nina Petri
Merle Medek
Mona Badelt
Lina Milek
Henri Otto
Vivien Morawek
Imke Maier
Lucia Krause
Adam Madl
Ryan Kloiber
Moritz Posch
Rebecca Tributsch
Abteilung
Production
Programming
Programming
Sales
Sales
Authoring
Sales
Sales
Production
Sales
Authoring
Production
Authoring
Sales
Production
Sales
Production
Production
Programming
Production
Funktion
Grafiker
Visionaer
Programmierer
Programmierer
Leiter
Visionaer
Designer
Verkaeufer
Grafiker
Grafiker
Programmierer
Designer
Leiter
Visionaer
Designer
Visionaer
Leiter
Verkaeufer
Programmierer
Programmierer
Daten für Tabelle Angestellte
3
Gehalt
24904
28473
21262
29099
21302
13955
26660
19888
24055
28884
11996
27716
21731
14708
10810
28825
23232
14543
15833
17569
Herunterladen