1.24k likes | 1.4k Views
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 ).
E N D
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
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
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
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
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
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
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
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
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
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
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
Ridenominazione • operatore unario • "modifica lo schema" lasciando inalterata l'istanza dell'operando, cambia solo il nome degli attributi Algebra Relazionale
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
Padre Figlio Adamo Abele Adamo Caino Abramo Isacco Padre Figlio Adamo Abele Adamo Caino Abramo Isacco Paternità Genitore Padre (Paternità) Genitore Algebra Relazionale
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
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
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)
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
Selezione Algebra Relazionale
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
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
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
Condizioni di selezione, esempi • Esempi: • (Stipendio > 50) • Filiale='Milano' • Cognome = Filiale • (Stipendio > 50) AND (Filiale='Milano') • NOT (Cognome='Neri') Algebra Relazionale
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
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
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
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
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
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
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
A questo punto: Età>30 (Persone) Età30 (Persone) Età IS NULL (Persone) = Età>30 Età30 (Età IS NULL)(Persone) = Persone Algebra Relazionale
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
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
Selezione e proiezione • operatori "ortogonali" • selezione: • decomposizione orizzontale • proiezione: • decomposizione verticale Algebra Relazionale
selezione proiezione
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
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
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
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
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
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
Selezione e proiezione • Combinando selezione e proiezione, possiamo estrarre interessanti informazioni da una relazione Cond (A,B,C (R) ) = (A,B,CCond (R) ) ? Sono commutative a certe condizioni ! Algebra Relazionale
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
combinando selezione e proiezione, possiamo estrarre informazioni da unarelazione • non possiamo però correlare informazioni presenti in relazioni diverse Algebra Relazionale
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
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
Join, sintassi e semantica • R1(X1), R2(X2) • R1 R2 è una relazione su X1X2 {t su X1 X2 : esistono t1R1e t2R2 con t[X1]=t1 [X1]e t[X2] =t2 [X2]} Algebra Relazionale