1 / 75

Algebra relazionale

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

archer
Télécharger la présentation

Algebra relazionale

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algebra relazionale

  2. 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)

  3. Accesso ai dati di un DB • Aggiornamento e interrogazione vengono effettuati usando specifici linguaggi • Per esempio: algebra relazionale

  4. Algebra relazionale • Linguaggio procedurale di accesso a DB • Si specificano operazioni complesse descrivendo procedimento da usare per ottenere soluzione • Interrogazioni: espressioni complesse

  5. 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

  6. 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

  7. Unione 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 oppure a r2 oppure a entrambe

  8. Unione di relazioni Laureati Dirigenti Laureati  Dirigenti

  9. 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

  10. Differenza di relazioni Laureati Dirigenti Laureati - Dirigenti

  11. Intersezione 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 sia a r1 che a r2

  12. Intersezione di relazioni Laureati Dirigenti Laureati  Dirigenti

  13. 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

  14. 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

  15. 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

  16. Ridenominazione di relazioni • Per esempio: Maternità Paternità Paternità  Maternità ?

  17. Ridenominazione di relazioni • Una ridenominazione: GenitorePadre(Paternità) Paternità

  18. Ridenominazione di relazioni • Una ridenominazione: GenitorePadre(Paternità) GenitorePadre(Paternità) Paternità

  19. Ridenominazione di relazioni • Una ridenominazione: GenitorePadre(Paternità) GenitorePadre(Paternità) Paternità

  20. Ridenominazione di relazioni • Un’altra ridenominazione: GenitoreMadre(Maternità) Maternità

  21. Ridenominazione di relazioni GenitorePadre(Paternità)  GenitoreMadre(Maternità) Corretta applicazione di unione relazioni

  22. Ridenominazione di relazioni Imp

  23. Ridenominazione di relazioni Imp Op

  24. Ridenominazione di relazioni Imp Op Sede,RetribuzioneAgenzia,Stipendio(Imp)  Sede,RetribuzioneFabbrica,Salario(Op)

  25. 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 ridenominazioneB1,..,BkA1,…,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 1ik

  26. Ridenominazione di relazioni • Di solito, si indicano nelle ridenominazione solo attributi ridenominati (quelli per cui Ai  Bi) • GenitorePadre(Paternità): omesso Figlio

  27. 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

  28. 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)

  29. Selezione • F formula proposizionale: condizione di selezione formata da • Operatori booleani: •  (AND), •  (OR), •  (NOT)

  30. 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)

  31. Selezione Impiegati Età>30Stipendio>2.000,00(Impiegati)

  32. Selezione Impiegati Età>30Stipendio>2.000,00(Impiegati) Età>30Stipendio>2.000,00(Impiegati)

  33. 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

  34. 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)

  35. 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

  36. Proiezione Impiegati Reparto,Capo(Impiegati)

  37. 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)

  38. 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

  39. 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

  40. 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

  41. Join Naturale • Date r1(X) e r2(Y), r1r2 è relazione su XY: r1r2={t su XY | t[X]r1 e t[Y]r2}

  42. Join Naturale Rel1 Rel2 Rel1(Impiegato,Reparto) Rel2(Reparto,Capo) X Y

  43. Join Naturale Rel1 Rel2 Rel1  Rel2

  44. Join Naturale Rel1 Rel2 Rel1  Rel2

  45. Join Naturale • Se relazioni da combinare definite su stesso insieme di attributi, r1(X), r2(X) • … r1r2 = r1r2 • Cioè il join coincide con intersezione: combina tuple con stessi valori di attributi su r1 e r2

  46. Join Naturale Rel1 Rel2 Rel1  Rel2

  47. Join Naturale Rel1 Rel2 Rel1  Rel2

  48. Join Naturale • Se relazioni da combinare definite su insiemi di attributi disgiunti, r1(X), r2(Y) con XY= • … condizione di corrispondenza tra tuple è sempre vera • … r1r2=r1xr2 (prodotto cartesiano) • Combina tutte le tuple di r1 con tutte quelle di r2

  49. Join Naturale Rel1 Rel2 Rel1  Rel2

  50. Join Naturale • Numero attributi di r1r2  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)

More Related