1 / 122

ALGEBRA RELAZIONALE

ALGEBRA RELAZIONALE. Le basi di dati rappresentano le informazioni di interesse per applicazioni che gestiscono i dati E’ importante considerare linguaggi per la specifica di operazioni sui dati stessi, che siano legati al modello dei dati scelto ( modello relazionale ).

Download Presentation

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. Le basi di dati rappresentano le informazioni di interesse per applicazioni che gestiscono i dati • E’ importante considerare linguaggi per la specifica di operazioni sui dati stessi, che siano legati al modello dei dati scelto (modello relazionale) Algebra Relazionale

  3. Linguaggi per basi di dati • operazioni sullo schema • DDL: data definition language per definire lo schema • VDL: view definition language per definire le viste d’utente • operazioni sui dati • DML: data manipulation language • interrogazione ("query") • inserimento, cancellazione e aggiornamento dei dati Algebra Relazionale

  4. Linguaggi per l’interrogazione • Una base di dati richiede un insieme di operazioni che consentano all’utente di specificare le richieste di recupero fondamentali • Le operazioni di questo tipo producono nuove relazioni, sulle quali è ulteriormente possibile applicare operazioni Algebra Relazionale

  5. Linguaggi di interrogazioneper basi di dati relazionali • Dichiarativi (di alto livello) • le espressioni specificano le proprietà del risultato ("che cosa") • Procedurali (di basso livello) • specificano le modalità di generazione del risultato ("come") Algebra Relazionale

  6. Linguaggi di interrogazione • Algebra relazionale: procedurale (teorico) • Calcolo relazionale: dichiarativo (teorico) • SQL (Structured Query Language): combina gli aspetti dichiarativi del calcolo e quelli procedurali dell’algebra (linguaggio reale) Algebra Relazionale

  7. Algebra relazionale • Insieme di operatori, definiti su relazioni, che producono ancora relazioni come risultati • insiemistici: unione, intersezione, differenza • specifici:ridenominazione, selezione, proiezione • join: join naturale, prodotto cartesiano, theta-join • raggruppamento: divisione Algebra Relazionale

  8. Operatori insiemistici • le relazioni sono insiemi • i risultati debbono essere relazioni - è sensato applicare le operazioni insiemistiche classiche di unione,intersezione, differenza - è possibile applicare solo a relazioni definite sugli stessi attributi Algebra Relazionale

  9. 7274 Rossi 42 Matricola Nome Età 7274 7274 Rossi Rossi 42 42 9824 7432 7432 7432 7432 Verdi Neri Neri Neri Neri 45 54 54 54 54 9824 9824 9824 Verdi Verdi Verdi 45 45 45 9297 9297 9297 Neri Neri Neri 33 33 33 Unione Laureati Quadri Matricola Nome Età Matricola Nome Età 7274 Rossi 42 9297 Neri 33 7432 Neri 54 7432 Neri 54 9824 Verdi 45 9824 Verdi 45 Laureati  Quadri Algebra Relazionale

  10. Nome Matricola Età 7274 Neri 9297 Rossi 42 33 Neri 7432 54 Verdi 9824 45 Quadri Matricola Nome Età 7432 7432 7432 7432 Neri Neri Neri Neri 54 54 54 54 9824 9824 9824 9824 Verdi Verdi Verdi Verdi 45 45 45 45 Intersezione Laureati Matricola Nome Età 7432 Neri 54 9824 Verdi 45 Laureati  Quadri Algebra Relazionale

  11. Matricola Nome Matricola Nome Età Età 7274 7274 7274 Neri 9297 Rossi Rossi Rossi 42 42 42 33 7432 7432 7432 7432 Neri Neri Neri Neri 54 54 54 54 9824 9824 9824 9824 Verdi Verdi Verdi Verdi 45 45 45 45 Quadri Matricola Nome Età Differenza Laureati Laureati – Quadri Algebra Relazionale

  12. Paternità Maternità Padre Madre Figlio Figlio Adamo Eva Abele Abele Eva Adamo Caino Set Sara Abramo Isacco Isacco Una unione sensata ma impossibile Paternità  Maternità ?? Algebra Relazionale

  13. Ridenominazione • operatore unario • "modifica lo schema" lasciando inalterata l'istanza dell'operando, cambia solo il nome degli attributi Algebra Relazionale

  14. Ridenominazione: definizione formale • Siano R una relazione su X, e Y un altro insieme di attributi con la stessa cardinalità X = {A1,……. Ak} Y = {B1,……. Bk} La ridenominazione A1,……. Ak  B1,……. Bk(R) contiene una ennuplat’ per ogni ennupla tin R tale che: • t’è una ennupla su Y • t’[Bi]=t[Ai], per ogni i=1,…,k Algebra Relazionale

  15. Padre Figlio Adamo Abele Adamo Caino Abramo Isacco Padre Figlio Adamo Abele Adamo Caino Abramo Isacco Paternità Genitore  Padre (Paternità) Genitore Algebra Relazionale

  16. Paternità Maternità Padre Genitore Madre Genitore Figlio Figlio Figlio Figlio Adamo Adamo Eva Eva Abele Abele Abele Abele Adamo Eva Eva Adamo Set Caino Set Caino Sara Sara Abramo Abramo Isacco Isacco Isacco Isacco Genitore  Padre (Paternità) Genitore  Madre (Maternità) Algebra Relazionale

  17. Genitore Genitore Figlio Figlio Adamo Adamo Abele Abele Adamo Adamo Caino Caino Abramo Abramo Isacco Isacco Genitore Figlio Eva Abele Eva Abele Eva Set Eva Set Sara Isacco Sara Isacco Genitore  Padre (Paternità) Genitore  Padre (Paternità)  Genitore  Madre (Maternità) Genitore  Madre (Maternità) Algebra Relazionale

  18. Cognome Ufficio Stipendio Impiegati Rossi Roma 55 Neri Milano 64 Cognome Fabbrica Salario Operai Bruni Monza 45 Verdi Latina 55 Cognome Sede Retribuzione Rossi Roma 55 Neri Milano 64 Bruni Monza 45 Verdi Latina 55  Sede, Retribuzione  Ufficio, Stipendio (Impiegati)  Sede, Retribuzione  Fabbrica, Salario (Operai)

  19. Selezione • operatore unario su una tabella • produce un risultato che • ha lo stesso schema della relazione di partenza (colonne della tabella) • contiene un sottoinsieme delle ennuple dell'operando (righe della tabella), • quelle che soddisfano una condizione Algebra Relazionale

  20. Selezione Algebra Relazionale

  21. Matricola Cognome Filiale Stipendio 7309 Rossi Roma 55 5998 9553 5698 Neri Neri Milano Milano Milano Napoli 64 64 44 Impiegati • impiegati che: • guadagnano più di 50 • guadagnano più di 50 e lavorano a Milano • hanno lo stesso nome della filiale presso cui lavorano Algebra Relazionale

  22. Selezione, sintassi e semantica • sintassi Condizione (Operando) • Condizione: espressione booleana • Operando: una espressione dell’algebra relazionale • semantica • il risultato è una relazione sugli stessi attributi che contiene le ennuple dell'operando che soddisfano la condizione Algebra Relazionale

  23. Condizione di selezione F formula proposizionale formata da • operatori booleani: Ù (AND), Ú (OR), ¬ (NOT) • condizioni atomiche: termini che possono contenere confronti fra attributi, o fra attributi e costanti. Hanno forma: AJB oppure AJc dove – J operatore di confronto (=, ¹, >, <, ³, £) – A, B attributi in X – c costante compatibile con dominio di attributo (A) con cui c viene confrontata Algebra Relazionale

  24. Condizioni di selezione, esempi • Esempi: • (Stipendio > 50) • Filiale='Milano' • Cognome = Filiale • (Stipendio > 50) AND (Filiale='Milano') • NOT (Cognome='Neri') Algebra Relazionale

  25. Impiegati Matricola Cognome Filiale Stipendio 7309 Rossi Roma 55 5698 9553 5698 5998 9553 Milano Milano Neri Neri Neri Napoli Milano Napoli Milano Milano 44 64 64 44 64 • impiegati che guadagnano più di 50 Stipendio > 50 (Impiegati) Algebra Relazionale

  26. Impiegati Matricola Cognome Filiale Stipendio 7309 7309 Rossi Rossi Roma Roma 55 55 5698 9553 5698 5998 9553 5998 Neri Neri Neri Neri Milano Milano Napoli Milano Milano Milano Napoli Milano 64 44 64 64 44 64 • impiegati che guadagnano più di 50 e lavorano a Milano Stipendio > 50 AND Filiale = 'Milano' (Impiegati) Algebra Relazionale

  27. Impiegati Matricola Cognome Filiale Stipendio 7309 7309 Rossi Rossi Roma Roma 55 55 9553 5698 9553 5998 5698 5998 Neri Neri Milano Neri Milano Neri Napoli Milano Milano Milano Napoli Milano 64 64 64 44 44 64 • impiegati che hanno lo stesso nome della filiale presso cui lavorano Cognome= Filiale(Impiegati) Algebra Relazionale

  28. Osservazioni • l’operazione di selezione è commutativa  <Cond1> ( <Cond2> (R)) =  <Cond2> ( <Cond1> (R)) =  <Cond1> AND <Cond2> (R) • il numero delle t-uple della relazione R dopo l’applicazione di una selezione è minore o uguale al numero delle t-uple di R |  <Cond> (R) |  | R | Algebra Relazionale

  29. Matricola Cognome Filiale Età 7309 Rossi Roma 32 9553 5998 Bruni Neri Milano Milano NULL 45 Impiegati Selezione con valori nulli  Età > 40 (Impiegati) • la condizione atomica è vera solo per valori non nulli Algebra Relazionale

  30. Un risultato non desiderabile  Età>30 (Persone)   Età30 (Persone)  Persone • Perché? Perché le selezioni vengono valutate separatamente! • Ma anche  Età>30  Età30 (Persone)  Persone • Perché? Perché anche le condizioni atomiche vengono valutate separatamente! Algebra Relazionale

  31.  Età > 40 (Impiegati) • la condizione atomica è vera solo per valori non nulli • per riferirsi ai valori nulli esiste la apposita di condizione: IS NULL Algebra Relazionale

  32. A questo punto:  Età>30 (Persone)   Età30 (Persone)   Età IS NULL (Persone) =  Età>30  Età30  (Età IS NULL)(Persone) = Persone Algebra Relazionale

  33. Logica con il valore NULL • Oltre ai valori di verità Vero (V) e Falso (F), si introduce NULL (?) • NOT ( A IS NULL) si scrive anche A IS NOT NULL Algebra Relazionale

  34. Matricola Cognome Filiale Età 7309 Rossi Roma 32 9553 5998 5998 9553 5998 9553 Neri Bruni Bruni Neri Bruni Neri Milano Milano Milano Milano Milano Milano 45 45 NULL 45 NULL NULL Impiegati  (Età > 40) OR (Età IS NULL) (Impiegati) Algebra Relazionale

  35. Selezione e proiezione • operatori "ortogonali" • selezione: • decomposizione orizzontale • proiezione: • decomposizione verticale Algebra Relazionale

  36. selezione proiezione

  37. Proiezione • operatore unario su una tabella • produce un risultato che • ha parte degli attributi della tabella • contiene ennuple (righe) cui contribuiscono tutte le ennuple della tabella iniziale Algebra Relazionale

  38. Matricola Cognome Filiale Stipendio 7309 Neri Napoli 55 5998 9553 5698 Neri Rossi Rossi Milano Roma Roma 64 64 44 Impiegati • per tutti gli impiegati: • matricola e cognome • cognome e filiale Algebra Relazionale

  39. Proiezione, sintassi e semantica • sintassi  <ListaAttributi> (Operando) <ListaAttributi> è un elenco di attributi di Operando Operando è una espressione nell’algebra relazionale • semantica • il risultato contiene le ennuple ottenute da tutte le ennuple dell'operando ristrette agli attributi nella lista Algebra Relazionale

  40. Matricola Cognome Filiale Stipendio 7309 Neri Napoli 55 5998 5698 9553 Rossi Neri Rossi Milano Roma Roma 44 64 64 • matricola e cognome di tutti gli impiegati Matricola, Cognome (Impiegati) Algebra Relazionale

  41. Matricola Cognome Filiale Stipendio 7309 Neri Napoli 55 5998 5698 9553 Rossi Neri Rossi Milano Roma Roma 44 64 64 • cognome e filiale di tutti gli impiegati Cognome, Filiale (Impiegati) Algebra Relazionale

  42. Cardinalità delle proiezioni • una proiezione • contiene al più tante ennuple quante l'operando • può contenerne di meno • se X è una superchiave di R, allora  X(R) contiene esattamente tante ennuple quante R Algebra Relazionale

  43. Selezione e proiezione • Combinando selezione e proiezione, possiamo estrarre interessanti informazioni da una relazione Cond (A,B,C (R) ) = (A,B,CCond (R) ) ? Sono commutative a certe condizioni ! Algebra Relazionale

  44. Matricola Cognome Filiale Stipendio 7309 Rossi Roma 55 5698 9553 5698 5998 9553 Milano Milano Neri Neri Neri Napoli Milano Napoli Milano Milano 44 64 64 44 64 • matricola e cognome degli impiegati che guadagnano più di 50 Matricola,Cognome ( ) Stipendio > 50 (Impiegati) Algebra Relazionale

  45. combinando selezione e proiezione, possiamo estrarre informazioni da unarelazione • non possiamo però correlare informazioni presenti in relazioni diverse Algebra Relazionale

  46. Join • il join è l'operatore più interessante dell'algebra relazionale • permette di correlare dati in relazioni diverse • sfrutta la caratteristica fondamentale del modello relazionale, che è quella di essere basato su valori Algebra Relazionale

  47. Idea del join naturale

  48. Join naturale • operatore binario (generalizzabile a più relazioni) • produce un risultato • sull'unione degli attributi degli operandi (schema) • con ennuple costruite ciascuna a partire da una ennupla di ognuno degli operandi (istanza) Algebra Relazionale

  49. Join, sintassi e semantica • R1(X1), R2(X2) • R1 R2 è una relazione su X1X2 {t su X1 X2 : esistono t1R1e t2R2 con t[X1]=t1 [X1]e t[X2] =t2 [X2]} Algebra Relazionale

More Related