6. Tutorübung zu Grundlagen: Datenbankenhome.in.tum.de/~chench/gdb/06.pdf · 6. Tutor¨ubung zu...

Preview:

Citation preview

6. Tutorubung zu Grundlagen:

Datenbanken

Chaoran Chen

chaoran.chen@in.tum.de

17.11 - 23.11.2014

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

Von letzter Woche..

select *

from studenten s

left join hoeren h

on s.matrnr = h.matrnr

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.“

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.“

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

Etherpad

https://ep.mafiasi.de/p/GDB-08

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.

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.

Hausaufgabe 3

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

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

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

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

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.

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.

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.

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.

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.

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 “

Recommended