DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI...

45
DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE

Transcript of DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI...

Page 1: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 1

ALGEBRA RELAZIONALE

Page 2: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 2

LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da

un’espressione algebrica sulle relazioni dello schema

Logici: una query è definita da una formula della logica del primo ordine

Page 3: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 3

ESEMPIO DI QUERY

NOME MATRICOL INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 1 222222 Ugo Bianchi 234567 Via Roma 2 333333 Teo Verdi 345678 Via Enna 3 444444

CORSO MATRICOLA VOTO Programmazione 345678 27 Architetture 123456 30 Programmazione 234567 18 Matematica Discreta

345678 22

Architettura 345678 30

CORSO PROFESSORE Programmazione Ferro Architetture Pappalardo Matematica Discreta Lizzio Quali Professori hanno

dato piu' di 24 a Teo Verdi ed in quali corsi?

PROFESSORE CORSO Programmazione Ferro Architetture Pappalardo

Page 4: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 4

Algebra relazionale

Un set di operatori cheSono definiti sulle relazioniProducono come risultato una relazione

Gli operatori possono essere combinati per formare espressioni complesse

Esecuzione procedurale

Page 5: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 5

Operatori dell’algebra relazionale

Gli operatori primitivi dell’Algebra Relazionale sono: Ridenominazione; Unione; Differenza; Proiezione; Restrizione (o Selezione); Prodotto.

I simboli R,S,... denotano relazioni, A, B,…attributi e X,Y,…insiemi di attributi

Page 6: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 6

Ridenominazione

Operatore unario Modifica il nome di un attributo senza cambiarne il

valore Definizione:

Siano X gli attributi di R, A in X, B not in X . Allora AB(R) è con attributi (X-{A}){B} AB(R)={t | u R t[B] = u[A] t[C]=u[C] se C e’ diverso da B}.

Page 7: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 7

Esempio Ridenominazione

Corso Matricola Voto Programmazione 123456 27 EINN 23456 28 Corso Codice Studente Voto Programmazione 123456 27 EINN 23456 28

Matricola Codice Studente(Esami)

Page 8: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 8

Unione, Differenza e Intersezione

Le relazioni sono degli insiemi, quindi possiamo applicare gli operatori sugli insiemi

Il risultato dev’essere un set omogeneo di n-uple Quindi, applichiamo gli operatori sui set solo fra

relazioni con gli stessi attributi Siano R ed S relazioni dello stesso tipo allora

RS = {t | t R t S} R-S = {t | t R tS} RS = {t | t R t S}

Page 9: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 9

Esempio Unione

Page 10: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 10

Esempio Intersezione

Page 11: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 11

Esempio Differenza

Page 12: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 12

Un esempio utile ma non fattibile

“Father” e “Mother” sono attributi con nomi diversi ma entrambi sono “Genitori”

Soluzione: ridenominare gli attributi

Page 13: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 13

Ridenominazione e Unione

FatherParent(Paternity) MotherParent(Maternity)

Page 14: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 14

Proiezione Produce risultati:

Su un sottoinsieme degli attributi dell’operando Con valori da tutte le n-uple della relazione

Definizione Sia R una relazione e siano A1, A2,…, An alcuni suoi

attributi allora: A1, A2,…, An (R) = {t[A1, A2,…, An ] | tR}

La cardinalita’ di A1, A2,…, An (R) puo’ essere minore di R nel caso di duplicati

Page 15: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 15

Esempio Proiezione

ProiezioneProiezione

Page 16: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 16

Un’altro esempio di proiezione

Si riduce la cardinalita’ del risultato rispetto all’operando

Page 17: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 17

Selezione (Restrizione)

Produce risultati: Con lo stesso schema dell’operando Con un sottoinsieme delle n-uple dell’operando

Quelle che soddisfano la condizione

Definizione Sia R una relazione allora (R) = {t | t R (t)}

dove e’ una formula proposizionale costruita a partire dagli atomi A B e utilizzando i connettivi proposizionali ,,

A e B sono attributi di R o costanti {=,<, >, ≠, ≤, ≥}

Page 18: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 18

Esempio Selezione

SelezioneSelezione

Page 19: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 19

Un altro esempio di Selezione

Page 20: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 20

Prodotto (Cartesiano)

Siano R(A1: T1,…, An: Tn) ed S (An+1: Tn+1,…, An+m: Tn+m) con {A1,…, An} {An+1,…, An+m}= . Allora si pone R x S = {tu | tR u S}

Page 21: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 21

Esempio prodotto cartesiano

Page 22: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 22

Operatori Derivati

Sono operatori utili che si possono esprimere in funzioni di quelli primitivi.

Intersezione: Siano R ed S dello stesso tipoRS = {t | tR t S}.

Essa si può esprimere in funzione degli operatori primitivi:R S = R-(R-S)

Page 23: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 23

JOIN (Giunzione)

L’operatore piu’ importante dell’algebra relazionale

Permette di combinare tuple da relazioni diverse basandosi sui valori degli attributi

Fondamentalmente due tipi (piu’ qualche variante):Natural JOINTheta JOIN

Page 24: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 24

Natural JOIN

Page 25: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 25

Definizione del Natural JOIN

Sia R con attributi XY ed S con attributi YZ

R 1 S e’ una relazione di attributi XYZ costituita da tutte le n-uple t tali che:

t[XY] R , t[YZ] S.

Quindi: R 1 S = {t | t[XY] R t[YZ] S} Cioe’: le n-uple del risultato sono ottenute combinando

le n-uple di R e S che hanno gli stessi valori negli attributi con lo stesso nome

Page 26: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 26

Un altro esempio di Natural JOIN

Page 27: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 27

Ancora un altro esempio di Natural Join

Page 28: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 28

JOIN incompleti

Nel caso in cui alcuni valori tra gli attributi comuni non coincidono

Quindi, alcune n-uple non partecipano al JOIN (dangling n-uple)

Page 29: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 29

JOIN vuoti, un caso estremo

Potrebbe anche succedere che nessuna n-upla trovi il corrispettivo

Page 30: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 30

L’altro caso estremo del JOIN

Ogni n-upla di R1 si combina con ogni n-upla di R2

Cardinalita’ del risultato e’ il prodotto delle cardinalita’

Page 31: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 31

OUTER JOIN (Giunzione esterna)

Una variante del JOIN per mantenere nel risultato le n-uple che non partecipano al JOIN

Gli attributi delle dangling n-uple vengono riempiti con NULL

Tre varianti: Left: solo dangling n-uple del primo operando Right: solo dangling n-uple del secondo operando Full: n-uple da entrambi gli operandi

Page 32: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 32

Esempio di NATURAL OUTER JOIN

Page 33: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 33

Proprieta’ del JOIN

Il JOIN e’Commutativo: R 1 S = S 1 RAssociativo: (R 1 S) 1 T = R 1 (S 1 T)

Quindi possiamo avere sequenze di JOIN senza rischio di ambiguita’:

R 1 S 1 T …

Page 34: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 34

Esempio di JOIN multipli

Page 35: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 35

Prodotto cartesiano a partire dal JOIN Il JOIN e’ definito anche se non ci sono attributi

comuni fra le relazioni In questo caso, non essendoci vincoli sulle tuple

da selezionare, vengono selezionate tutte le tuple dalle relazioni del JOIN

Prodotto cartesiano

Page 36: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 36

Esempio di prodotto cartesiano generato dal JOIN

Page 37: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 37

Theta-JOIN e Equi-JOIN

Estensione del NATURAL JOIN Viene specificato un predicato per la selezione

delle n-uple E’ un operatore derivato:

R 1 F S = F

(R x S)

Se F e’ una congiunzione di uguaglianze si parla di equi-JOIN

Page 38: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 38

Esempio di equi-JOIN

Page 39: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 39

Query (interrogazioni)

L’algebra relazionale puo’ quindi essere usata per interrogare una base di dati

Una query e’ una funzione da una istanza di un database (insieme di relazioni) ad una relazione

Page 40: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 40

Database di esercitazione

Page 41: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 41

Esercizio 1

Trovare numero, nome ed eta’ di tutti gli impiegati che guadagnano piu’ di 40 mila euro

Page 42: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 42

Esercizio 2

Trovare il numero dei responsabili degli impiegati che guadagnano piu’ di 40 mila euro

Page 43: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 43

Esercizio 3

Trovare nome e salario dei responsabili degli impiegati che guadagnano piu’ di 40 mila euro.

Page 44: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 44

Esercizio 4

Trovare gli impiegati che guadagnano piu’ dei loro responsabili e visualizzare numero, nome e salario sia dell’impiegato che del responsabile

Page 45: DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione.

DB -Algebra Relazionale 45

Esercizio 5

Trovare numero e nome dei responsabili i cui impiegati guadagnano TUTTI piu’ di 40 mila euro