• Non ci sono risultati.

Algebra Relazionale

N/A
N/A
Protected

Academic year: 2021

Condividi "Algebra Relazionale"

Copied!
16
0
0

Testo completo

(1)

Modulo 2 Data Base 2

Università degli Studi di Salerno

Corso di Laurea in Scienze della comunicazione Informatica generale

Docente: Angela Peduto

A.A. 2004/2005

(2)

Algebra Relazionale

Linguaggio procedurale, in cui le operazioni vengono descritte descrivendo la procedura per ottenere la soluzione.

Operatori:

• unione intersezione differenza

derivati dalla teoria degli insiemi

• ridenominazione selezione proiezione

specifici dell’algebra relazionale

• join

che può assumere diverse forme (naturale, theta-join, prodotto cartesiano)

(3)

Operatori derivati dagli insiemi

Le relazioni sono insiemi e quindi è naturale estendere ad esse le operazioni relative.

Tuttavia le relazioni sono insiemi di tuple omogenee e quindi ha senso definire ed applicare tali operatori solo a tuple definite sugli stessi attributi.

Es. l’unione fra due relazioni su tuple non omogenee non

è una relazione.

(4)

Operatori derivati dagli insiemi

• Unione

L’unione fra due relazioni r1 e r2 definite sullo stesso insieme di attributi X è indicata con r1 r2 ed è una relazione su X contenente le tuple che

appartengono a r1 o r2 oppure ad entrambe.

• Intersezione

L’intersezione fra due relazioni r1 e r2 definite sullo stesso insieme di attributi X è indicata con r1 r2 ed è una relazione su X contenente le tuple che appartengono sia a r1 che a r2.

• Differenza

La differenza fra due relazioni r1 e r2 definite sullo stesso insieme di attributi X è indicata con r1 - r2 ed è una relazione su X contenente le tuple che appartengono a r1 e non a r2.

(5)

Laureati

Matricola 7432 9824

Età 54 45 Nome

Neri Verdi

7274 Rossi 42

Quadri

Matricola 7432 9824 9297

Età 54 45 33 Nome

Neri Verdi

Neri

Laureati ∪∪∪∪ Quadri

Matricola Nome Età 7432 Neri 54 9824 Verdi 45 9297 Neri 33 7274 Rossi 42 7432 Neri 54 9824 Verdi 45 7274 Rossi 42 7432 Neri 54 9824 Verdi 45 9297 Neri 33 7432 Neri 54 9824 Verdi 45 9297 Neri 33 7274 Rossi 42

Unione

(6)

Laureati

Matricola 7432 9824

Età 54 45 Nome

Neri Verdi

7274 Rossi 42

Quadri

Matricola 7432 9824 9297

Età 54 45 33 Nome

Neri Verdi

Neri

Laureati ∩∩∩∩ Quadri

Matricola Nome Età 7432 Neri 54 9824 Verdi 45

7432 Neri 54 9824 Verdi 45 7432 Neri 54

9824 Verdi 45

7432 Neri 54 9824 Verdi 45

Intersezione

(7)

Laureati

Matricola Nome Età 7432 Neri 54 9824 Verdi 45 7274 Rossi 42

Quadri

Matricola 7432 9824 9297

Età 54 45 33 Nome

Neri Verdi

Neri

Laureati – Quadri

Matricola Nome Età 7432 Neri 54 9824 Verdi 45 7274 Rossi 42 7432 Neri 54 9824 Verdi 45 7274 Rossi 42

Differenza

(8)

Ridenominazione

E’ un operatore che consente di modificare il nome di un attributo per poterlo associare ad un altro attributo in una operazione

algebrica. Ad es. rende compatibili due attributi con nome diverso quando ha senso realizzare l’unione fra le relazioni cui

appartengono.

Si indica con ρ nuovonomevecchionome (Relazione)

Es. date le relazioni

Paternità(Padre, Figlio) e Maternità(Madre, Figlio) è possibile ottenere

ρ Genitore Padre(Paternità) ∪ ρGenitore Madre (Maternità)

(9)

RENGenitore Padre

(Paternità)

RENGenitore Madre

(Maternità)

Genitore Figlio Adamo Caino Abramo Isacco

Adamo Abele

Genitore Figlio

Eva Set

Eva Abele

Genitore Figlio Adamo Caino Abramo Isacco

Adamo Abele

Eva Set

Eva Abele RENGenitore Padre

(Paternità)

RENGenitore Madre

∪ ∪ ∪ ∪ (Maternità)

(10)

Selezione e Proiezione

Le operazioni di selezione e di proiezione si applicano ad una relazione e ne restituiscono una porzione.

Possono essere considerate ortogonali o complementari, in quanto una opera sulle righe e l’altra sulle colonne.

La selezione produce un insieme di tuple, definite su tutti gli attributi della relazione.

La proiezione produce un risultato definito su un insieme limitato di attributi, cui contribuiscono tutte le tuple.

(11)

Selezione

La selezione produce una nuova relazione definita sugli stessi attributi, contenente solamente le tuple di una relazione che soddisfano una specifica condizione di selezione.

Si indica con σF ( r ) o SELF ( r ) dove:

F è una condizione da verificare

r è la relazione a cui la selezione è applicata

Quindi σF ( r ) produce una relazione, avente lo stesso schema di r, contenente tutte le tuple per le quali F è vera.

(12)

Selezione, sintassi e semantica

• sintassi

• SEL

Condizione

(Operando)

• Condizione: espressione booleana (come quelle dei vincoli di tupla)

• semantica

• il risultato contiene le tuple dell'operando che soddisfano la condizione

(13)

Selezione

F è una formula proposizionale su X, cioè una formula ottenuta combinando con i simboli (and) (or) ¬ (not) espressioni del tipo

A θ B o A θ c dove :

θ è un operatore di confronto (, <, =, >, )

• A e B sono attributi di X su cui i confronto abbia senso

• c è una costante tale che il confronto con A sia definito

E’ definito un valore di verità di F su una tupla t:

• A θ B è vera se e solo se t[A] θ t[B] è vero

• A θ c è vera se t[A] θ c è vera

• F1 F2, F1 F2, ¬ F hanno l’usuale significato

(14)

Impiegati

Cognome Filiale Stipendio Matricola

Neri Milano 64

5998

Rossi Roma 55

7309

Neri Napoli 64

5698

Milano Milano 44

9553

Cognome Filiale Stipendio Matricola

Neri Milano 64

5998

Rossi Roma 55

7309

Impiegati (che guadagnano piu’ di 50)

SELStipendio > 50 (Impiegati)

(15)

Selezione con valori nulli

Cognome Filiale Età Matricola

Neri Milano 45

5998

Rossi Roma 32

7309

Bruni Milano NULL 9553

Impiegati

SELEtà>30 (Persone) ∪ SELEtà30 (Persone) ≠ Persone

• Perché? Perché le selezioni vengono valutate separatamente!

• Ma anche

SELEtà>30 Età30 (Persone) ≠ Persone

• Perché? Perché anche le condizioni atomiche vengono valutate separatamente!

(16)

Per riferirsi ai valori nulli esistono forme apposite di condizioni:

IS NULL IS NOT NULL

SELEtà>30 (Persone) SELEtà30 (Persone) SELEtà IS NULL (Persone)

=

SEL Età>30 Età30 Età IS NULL (Persone)

= Persone

Selezione con valori nulli

Riferimenti

Documenti correlati

Algebra Relazionale e SQL.. a) Elencare i medici che appartengono a reparti in cui è ricoverata almeno una donna b) Elencare i primari di ciascun reparto, ciascuno con la

Genitore Figlio Luca Anna Maria Anna Giorgio Luca Silvia Maria Enzo Maria. Genitori Per trovare nonni

l’attributo MatrDocente nella relazione Corsi fa riferimento a Matricola nella relazione Docenti I valori assunti da un attributo nella relazione referenziante devono

DB M G 37 Join: esempio Trovare le informazioni sui corsi e sui docenti che li tengono.. DB M G 39

P (CodP, NomeP, Taglia, Colore, Magazzino) F (CodF, NomeF, NSoci, Sede)R. FP (CodF,

Come confrontare tuple di una stessa tabella? Generazione di una o più copie della tabella e join. un esempio: come determinare il valore massimo o minimo associato ad dato

Padre Figlio Adamo Caino Adamo Abele Abramo Isacco Abramo

ALTER TABLE Prestazione ADD CONSTRAINT Categoria-Prestazione FOREIGN KEY (FKCategoria) REFERENCES Categoria (ID). ALTER TABLE Servizio ADD CONSTRAINT Prestazione-Servizio FOREIGN KEY