1 Algebra Relazionale Eugenio Di Sciascio
2 Introduzione Lalgebra relazionale è un linguaggio procedurale: le operazioni vengono specificate descrivendo il procedimento da seguire Essa è unalgebra chiusa. E costituita da un insieme di operatori definiti su relazioni che producono relazioni. Pertanto il risultato di una operazione può essere ulteriormente manipolato. I principali operatori sono la selezione e la proiezione (unari) e il join (binario) Esistono le operazioni tipiche dellinsiemistica, unione, intersezione, differenza e il prodotto cartesiano
3 Selezione Consente di selezionare un sottoinsieme delle tuple di una relazione che soddisfino una condizione di selezione. Loperazione è espressa in generale come: La condizione di selezione può prevedere comparazione tra attributi compatibili o con costanti, oltre a essere ottenuta collegando varie condizioni mediante connettivi logici (and, or, not).
4 Esempio CognomeNome Data di nascita Data di assunzione DavolioNancy08-dic-4801-mag-92 FullerAndrew19-feb-5214-ago-92 LeverlingJanet30-ago-6301-apr-92 PeacockMargare t 19-set-3703-mag-93 BuchananSteven04-mar-5517-ott-93 SuyamaMichael02-lug-6317-ott-93 KingRobert29-mag-6002-gen-94 CallahanLaura09-gen-5805-mar-94 Dodswort h Anne27-gen-6615-nov-94 Rossimario Impiegati CognomeNome Data di nascita Data di assunzione SuyamaMichae l 02-lug-6317-ott-93 KingRobert29-mag-6002-gen-94 Dodswort h Anne27-gen-6615-nov-94
5 Selezione (2) Loperazione viene applicata a ciascuna tupla individualmente. La relazione risultante mantiene lo schema di quella di partenza, i.e. il grado rimane invariato. La cardinalità risultante è invece di quella di partenza. La selezione è commutativa:
6 Proiezione Consente di selezionare un sottoinsieme delle colonne (attributi) di una relazione elencati in una lista di attributi di proiezione Loperazione è espressa in generale come:
7 Proiezione (2) Loperazione modifica, in generale, il grado, i.e. il numero di attributi. Loperazione modifica, in generale, anche la cardinalità (perché?) Loperazione non è commutativa.
8 Esempio CognomeNomePosizioneTitoloData di nascita DavolioNancyRappresentanteDott.ssa08-dic-48 FullerAndrewDirettore venditeIng.19-feb-52 LeverlingJanetFunzionario commercialeDott.ssa30-ago-63 PeacockMargaretRappresentanteDott.ssa19-set-37 BuchananStevenDirettore commercialeIng.04-mar-55 SuyamaMichaelRappresentanteDott.02-lug-63 KingRobertRappresentanteDott.29-mag-60 CallahanLauraResp. comm. di zonaDott.ssa09-gen-58 DodsworthAnneRappresentanteDott.ssa27-gen-66 Rossimario Impiegato CognomeNome DavolioNancy FullerAndrew LeverlingJanet PeacockMargaret BuchananSteven SuyamaMichael KingRobert CallahanLaura DodsworthAnne Rossimario Titolo Dott. Dott.ssa Ing.
9 Sequenze di operazioni Trattando operazioni in una algebra chiusa è ovviamente possibile scrivere espressioni come sequenza di operazioni CognomeNomePosizioneTitoloData di nascita DavolioNancyRappresentanteDott.ssa08-dic-48 FullerAndrewDirettore venditeIng.19-feb-52 LeverlingJanetFunzionario commercialeDott.ssa30-ago-63 PeacockMargaretRappresentanteDott.ssa19-set-37 BuchananStevenDirettore commercialeIng.04-mar-55 SuyamaMichaelRappresentanteDott.02-lug-63 KingRobertRappresentanteDott.29-mag-60 CallahanLauraResp. comm. di zonaDott.ssa09-gen-58 DodsworthAnneRappresentanteDott.ssa27-gen-66 Rossimario NomeCognome MichaelSuyama RobertKing
10 Unione, intersezione, differenza Operazioni binarie dellinsiemistica Hanno senso su relazioni compatibili, cioè con identici attributi o almeno appartenenti al medesimo dominio. Unione: R S produce una relazione che include tutte le tuple presenti in R o in S o in entrambe. Intersezione: R S produce una relazione che include tutte le tuple presenti sia in R che in S. Differenza: R-S produce una relazione che include tutte le tuple presenti in R, ma non in S.
11 Esempio Studente (S)Laureato (L) S L S-L
12 Prodotto cartesiano E una operazione binaria su insiemi, ma non richiede la compatibilità delle relazioni partecipanti.. Essa è denotata con il simbolo X. Il grado della relazione risultante è pari alla somma dei gradi delle due relazioni partecipanti. La cardinalità è pari al prodotto di quelle delle due relazioni partecipanti.
13 Esempio
14 Join E loperazione utilizzata per combinare coppie di tuple provenienti da relazioni collegate in singole tuple. Consente di elaborare le associazioni tra relazioni. è dello stesso tipo di quella già vista per la selezione
15 Join (2) Il join con una condizione generica è detto theta join Quando la condizione sia una uguaglianza loperazione è detta equi join. Questa operazione includerà due volte, nella tabella risultante, gli attributi su cui è posta la condizione di uguaglianza. Quando loperazione si limita a riportare una volta lattributo di comparazione nella tabella risultante parleremo di join naturale.