Informatica Introduzione alle basi di dati Lezione 8 (bis) Scienze e tecniche psicologiche dello...

Preview:

Citation preview

Informatica

Introduzione alle basi di datiLezione 8 (bis)Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistraleAnno accademico: 2005-2006

2

Interrogazioni con Algebra Relazionale

Dato schema R(Y) di DB, un’interrogazione è una funzione che, per ogni istanza r di R(Y), produce una relazione su un dato insieme di attributi XLe espressioni di un linguaggio di interrogazione (per esempio, algebra relazionale), permettono di realizzare interrogazioni a un DBE(r): risultato dell’applicazione dell’espressione E al DB rE(r) è una relazione

3

Esempi di Interrogazioni: 1

Matr

Nome Età

Stip

101 Mario Rossi 34 2.000

103 Mario Bianchi

23 1.750

104 Luigi Neri 38 3.050

105 Nico Bini 44 1.700

210 Marco Celli 49 3.000

231 Siro Bisi 50 3.000

252 Nico Bini 44 3.500

301 Sergio Rossi

34 3.500

375 Mario Rossi 50 3.250

Capo

Impiegato

210 101

210 103

210 104

231 105

301 210

301 231

375 252

Impiegati Supervisione

4

Esempi di Interrogazioni: 1

Trovare matricola, nome ed età degli impiegati che guadagnano più di 2.000

Matr,Nome,Età(Stip>2.000(Impiegati))

5

Esempi di Interrogazioni: 1

Trovare matricola, nome ed età degli impiegati che guadagnano più di 2.000

Matr

Nome Età

101 Mario Rossi 34

104 Luigi Neri 38

210 Marco Celli 49

231 Siro Bisi 50

252 Nico Bini 44

301 Sergio Rossi

34

375 Mario Rossi 50

6

Esempi di Interrogazioni: 2

Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo

1. Definire relazione R che lega (join) descrizione di impiegati a descrizione di capo

Per non confondere gli attributi dell’impiegato e del capo bisogna ridenominare una delle due relazioni

7

Esempi di Interrogazioni: 2

Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo

2. Selezionare le tuple di R tali nelle quali lo stipendio dell’impiegato è superiore a quello del capo

8

Esempi di Interrogazioni: 2

Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo

3. Proiettare risultato su attributo Matr, Nome e Stip di impiegato e sui corrispettivi (ridenominati) di capo

9

Esempi di Interrogazioni: 2

1. Definire relazione R che lega descrizione di impiegati a descrizione di capo

a) Definire relazione R1 che descrive gli impiegati di ciascun capo

Schema: R1(Matr,Nome,Età,Stip,Capo,Impiegato)

R1 = Impiegati Matr=Impiegato Supervisione

10

Esempi di Interrogazioni: 2

R1 = Impiegati Matr=Impiegato Supervisione

Matr

Nome Età

Stip Capo

Impiegato

101 Mario Rossi 34 2.000

210 101

103 Mario Bianchi

23 1.750

210 103

104 Luigi Neri 38 3.050

210 104

105 Nico Bini 44 1.700

231 105

210 Marco Celli 49 3.000

301 210

231 Siro Bisi 50 3.000

301 231

252 Nico Bini 44 3.500

375 252

R1

11

Esempi di Interrogazioni: 2

1. b) Definire relazione R che descrive

impiegati e capo: per non confondere gli attributi dell’impiegato e del capo ridenominare impiegati

R2=MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati)

R = R1 Capo=MatrC R2

12

Esempi di Interrogazioni: 2

R2=MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati)

MatrC

NomeC EtàC

StipC

101 Mario Rossi 34 2.000

103 Mario Bianchi

23 1.750

104 Luigi Neri 38 3.050

105 Nico Bini 44 1.700

210 Marco Celli 49 3.000

231 Siro Bisi 50 3.000

252 Nico Bini 44 3.500

301 Sergio Rossi

34 3.500

375 Mario Rossi 50 3.250

R2

13

Esempi di Interrogazioni: 2

R = R1 Capo=MatrC R2

Matr

Nome Età

Stip Capo

Impiegato

MatrC

NomeC EtàC

StipC

101 Mario Rossi 34 2.000

210 101 210 Marco Celli

49 3.000

103 Mario Bianchi

23 1.750

210 103 210 Marco Celli

49 3.000

104 Luigi Neri 38 3.050

210 104 210 Marco Celli

49 3.000

105 Nico Bini 44 1.700

231 105 231 Siro Bisi 50 3.000

210 Marco Celli 49 3.000

301 210 301 Sergio Rossi

34 3.500

231 Siro Bisi 50 3.000

301 231 301 Sergio Rossi

34 3.500

252 Nico Bini 44 3.500

375 252 375 Mario Rossi

50 3.250

R

14

Esempi di Interrogazioni: 2

1. b) Definire relazione R che descrive

impiegati e capo: per non confondere gli attributi dell’impiegato e del capo ridenominare impiegati

R2=MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati)

R = R1 Capo=MatrC R2

(Impiegati Matr=Impiegato Supervisione) Capo=MatrC

MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati)

15

Esempi di Interrogazioni: 2

2. Selezionare tuple in R in cui lo stipendio dell’impiegato è superiore a quello del capo:

Stip>StipC(R)

Matr

Nome Età

Stip Capo

Impiegato

MatrC

NomeC EtàC

StipC

104 Luigi Neri 38 3.050

210 104 210 Marco Celli

49 3.000

252 Nico Bini 44 3.500

375 252 375 Mario Rossi

50 3.250

16

Esempi di Interrogazioni: 2

2. Selezionare tuple in R in cui lo stipendio dell’impiegato è superiore a quello del capo:

Stip>StipC(R)

Stip>StipC((Impiegati Matr=ImpiegatoSupervisione)

Capo=MatrC

MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati))

17

Esempi di Interrogazioni: 2

3. Proiettare Stip>StipC(R) su attributi richiesti:Matr,Nome,Stip,MatrC,NomeC,StipC(Stip>StipC(R))

Matr

Nome Stip MatrC

NomeC StipC

104 Luigi Neri 3.050

210 Marco Celli

3.000

252 Nico Bini 3.500

375 Mario Rossi

3.250

18

Esempi di Interrogazioni: 2

3. Proiettare Stip>StipC(R) su attributi richiesti:Matr,Nome,Stip,MatrC,NomeC,StipC(Stip>StipC(R))

Matr,Nome,Stip,MatrC,NomeC,StipC(Stip>StipC((Impiegati

Matr=ImpiegatoSupervisione) Capo=MatrC

MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati)))

19

Esempi di Interrogazioni: 2

Matr,Nome,Stip,MatrC,NomeC,StipC(Stip>StipC((Impiegati

Matr=ImpiegatoSupervisione) Capo=MatrC

MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati)))

Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo

20

Esempi di Interrogazioni: 3

Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 2.000

1. Tutti gli impiegati? Selezionare capi che hanno impiegati con stipendio < 2.000

Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati)))

21

Esempi di Interrogazioni: 3

Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati)))

Matr

Nome Età

Stip

103 Mario Bianchi

23 1.750

105 Nico Bini 44 1.700

Matr

Nome Età

Stip Capo

Impiegato

103 Mario Bianchi

23 1.750

210 103

105 Nico Bini 44 1.700

231 105

Capo

210

231

Stip<2.000(Impiegati)

Supervisione Matr=Impiegato(Stip<2.000(Impiegati))

Capo(Supervisione Matr=Impiegato

(Stip<2.000(Impiegati)))

22

Esempi di Interrogazioni: 3

2. Sottrarre tali capi all’insieme di tutti i capi

Capo(Supervisione) –

Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati)))

23

Esempi di Interrogazioni: 3

Capo(Supervisione) –

Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati)))

Capo

210

231

301

375

Capo(Supervisione) Capo(Supervisione) –

Capo(Supervisione

Matr=Impiegato

(Stip<2.000(Impiegati)))

Capo

301

375

24

Esempi di Interrogazioni: 3

Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 2.000

Matr,Nome(Impiegati Matr=Capo

(Capo(Supervisione) –

Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati)))))

25

Esempi di Interrogazioni: 3

Impiegati Matr=Capo

(Capo(Supervisione) –

Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati))))

Matr

Nome Età

Stip Capo

301 Sergio Rossi

34 3.500

301

375 Mario Rossi 50 3.250

375

26

Esempi di Interrogazioni: 3

Matr,Nome(Impiegati Matr=Capo

(Capo(Supervisione) –

Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati)))))

Matr

Nome

301 Sergio Rossi

375 Mario Rossi

Recommended