La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE. DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione."— Transcript della presentazione:

1 DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE

2 DB -Algebra Relazionale2 LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da unespressione algebrica sulle relazioni dello schema Logici: una query è definita da una formula della logica del primo ordine

3 DB -Algebra Relazionale3 ESEMPIO DI QUERY

4 DB -Algebra Relazionale4 Algebra relazionale Un set di operatori che Sono definiti sulle relazioni Producono come risultato una relazione Gli operatori possono essere combinati per formare espressioni complesse Esecuzione procedurale

5 DB -Algebra Relazionale5 Operatori dellalgebra relazionale Gli operatori primitivi dellAlgebra 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

6 DB -Algebra Relazionale6 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 A B (R) è con attributi (X-{A}) {B} A B (R)={t | u R t[B] = u[A] t[C]=u[C] se C e diverso da B}.

7 DB -Algebra Relazionale7 Esempio Ridenominazione Matricola Codice Studente (Esami)

8 DB -Algebra Relazionale8 Unione, Differenza e Intersezione Le relazioni sono degli insiemi, quindi possiamo applicare gli operatori sugli insiemi Il risultato devessere 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 R S = {t | t R t S} R-S = {t | t R t S} R S = {t | t R t S}

9 DB -Algebra Relazionale9 Esempio Unione

10 DB -Algebra Relazionale10 Esempio Intersezione

11 DB -Algebra Relazionale11 Esempio Differenza

12 DB -Algebra Relazionale12 Un esempio utile ma non fattibile Father e Mother sono attributi con nomi diversi ma entrambi sono Genitori Soluzione: ridenominare gli attributi

13 DB -Algebra Relazionale13 Ridenominazione e Unione Father Parent (Paternity) Mother Parent (Maternity)

14 DB -Algebra Relazionale14 Proiezione Produce risultati: Su un sottoinsieme degli attributi delloperando Con valori da tutte le n-uple della relazione Definizione Sia R una relazione e siano A 1, A 2,…, A n alcuni suoi attributi allora: A1, A2,…, An (R) = {t[A 1, A 2,…, A n ] | t R} La cardinalita di A1, A2,…, An (R) puo essere minore di R nel caso di duplicati

15 DB -Algebra Relazionale15 Esempio Proiezione Proiezione

16 DB -Algebra Relazionale16 Unaltro esempio di proiezione Si riduce la cardinalita del risultato rispetto alloperando

17 DB -Algebra Relazionale17 Selezione (Restrizione) Produce risultati: Con lo stesso schema delloperando Con un sottoinsieme delle n-uple delloperando 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 {=,,,, }

18 DB -Algebra Relazionale18 Esempio Selezione Selezione

19 DB -Algebra Relazionale19 Un altro esempio di Selezione

20 DB -Algebra Relazionale20 Prodotto (Cartesiano) Siano R(A 1 : T 1,…, A n : T n ) ed S (A n+1 : T n+1,…, A n+m : T n+m ) con {A 1,…, A n } {A n+1,…, A n+m }=. Allora si pone R x S = {tu | t R u S}

21 DB -Algebra Relazionale21 Esempio prodotto cartesiano

22 DB -Algebra Relazionale22 Operatori Derivati Sono operatori utili che si possono esprimere in funzioni di quelli primitivi. Intersezione: Siano R ed S dello stesso tipo R S = {t | t R t S}. Essa si può esprimere in funzione degli operatori primitivi: R S = R-(R-S)

23 DB -Algebra Relazionale23 JOIN (Giunzione) Loperatore piu importante dellalgebra relazionale Permette di combinare tuple da relazioni diverse basandosi sui valori degli attributi Fondamentalmente due tipi (piu qualche variante): Natural JOIN Theta JOIN

24 DB -Algebra Relazionale24 Natural JOIN

25 DB -Algebra Relazionale25 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

26 DB -Algebra Relazionale26 Un altro esempio di Natural JOIN

27 DB -Algebra Relazionale27 Ancora un altro esempio di Natural Join

28 DB -Algebra Relazionale28 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)

29 DB -Algebra Relazionale29 JOIN vuoti, un caso estremo Potrebbe anche succedere che nessuna n-upla trovi il corrispettivo

30 DB -Algebra Relazionale30 Laltro caso estremo del JOIN Ogni n-upla di R 1 si combina con ogni n-upla di R 2 Cardinalita del risultato e il prodotto delle cardinalita

31 DB -Algebra Relazionale31 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

32 DB -Algebra Relazionale32 Esempio di NATURAL OUTER JOIN

33 DB -Algebra Relazionale33 Proprieta del JOIN Il JOIN e Commutativo: R 1 S = S 1 R Associativo: (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 …

34 DB -Algebra Relazionale34 Esempio di JOIN multipli

35 DB -Algebra Relazionale35 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

36 DB -Algebra Relazionale36 Esempio di prodotto cartesiano generato dal JOIN

37 DB -Algebra Relazionale37 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

38 DB -Algebra Relazionale38 Esempio di equi-JOIN

39 DB -Algebra Relazionale39 Query (interrogazioni) Lalgebra 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

40 DB -Algebra Relazionale40 Database di esercitazione

41 DB -Algebra Relazionale41 Esercizio 1 Trovare numero, nome ed eta di tutti gli impiegati che guadagnano piu di 40 mila euro

42 DB -Algebra Relazionale42 Esercizio 2 Trovare il numero dei responsabili degli impiegati che guadagnano piu di 40 mila euro

43 DB -Algebra Relazionale43 Esercizio 3 Trovare nome e salario dei responsabili degli impiegati che guadagnano piu di 40 mila euro.

44 DB -Algebra Relazionale44 Esercizio 4 Trovare gli impiegati che guadagnano piu dei loro responsabili e visualizzare numero, nome e salario sia dellimpiegato che del responsabile

45 DB -Algebra Relazionale45 Esercizio 5 Trovare numero e nome dei responsabili i cui impiegati guadagnano TUTTI piu di 40 mila euro


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

Presentazioni simili


Annunci Google