Sei sulla pagina 1di 6

L’ALGEBRA RELAZIONALE

 Operatori relazionali : agiscono su una o più relazioni per ottenere una nuova relazione
(interrogazioni)
 Selezione
 Proiezione
 Congiunzione

GRADO E CARDINALITÀ DELLA RELAZIONE (2 proprietà)


◼ Grado = numero delle colonne della tabella
◼ Cardinalità = numero delle righe della tabella

SELEZIONE
◼ La selezione (select) genera una nuova
relazione costituita solo dalle tuple della
relazione di partenza che soddisfano una
determinata condizione; vengono cioè
selezionate le righe con i valori degli attributi
corrispondenti alla condizione prefissata.
◼ Relazione risultante :
· grado uguale
· cardinalità minore o uguale a quella di
partenza (di solito minore)

OPERAZIONI RELAZIONALI: SELEZIONE

PROIEZIONE
◼ La proiezione (project) genera una nuova relazione estraendo dalla tabella iniziale una o più colonne
corrispondenti agli attributi prefissati.
◼ Relazione risultante :
· grado minore o uguale
· cardinalità minore o uguale a quella di partenza (righe uguali ridotte a una).
OPERAZIONI RELAZIONALI: PROIEZIONE

SELEZIONE E PROEIZIONE

CONGIUNZIONE
◼ La congiunzione (join) serve a combinare due relazioni aventi uno o più attributi in comune, generando
una nuova relazione che contiene le righe della prima e della seconda tabella, che possono essere
combinate secondo i valori uguali degli attributi comuni.
◼ Relazione risultante : · grado uguale alla somma dei gradi delle relazioni di partenza meno il numero
degli attributi in comune. · cardinalità non prevedibile a priori, in quanto si ottengono solo le righe che
possono essere combinate.
OPERAZIONI RELAZIONALI: CONGIUNZIONE

SELF-JOIN
◼ congiunzione della tabella con se stessa Per esempio:
– cittadini e capifamiglia nell’anagrafe
– dipendenti e dirigenti di un’azienda

TIPI DI CONGIUNZIONE (JOIN)


◼ inner-join o equi-join : corrispondenza di valori uguali per attributi comuni nelle due tabelle.
◼ join esterno (outer join)
– left join (tutte le righe della prima tabella e quelle della seconda che si combinano)
– right join (tutte le righe della seconda tabella e quelle della prima che si combinano)

ALTRI OPERATORI
Per tabelle con struttura omogenea, cioè righe con lo stesso numero di attributi, dello stesso tipo e nello
stesso ordine :
◼ unione
◼ intersezione
◼ differenza

ESEMPIO

• Unione: elenco dei clienti, in generale


• Intersezione: elenco delle persone che si servono sia presso la macelleria, sia presso la cartoleria (Fabbri)
• Differenza M-C: clienti che si servono presso la macelleria, ma non presso la cartoleria (Mauri e Zeni: da
contattare così che si servano anche presso la cartoleria!)

INTERROGAZIONI CON USO DI PIÙ OPERATORI


• Facoltà (CodFac, Descrizione, Città)
• Studenti (Matricola,Cognome,Nome, Indirizzo,CodFac)
◼ Cognome, Nome e Descrizione della Facoltà per gli studenti che risiedono a Milano
1. Selezione di Studente per Indirizzo = “Milano”
2. Congiunzione della tabella ottenuta su CodFac e di Facoltà su CodFac
3. Proiezione della tabella ottenuta su Cognome, Nom
ESERCIZI
Utilizzare il modello relazionale con Studente e Facoltà e specificare le operazioni relazionali per ottenere le
seguenti informazioni :
1. Cognome e Nome degli studenti di Lingue
2. Matricola e Cognome degli studenti di Ingegneria che risiedono a Milano
3. Matricola degli studenti che risiedono a Torino
4. Cognome e residenza di tutti gli studenti
5. Matricola, Cognome e Nome di tutti gli studenti con cognome Rossi.
SOLUZIONE ESERCIZI
• Facoltà (CodFac, Descrizione, Città)
• Studente (Matricola,Cognome,Nome, Indirizzo,CodFac)

• Cognome e Nome degli studenti di Lingue


- Selezione di Facoltà per Descrizione = “Lingue”
- Congiunzione della tabella risultante su CodFac e di Studente su CodFac
- Proiezione della tabella risultante su Cognome e Nome
• Matricola degli studenti che risiedono a Torino
- Selezione di Studente per Indirizzo = “Torino”
- Proiezione della tabella risultante su Matricola
• Cognome e residenza di tutti gli studenti
- Proiezione di Studente su Cognome e Indirizzo
◼ Matricola, Cognome e Nome di tutti gli studenti con cognome Rossi.
- Selezione di Studente per Cognome = “Rossi”
- Proiezione della tabella risultante su Matricola, Cognome, Nome

ESERCIZIO: ABBONAMENTI ALLE RIVISTE


ESERCIZI: PRODOTTI E REPARTI

Reparti (CodRep, Nome)


Prodotti (CodProd, Descrizione, Prezzo, CodRep)
Vendite (Numero, Data, Quantità, CodProd)
 Codice, descrizione e prezzo dei prodotti di un determinato reparto di cui si conosce il nome
- Selezione di Reparti per Nome = prefissato
- Congiunzione della tabella risultante su CodRep e di Prodotti su CodRep
- Proiezione della tabella risultante su CodProd, Descrizione, Prezzo
 Codice dei prodotti di un determinato reparto venduti la vigilia di Natale 2019
- Selezione di Vendite per Data = 24/12/2019 - Selezione di Reparti per Nome = prefissato
- Congiunzione della tabella risultante su CodProd e di Prodotti su CodProd
- Congiunzione della tabella risultante su CodRep e di Reparti su CodRep - Proiezione della tabella
risultante su CodProd
 Data e quantità delle vendite dei prodotti aventi il prezzo superiore a una cifra prefissata
- Selezione di Prodotti per prezzo > prefissato
- Congiunzione della tabella risultante su CodProd e di Vendite su CodProd
- Proiezione della tabella risultante su Data e Quantità
 Codice e descrizione dei prodotti per i quali sono registrate vendite con quantità superiore a cifra
prefissata per singola vendita
- Selezione di Vendite per quantità prefissata
- Congiunzione della tabella risultante su CodProd e di Prodotti su CodProd
- Proiezione della tabella risultante su CodProd e Descrizione

Potrebbero piacerti anche