780 likes | 973 Views
Algebra relazionale. Accesso ai dati di un DB. Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema Modifica, aggiunta, rimozione tuple
E N D
Accesso ai dati di un DB • Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema • Modifica, aggiunta, rimozione tuple • Interrogazione a DB: funzione che, dato un DB, produce una relazione su un dato schema (non necessariamente uno degli schemi definiti nel DB)
Accesso ai dati di un DB • Aggiornamento e interrogazione vengono effettuati usando specifici linguaggi • Per esempio: algebra relazionale
Algebra relazionale • Linguaggio procedurale di accesso a DB • Si specificano operazioni complesse descrivendo procedimento da usare per ottenere soluzione • Interrogazioni: espressioni complesse
Algebra relazionale • Algebra relazionale: basata su insieme di operatori • Definiti su relazioni • Producono relazioni come risultati • Operatori • Insiemistici: unione, intersezione, differenza • Specifici: ridenominazione, selezione, proiezione, join
Operatori insiemistici • Relazioni: insiemi di tuple omogenee, cioè definite sigli stessi attributi • Insiemi: ha senso usare operatori insiemistici • Insiemi di tuple omogenee: usare operatori insiemistici solo su relazioni definite sugli stessi attributi • Altrimenti, si ottengono insiemi di tuple disomogenee, che non rappresentano relazioni
Unione di relazioni • Date due relazioni r1(X) e r2(X) definite sullo stesso insieme di attributi X • r1r2: relazione su X che contiene tuple appartenenti a r1 oppure a r2 oppure a entrambe
Unione di relazioni Laureati Dirigenti Laureati Dirigenti
Differenza di relazioni • Date due relazioni r1(X) e r2(X) definite sullo stesso insieme di attributi X • r1-r2: relazione su X che contiene tuple appartenenti a r1 ma non a r2
Differenza di relazioni Laureati Dirigenti Laureati - Dirigenti
Intersezione di relazioni • Date due relazioni r1(X) e r2(X) definite sullo stesso insieme di attributi X • r1r2: relazione su X che contiene tuple appartenenti sia a r1 che a r2
Intersezione di relazioni Laureati Dirigenti Laureati Dirigenti
Operatori di manipolazione di relazioni • Specifici dell’algebra relazionale (non derivano dalle teoria degli insiemi) • Permettono di manipolare relazioni per creare nuove relazione • Ridenominazione • Selezione • Proiezione • Join
Operatori di manipolazione di relazioni • Specifici dell’algebra relazionale (non derivano dalle teoria degli insiemi) • Permettono di manipolare relazioni per creare nuove relazione • Ridenominazione • Selezione • Proiezione • Join
Ridenominazione di relazioni • Cambia il nome di un attributo di relazione lasciandone inalterata l’istanza (modifica solo intestazione di relazione) • Utile per applicare operatori insiemistici a relazioni con attributi di nome diverso
Ridenominazione di relazioni • Per esempio: Maternità Paternità Paternità Maternità ?
Ridenominazione di relazioni • Una ridenominazione: GenitorePadre(Paternità) Paternità
Ridenominazione di relazioni • Una ridenominazione: GenitorePadre(Paternità) GenitorePadre(Paternità) Paternità
Ridenominazione di relazioni • Una ridenominazione: GenitorePadre(Paternità) GenitorePadre(Paternità) Paternità
Ridenominazione di relazioni • Un’altra ridenominazione: GenitoreMadre(Maternità) Maternità
Ridenominazione di relazioni GenitorePadre(Paternità) GenitoreMadre(Maternità) Corretta applicazione di unione relazioni
Ridenominazione di relazioni Imp Op
Ridenominazione di relazioni Imp Op Sede,RetribuzioneAgenzia,Stipendio(Imp) Sede,RetribuzioneFabbrica,Salario(Op)
Ridenominazione di relazioni • Sia r(X) è la schema di una relazione r definita su insieme X={A1,…,Ak} • … e sia Y un insieme di attributi Y={B1,…,Bk} • La ridenominazioneB1,..,BkA1,…,Ak(r) contiene una tupla t’ per ogni tupla t in r, così definita: • t’ è una tupla su Y, e • t’[Bi]=t[Ai] per 1ik
Ridenominazione di relazioni • Di solito, si indicano nelle ridenominazione solo attributi ridenominati (quelli per cui Ai Bi) • GenitorePadre(Paternità): omesso Figlio
Operatori di manipolazione di relazioni • Specifici dell’algebra relazionale (non derivano dalle teoria degli insiemi) • Permettono di manipolare relazioni per creare nuove relazione • Ridenominazione • Selezione • Proiezione • Join
Selezione • Data relazione r su insieme di attributi X, selezione F(r) produce relazione su attributi X che contiene tuple di r che soddisfano la condizione di selezione F Selezione secondo F F(r)
Selezione • F formula proposizionale: condizione di selezione formata da • Operatori booleani: • (AND), • (OR), • (NOT)
Selezione • F formula proposizionale: condizione di selezione formata da • Operatori booleani • Condizione atomiche: termine che possono contenere • Confronti fra attributi (per esempio, Stipendio>Tasse, dove Stipendio e Tasse sono attributi) • Confronti fra attributi e constanti (per esempio, Età 60, dove Età è un attributo)
Selezione Impiegati Età>30Stipendio>2.000,00(Impiegati)
Selezione Impiegati Età>30Stipendio>2.000,00(Impiegati) Età>30Stipendio>2.000,00(Impiegati)
Operatori di manipolazione di relazioni • Specifici dell’algebra relazionale (non derivano dalle teoria degli insiemi) • Permettono di manipolare relazioni per creare nuove relazione • Ridenominazione • Selezione • Proiezione • Join
Proiezione • Data relazione r su insieme di attributi X e un sottoinsieme Y di X, la proiezione Y(r) è l’insieme di tuple su Y ottenute dalle tuple di r considerando solo i valori su Y • Y(r) = {t[Y] | t r} Proiezione su Y Y(r)
Proiezione • Per esempio: • Impiegati(Cognome,Nome,Reparto,Capo) • Cognome,Nome(Impiegati) ha attributi Cognome, Nome • Relazioni non devono contenere tuple ripetute • Tuple uguali collassano in una sola
Proiezione Impiegati Reparto,Capo(Impiegati)
Tuple di una proiezione • Una proiezione Y(r) contiene al più tante tuple quante r • Se Y è una superchiave di r, allora Y(r) contiene tante tuple quante r • Questo può accadere comunque anche se Y non è superchiave (basta che le tuple su Y siano casualmente tutte diverse tra loro)
Operatori di manipolazione di relazioni • Specifici dell’algebra relazionale (non derivano dalle teoria degli insiemi) • Permettono di manipolare relazioni per creare nuove relazione • Ridenominazione • Selezione • Proiezione • Join
Join • Operatore che permette di correlare dati contenuti in relazioni diverse confrontando i valori delle tuple (modello relazionale basato su valori) • Join Naturale • Theta-Join
Join Naturale • Permette di correlare dati contenuti in relazioni diverse confrontando attributi con stesso nome • Produce una relazione definita su unione di insiemi di attributi delle due relazioni su cui opera • Tuple del risultato: ottenute combinando le tuple dei due operandi con valore uguale su attributi comuni
Join Naturale • Date r1(X) e r2(Y), r1r2 è relazione su XY: r1r2={t su XY | t[X]r1 e t[Y]r2}
Join Naturale Rel1 Rel2 Rel1(Impiegato,Reparto) Rel2(Reparto,Capo) X Y
Join Naturale Rel1 Rel2 Rel1 Rel2
Join Naturale Rel1 Rel2 Rel1 Rel2
Join Naturale • Se relazioni da combinare definite su stesso insieme di attributi, r1(X), r2(X) • … r1r2 = r1r2 • Cioè il join coincide con intersezione: combina tuple con stessi valori di attributi su r1 e r2
Join Naturale Rel1 Rel2 Rel1 Rel2
Join Naturale Rel1 Rel2 Rel1 Rel2
Join Naturale • Se relazioni da combinare definite su insiemi di attributi disgiunti, r1(X), r2(Y) con XY= • … condizione di corrispondenza tra tuple è sempre vera • … r1r2=r1xr2 (prodotto cartesiano) • Combina tutte le tuple di r1 con tutte quelle di r2
Join Naturale Rel1 Rel2 Rel1 Rel2
Join Naturale • Numero attributi di r1r2 somma numeri attributi di r1 e r2 • Spesso join fatto su chiave di relazione • Per esempio: Infrazioni(Codice,Data,Agent,Art,Prov,Numero) Auto(Prov,Numero,Proprietario,Indirizzo) • Spesso imposto vincolo di integrità referenziale tra attributi di join (per evitare che r1 faccia riferimento a valori inesistenti in r2)