6. tutorübung zu grundlagen: datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. tutor¨ubung zu...
TRANSCRIPT
![Page 1: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/1.jpg)
6. Tutorubung zu Grundlagen:
Datenbanken
Chaoran Chen
17.11 - 23.11.2014
![Page 2: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/2.jpg)
Von letzter Woche..
select s.matrnr, count (s.matrnr) as anz vorlesungen
from studenten s
left join hoeren h on s.matrnr = h.matrnr
group by s.matrnr
![Page 3: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/3.jpg)
Von letzter Woche..
select *
from studenten s
left join hoeren h
on s.matrnr = h.matrnr
![Page 4: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/4.jpg)
Von letzter Woche..
”
das ist schnell erkl
¨
art. Und zwar ist das ein Bug ;) Wir
k
¨
ummern uns darum, kann allerdings nicht genau sagen,
wielange das bugfixen dauern wird.“
![Page 5: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/5.jpg)
Von letzter Woche..
”
das ist schnell erkl
¨
art. Und zwar ist das ein Bug ;) Wir
k
¨
ummern uns darum, kann allerdings nicht genau sagen,
wielange das bugfixen dauern wird.“
![Page 6: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/6.jpg)
Von letzter Woche..
select s.matrnr, ( case when sum(h.vorlnr) is null then 0
else count (s.matrnr) end ) as anz vorlesungen
from studenten s left join hoeren h on s.matrnr =
h.matrnr
group by s.matrnr
![Page 7: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/7.jpg)
Etherpad
https://ep.mafiasi.de/p/GDB-08
![Page 8: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/8.jpg)
Hausaufgabe 1
Was bringt der Vorlesungsbesuch? Finden Sie heraus, ob es f
¨
ur
Pr
¨
ufungen von Vorteil ist, die jeweiligen Vorlesungen auch
geh
¨
ort zu haben. Ermitteln Sie dazu die Durchschnittsnote der
Pr
¨
ufungen, zu denen die Studenten die Vorlesungen nicht
geh
¨
ort haben und die Durchschnittsnote der Pr
¨
ufungen, zu
denen sie die Vorlesungen geh
¨
ort haben.
![Page 9: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/9.jpg)
Hausaufgabe 2
StudentenGF :{[MatrNr : integer ,Name : varchar(20),
Semester : integer ,Geschlecht : char ,
FakName : varchar(20)]}ProfessorenF :{[PersNr : integer ,Name : varchar(20),
Rang : char(2),Raum : integer ,
FakName : varchar(20)]}
1. Ermitteln Sie den M
¨
anneranteil an den verschiedenen
Fakult
¨
aten in SQL!
2. Ermitteln Sie in SQL die Studenten, die alle Vorlesungen
ihrer Fakult
¨
at h
¨
oren. Geben Sie zwei L
¨
osungen an,
h
¨
ochstens eine davon darf auf Abz
¨
ahlen basieren.
![Page 10: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/10.jpg)
Hausaufgabe 3
![Page 11: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/11.jpg)
Fest- und Gleitkommazahlen
cast (2.05 as decimal (5,2)) cast (2.05 as real )
decimal (precision, scale): 1234. 56789| {z }scale| {z }
precision
real
+ 10
3 ⇤ 1.23456789
![Page 12: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/12.jpg)
Fest- und Gleitkommazahlen
cast (2.05 as decimal (5,2)) cast (2.05 as real )
decimal (precision, scale): 1234. 56789| {z }scale| {z }
precision
real
+ 10
3 ⇤ 1.23456789
![Page 13: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/13.jpg)
Fest- und Gleitkommazahlen
cast (2.05 as decimal (5,2)) cast (2.05 as real )
decimal (precision, scale): 1234. 56789| {z }scale| {z }
precision
real
+ 10
3 ⇤ 1.23456789
![Page 14: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/14.jpg)
Fest- und Gleitkommazahlen
cast (2.05 as decimal (5,2)) cast (2.05 as real )
decimal (precision, scale): 1234. 56789| {z }scale| {z }
precision
real
+ 10
3 ⇤ 1.23456789
![Page 15: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/15.jpg)
Hausaufgabe 4
SQL bietet Datentypen f
¨
ur Festkommazahlen (DECIMAL(p,s))
sowie Gleitkommazahlen (REAL) mit doppelter Genauigkeit
nach IEEE 754. Bei Zweiterem handelt es sich lediglich um
eine approximative Darstellung von reellen Zahlen.
Konstruieren Sie ein beliebiges Beispiel in SQL, das abh
¨
angig
von der Verwendung von Festkomma- oder
Gleitkommaarithmetik zu verschiedenen Ergebnissen f
¨
uhrt.
![Page 16: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/16.jpg)
Hausaufgabe 5
Gegeben sei:
R : {[A : integer ,B : integer ,C : integer ;D : integer ,E : integer}g
Sie
”
vermuten“, dass folgendes gilt:
1. AB ist ein Schl
¨
ussel der Relation
2. DE ! B
Formulieren Sie SQL-Anfragen, die Ihre Vermutungen
best
¨
atigen oder widerlegen.
![Page 17: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/17.jpg)
Hausaufgabe 6
PunkteListe :{[Name,Aufgabe,Max ,Erzielt,KlausurSumme,
KNote,Bonus,GNote]}
1. Bestimmen Sie die geltenden FDs (functional
dependencies).
2. Bestimmen Sie die Kandidatenschl
¨
ussel.
![Page 18: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/18.jpg)
13 / 44
Relationale Entwurfstheorie Funktionale Abhängigkeiten
Armstrong Axiome
• –, — und “ sind Teilmengen von R• Dann gibt es folgende korrekte und vollständige Regeln:
I Reflexivität: — ™ – ∆ – æ —I Verstärkung: Falls – æ —, dann gilt auch –“ æ —“ (–“ steht für
– fi “)I Transitivität: – æ — und — æ “ ∆ – æ “
• Mit Hilfe der Armstrong Axiome können alle gültigen FDs hergeleitetwerden.
![Page 19: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/19.jpg)
14 / 44
Relationale Entwurfstheorie Funktionale Abhängigkeiten
Armstrong Axiome(2)
• Die folgenden Zusatzregeln sind eigentlich nicht erforderlich, aberhäufig nützlich:
I Vereinigungsregel: Wenn – æ — und – æ “, dann gilt auch – æ —“I Dekompositionsregel: Wenn – æ —“, dann gelten auch – æ — und
– æ “I Pseudotransitivitätsregel: Wenn – æ — und “— æ ”, dann gilt auch
–“ æ ”
• Da die Anwendung der Armstrong Axiome für die Schlüsselfindungetwas aufwendig ist, benutzt man meistens Attributhüllen.
![Page 20: 6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu Grundlagen: Datenbanken Chaoran Chen chaoran.chen@in.tum.de 17.11 - 23.11.2014](https://reader031.vdocuments.net/reader031/viewer/2022021719/5ba0661b09d3f2c2598cb72f/html5/thumbnails/20.jpg)
15 / 44
Relationale Entwurfstheorie Funktionale Abhängigkeiten
Attributhülle
• Die Attributhülle AH(–) einer Attributmenge – ist die Menge alleAttribute aus R die funktional von – abhängen
• Es gibt einen einfachen Algorithmus zur Bestimmung von AH(–):
AH := –while (AH ändert sich noch) do
for each FD — æ “ in FR doif (— ™ AH)then AH := AH fi “