Dipartimento di Elettronica ed Informazione Politecnico di...

33
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2011/2012 Le presenti slide sono tratte dalle slide del libro di testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati (Modelli e Linguaggi di interrogazione 3/ed) McGraw-Hill, 2009 09/12/2011 Algebra relazionale: operazioni

Transcript of Dipartimento di Elettronica ed Informazione Politecnico di...

Dipartimento di Elettronica ed Informazione Politecnico di Milano

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani

A.A. 2011/2012

Le presenti slide sono tratte dalle slide del libro di testo Atzeni, Ceri, Paraboschi, Torlone

Basi di dati (Modelli e Linguaggi di interrogazione 3/ed) McGraw-Hill, 2009

09/12/2011

Algebra relazionale: operazioni

Classificazione linguaggi

•  Linguaggi formali: – Algebra relazionale – Calcolo relazionale – Programmazione logica

•  Linguaggi programmativi – SQL: Structured Query Language – QBE: Query By Example

2

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Algebra relazionale

•  Definita da Codd (70) •  Molto utile per imparare a formulare query •  Insieme minimo di 5 operazioni che danno

l'intero potere espressivo del linguaggio

3 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

4

OPERAZIONI

FONDAMENTALI

DERIVATE

UNARIE

BINARIE

selezione

proiezione

unione

differenza

prodotto cartesiano

intersezione

join

semi-join

BINARIE

σ

-

X

Una visione d’insieme

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

studente

MATR

123

415

702

NOME

Carlo

Paola

Antonio

CITTA’

Bologna

Torino

Roma

C-DIP

Inf

Inf

Log

esame MATR 123

123

702

COD- CORSO

1

2

2

DATA 7-9-97

8-1-98

7-9-97

VOTO 30

28

20

corso COD- CORSO 1

2

TITOLO matematica

informatica

DOCENTE Barozzi

Meo

Esempio: gestione degli esami universitari

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 5

Selezione

•  Applicando σ  Nome='Paola' STUDENTE

•  si ottiene una tabella (priva di nome) con –  schema: lo stesso schema di STUDENTE –  Istanza: le tuple di STUDENTE che soddisfano il

predicato di selezione

6

Matr

415

Nome

Paola Città

Torino

CDip

Inf

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

espressione booleana di predicati semplici

7

operazioni booleane : •  AND (P1 AND P2) (∧)

•  OR (P1 OR P2) (∨)

•  NOT (P1) (¬)

predicati semplici : •  TRUE, FALSE •  termine comparatore

termine

comparatore : •  =, !=, <, <=, >, >= termine : •  costante, attributo •  espressione

aritmetica di costanti e attributi

Sintassi del predicato di selezione

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Esempio di selezione

σ STUDENTE (Città='Torino') OR ((Città='Roma') AND NOT (CDip=’Log'))

8

MATR

123

415

702

NOME

Carlo

Paola

Antonio

CITTA’

Bologna

Torino

Roma

C-DIP

Inf

Inf

Log

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Proiezione

•  Applicando Π Nome,CDip STUDENTE

•  si ottiene una tabella (priva di nome) con –  schema: gli attributi Nome e Cdip

–  istanza: la restrizione delle tuple sugli attributi Nome e CDip

9

Nome

Carlo

Paola

Antonio

CDip

Inf

Inf

Log

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Assegnamento

•  serve per dare un nome al risultato di una espressione algebrica

•  non fa parte delle operazioni algebriche

10

INFORMATICI = σ CDIP='Inf' STUDENTI

TORINESI = σ Città='Torino' STUDENTI

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Unione e differenza •  tabella1 ∪ tabella2

•  tabella1 - tabella2

•  tabella1 e tabella2 devono essere compatibili

– Stesso grado – Domini ordinatamente dello stesso tipo

11

t1

t2

t2 t1

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Unione: esempio

•  Applicando: –  INFORMATICI ∪ TORINESI

•  Si ottiene una tabella (priva di nome) con – Schema: lo schema di INFORMATICI –  Istanza: la unione delle tuple di INFORMATICI e

TORINESI

12

Matr

123

415

Nome

Carlo

Paola

Città

Bologna

Torino

CDip

Inf

Inf

Per quanto riguarda le istanze, è commutativa

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Differenza: esempio

•  Applicando: –  INFORMATICI - TORINESI

•  Si ottiene una tabella (priva di nome) con – Schema: lo schema di INFORMATICI –  Istanza: la differenza delle tuple di INFORMATICI e

TORINESI

13

Attenzione: NON è commutativa

Matr

123

Nome

Carlo

Città

Bologna

CDip

Inf

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Prodotto cartesiano

•  Applicando: R × S •  Si ottiene una tabella con

– Schema: gli attributi di R e S (grado(RxS)= grado(R)+grado(S))

–  Istanza: tutte le possibili coppie di tuple di R e S (card(RxS)=card(R)*card(S))

14 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Esempio

15

A a b

B 1 3

C c b a

D 1 3 2

R1(A,B) R2(C,D)

A a a a b b b

B 1 1 1 3 3 3

C c b a c b a

D 1 3 21 3 2

R1xR2 (A,B,C,D)

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Intersezione

•  TABELLA1 ∩ TABELLA2 •  Come gli altri operatori insiemistici, si può

fare se TABELLA1 e TABELLA2 sono compatibili

•  Derivabile tramite la seguente formula: R ∩ S = R - (R - S)

16 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Intersezione: esempio

•  Applicando: –  INFORMATICI ∩ TORINESI

•  Si ottiene una tabella (priva di nome) con – Schema: lo schema di INFORMATICI –  Istanza: la intersezione delle tuple di INFORMATICI

e TORINESI

17

Per quanto riguarda le istanze, è commutativa

Matr

415

Nome

Paola

Città

Torino

CDip

Inf

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Join

•  L’espressione – STUDENTE STUDENTE.Matr=ESAME.Matr ESAME

•  è equivalente alla seguente espressione (operatore derivato): – σSTUDENTE.Matr=ESAME.Matr STUDENTE × ESAME

•  Nota: gli attributi omonimi sono resi non ambigui usando la notazione “puntata”: – E.g.: ESAME.Matr, STUDENTE.Matr

18

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Join

•  Applicando: – STUDENTE STUDENTE.Matr=ESAME.Matr ESAME

•  Si ottiene una tabella (priva di nome) con –  schema: la concatenazione degli schemi di

STUDENTE e ESAME –  istanza: le tuple ottenute concatenando quelle tuple di

STUDENTE e di ESAME che soddisfano il predicato

19

STUDENTE. Matr 123

123

702

Nome Carlo

Carlo

Antonio

Città Bologna

Bologna

Roma

CDip Inf

Inf

Log

ESAME. Matr 123

123

702

Cod- Corso 1

2

2

Data 7-9-97

8-1-98

7-9-97

Voto 30

28

20

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Sintassi del predicato Join

• espressione congiuntiva di predicati semplici: – ATTR1 comp ATTR2

•  Dove – ATTR1 appartiene a TAB1 – ATTR2 appartiene a TAB2 –  comp: =, !=, <, <=, >, >=

20 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Join naturale

•  equi-join di tutti gli attributi omonimi (si omette il predicato, si elimina la colonna ripetuta) – STUDENTE ESAME

Matr 123

123

702

Nome Carlo

Carlo

Antonio

Città Bologna

Bologna

Roma

CDip Inf

Inf

Log

Cod- Corso 1

2

2

Data 7-9-97

8-1-98

7-9-97

Voto 30

28

20

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 21

Dipartimento di Elettronica ed Informazione Politecnico di Milano

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani

A.A. 2011/2012

Le presenti slide sono tratte dalle slide del libro di testo Atzeni, Ceri, Paraboschi, Torlone

Basi di dati (Modelli e Linguaggi di interrogazione 3/ed) McGraw-Hill, 2009

09/12/2011

Algebra relazionale: interrogazioni

Espressioni algebriche

•  Concatenazione di più operazioni algebriche

•  Esprimono interrogazioni in modo formale •  Consentono di estrarre informazioni dei dati

23 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

24

NOME

Carlo

Paola

•  Quali sono i nomi degli studenti iscritti al diploma di informatica?

Matr

123

415

702

Nome

Carlo

Paola

Antonio

Città

Bologna

Torino

Roma

CDip

Inf

Inf

Log

Π Nome σ CDip='Inf' STUDENTE

Selezione e proiezione

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

25

Matr

123

415

702

Nome

Carlo

Paola

Antonio

Città

Bologna

Torino

Roma

CDip

Inf

Inf

Log

•  quali i nomi degli studenti di Logistica non sono di Milano? Π Nome σ CDip='Log' ∧ Città != 'Milano’ STUDENTE

NOME

Antonio

Selezione e proiezione

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

26

STUDENTE

Matr

123

415

702

Nome

Carlo

Paola

Antonio

Città

Bologna

Torino

Roma

CDip

Inf

Inf

Log

ESAME Matr 123

123

702

Cod- Corso

1

2

2

Data 7-9-97

8-1-98

7-9-97

Voto 30

28

20

CORSO Cod- Corso 1

2

Titolo matematica

informatica

Docente Barozzi

Meo

Esempio: gestione degli esami universitari

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

27

•  quali studenti hanno preso 30 in matematica? Π Nome ( STUDENTE (σ Voto=30 ESAME) (σ Titolo='matematica' CORSO))

Π Nome σ Voto=30 ∧ Titolo='matematica‘ (STUDENTE ESAME CORSO)

•  equivalente a:

Uso del join 1/2

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Uso del join 2/2

•  Da notare che i due join annidati ha generato la seguente relazione

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 28

Matr 123

123

702

Nome Carlo

Carlo

Antonio

Città Bologna

Bologna

Roma

CDip Inf

Inf

Log

Cod- Corso 1

2

3

Data 7-9-97

8-1-98

7-9-97

Voto 30

28

20

Docente barozzi

meo

meo

Titolo matem

infor

infor

Selezione, proiezione e join

•  Quali professori hanno esaminato Antonio?

Π Docente σ Nome = 'Antonio’ (STUDENTE ESAME CORSO)

29

Docente

Meo

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Espressioni con unione e differenza

•  estrarre la matricola degli studenti romani oppure degli studenti che hanno sostenuto un esame il giorno 8-1-01

30

(Π Matr σ Città='Roma' STUDENTE) ∪ (Π Matr σ Data=8-1-01 ESAME)

Matr

702

Matr

123 ∪

Matr

702

123 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Espressioni con unione e differenza

•  Estrarre la matricola degli studenti che hanno preso almeno un voto superiore a 28 e non sono mai scesi sotto il 25

(Π Matr σ Voto>=28 ESAME) - (Π Matr σ Voto<25 ESAME)

Matr

702

Matr

123 - Matr

123

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 31

Espressioni complesse 1/3

•  Estrarre il nome degli studenti che non hanno mai preso meno di 28

•  spiegazione: prima trovo le matricole di tutti gli studenti meno le matricole di coloro che hanno preso meno di 28, poi trovo i loro nomi.

32

Π Nome STUDENTE ( Π Matr ESAME - Π Matr σ Voto<28 ESAME)

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Espressioni complesse 2/3

•  Estrarre il nome degli studenti che hanno sostenuto “informatica” e “matematica” lo stesso giorno

•  spiegazione: prima trovo le matricole di coloro che hanno dato i due esami nello stesso giorno, poi trovo i loro nomi.

33

Π Nome STUDENTE

(( ESAME < σ Titolo=‘informatica’ CORSO ) < Matr = Matr ∧ Data = Data

(ESAME < σ Titolo=‘matematica’ CORSO ))

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3