La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Basi di Dati L’Algebra Relazionale Home page del corso:

Presentazioni simili


Presentazione sul tema: "Corso di Basi di Dati L’Algebra Relazionale Home page del corso:"— Transcript della presentazione:

1 Corso di Basi di Dati L’Algebra Relazionale Home page del corso:

2 Algebra Relazionale Altri linguaggi DML di interrogazione:  SQL2/SQL3 (standard de facto, già visto..)  Calcolo relazionale ( linguaggio dichiarativo )  Datalog (basato su Prolog) L’ algebra relazionale è un linguaggio ( procedurale ) di interrogazione per basi di dati relazionali.

3 Algebra Relazionale  All’interno di un DBMS, le query SQL sono controllate ed eseguite da un interprete SQL.  L’interprete spesso traduce l’SQL in un altro linguaggio procedurale (~algebra relazionale) per motivi di:  Facilità d’esecuzione  è possibile scomporre query complesse in una sequenza di procedure da eseguire.  Ottimizzazione  è possibile riscrivere (automaticamente) le query procedurali in modo da consumare meno memoria o tempo di esecuzione.

4 Algebra Relazionale Il linguaggio dell’ algebra relazionale è costituito da una serie di operatori (algebrici) che:  si applicano ad una relazione (definizione di relazione nel modello relazionale).  producono in output una relazione.  sono componibili, ossia è possibile utilizzarli in cascata per creare interrogazioni complesse. Gli operatori possono essere unari o binari.

5 Algebra Relazionale Interrogazione SQL Interrogazione linguaggio procedurale Interrogazione ottimizzata DB Traduttore SQL  Linguaggio Procedurale Ottimizzatore di query Esecuzione INTERPRETE SQL DEL DBMS Generata dall’utente/ applicazione

6 Algebra Relazionale Il linguaggio dell’ algebra relazionale è costituito da una serie di operatori (algebrici):  Operatori su insiemi: unione, intersezione, differenza.  Operatori su attributi: ridenominazione, selezione, proiezioni.  Operatori intra-relazionali: join naturale, theta- join, equi-join, etc.

7 Algebra Relazionale Le relazioni sono insiemi  è possibile definire operatori insiemistici su di esse:  Unione di r 1 (X) ed r 2 (X):  Intersezione di r 1 (X) ed r 2 (X):  Differenza di r 1 (X) ed r 2 (X): Le relazioni r 1 ed r 2 devono avere lo stesso schema!

8 NomeCognomeNascita GiuseppeRossi10/03/19769 RobertoBianchi14/06/1982 MicheleVerdi17/08/1983 NomeCognomeNascita GiovanniBianchi10/06/1980 RobertoBianchi14/06/1982 MicheleVerdi17/08/1983 CALCIATORI ALLENATORI Algebra Relazionale NomeCognomeNascita GiuseppeRossi10/03/19769 RobertoBianchi14/06/1982 MicheleVerdi17/08/1983 GiovanniBianchi10/06/1980 NomeCognomeNascita RobertoBianchi14/06/1982 MicheleVerdi17/08/1983

9 NomeCognomeNascita GiuseppeRossi10/03/19769 RobertoBianchi14/06/1982 MicheleVerdi17/08/1983 NomeCognomeData GiovanniBianchi10/06/1980 RobertoBianchi14/06/1982 MicheleVerdi17/08/1983 CALCIATORI ALLENATORI Algebra Relazionale NomeCognome??? NomeCognome??? Q. Cosa accade se le relazioni non hanno esattamente lo stesso schema, ma dispongono di attributi con nomi diversi ?

10 Algebra Relazionale L’operatore di ridenominazione  consente di modificare i nomi degli attributi di una relazione.  B1,B2, … BM  A1, A2,.. AM (r) SEMANTICA: Modifica lo schema della relazione, ridenominando gli attributi A 1, A 2, …A M in B 1, B 2, B M senza alterare i dati della relazione. A1A1 A2A2 …AMAM B1B1 B2B2 …BMBM

11 NomeCognomeNascita GiuseppeRossi10/03/19769 RobertoBianchi14/06/1982 MicheleVerdi17/08/1983 NomeCognomeData GiovanniBianchi10/06/1980 RobertoBianchi14/06/1982 MicheleVerdi17/08/1983 CALCIATORI ALLENATORI Algebra Relazionale NomeCognomeNascita GiuseppeRossi10/03/19769 RobertoBianchi14/06/1982 MicheleVerdi17/08/1983 GiovanniBianchi10/06/1980 NomeCognomeNascita RobertoBianchi14/06/1982 MicheleVerdi17/08/1983

12 Algebra Relazionale L’operatore di selezione  F (r)  consente di selezionare un sottoinsieme delle tuple della relazione r, in base alla condizione specificata da F. A1A1 A2A2 …A 5M … … … A1A1 A2A2 … … … Relazione r  F (r) Relazione r’ Insieme delle righe di r che soddisfano la condizione F

13 Algebra Relazionale L’operatore di selezione  F (r)  consente di selezionare un sottoinsieme delle tuple della relazione r, in base alla condizione specificata da F. La condizione F è definita come insieme di predicati connessi da operatori logici.  F= P 1 Op P 2 Op … P N  Op e’ un operatore booleano (AND, OR, NOT)

14 Algebra Relazionale La condizione F e’ definita come insieme di predicati connessi da operatori logici. F= P 1 Op P 2 Op … P N Ogni predicato è del tipo A  B oppure A  c, dove:   e’ un operatore di confronto (,=,<>, =).  A e B sono attributi di r, su cui ha senso l’operatore  contiene una valore compatibile con il dominio di A.

15 CALCIATORI Algebra Relazionale NomeCognomeNascitaAnniSocieta’ GiuseppeRossi10/03/ Dinamo RobertoBianchini14/06/198233Polisportiva MicheleVerdi17/08/198327Polisportiva GiovanniBianchi10/06/198029Dinamo NomeCognomeNascitaAnniSocieta’ GiuseppeRossi10/03/ Dinamo

16 CALCIATORI Algebra Relazionale NomeCognomeNascitaAnniSocieta’ GiuseppeRossi10/03/ Dinamo RobertoBianchini14/06/198233Polisportiva MicheleVerdi17/08/198327Polisportiva GiovanniBianchi10/06/198029Dinamo NomeCognomeNascitaAnniSocieta’ GiuseppeRossi10/03/ Dinamo GiovanniBianchi10/06/198029Dinamo

17 CALCIATORI Algebra Relazionale NomeCognomeNascitaAnniSocieta’ GiuseppeRossi10/03/ Dinamo RobertoBianchini14/06/1982 NULL Polisportiva MicheleVerdi17/08/ NULL GiovanniBianchi10/06/198029Dinamo Q. Cosa accade in presenza di valori nulli ?

18 Algebra Relazionale A. Come in SQL, si utilizza una logica a 3 valori : True ( T ), False ( F ), Unknown ( U ). ORTFU TTTT FTFU UTUU ANDTFU TTFU FFFF UUFU NOT TF FT UU  Si utilizzano gli operatori IS NULL e IS NOT NULL per verificare se un certo attributo ha valore uguale a NULL o meno.

19 CALCIATORI Algebra Relazionale NomeCognomeNascitaAnniSocieta’ GiuseppeRossi10/03/19769 NULL Dinamo RobertoBianchi14/06/198233Polisportiva MicheleVerdi17/08/198327Polisportiva GiovanniBianchi10/06/ NULL NomeCognomeNascitaAnniSocieta’

20 CALCIATORI Algebra Relazionale NomeCognomeNascitaAnniSocieta’ GiuseppeRossi10/03/19769 NULL Dinamo RobertoBianchi14/06/198233Polisportiva MicheleVerdi17/08/198327Polisportiva GiovanniBianchi10/06/ NULL NomeCognomeNascitaAnniSocieta’ GiovanniBianchi10/06/ NULL

21 Algebra Relazionale L’operatore di proiezione  Y (r)  consente di selezionare un sottoinsieme degli attributi di r. A1A1 A2A2 A3A3 …A5A5 … … … A1A1 A5A5 … … Y=(A 1,A 5 )

22 Algebra Relazionale L’operatore di proiezione  Y (r)  consente di selezionare un sottoinsieme degli attributi di r. Qual è la cardinalità di  Y (r)?  Nel caso generale, |  Y (r)| <= |r|  Se Y è superchiave di R, allora |  Y (r)|= |r| Q. Vale anche il viceversa? (Se |  Y (r)|= |r| allora Y è una superchiave di R?)

23 CALCIATORI Algebra Relazionale NomeCognomeNascitaAnniSocieta’ GiuseppeRossi10/03/ Dinamo RobertoBianchi14/06/198233Polisportiva MicheleVerdi17/08/198327Polisportiva GiovanniBianchi10/06/198027Dinamo NomeCognome GiuseppeRossi RobertoBianchi MicheleVerdi GiovanniBianchi Anni

24 Algebra Relazionale E’ possibile scrivere espressioni complesse componendo gli operatori algebrici … NomeCognomeSquadra GiuseppeRossiDinamo RobertoBianchiDinamo MicheleVerdiPolisportiva CALCIATORI NomeCognomeSquadra LucianoRossiDinamo MicheleRosatiPolisportiva PRESIDENTI NomeCognomeSquadra LucianoRossiDinamo GiuseppeRossiDinamo RobertoBianchiDinamo

25 Algebra Relazionale E’ possibile scrivere espressioni complesse componendo gli operatori algebrici … NomeCognomeSquadra GiuseppeRossiDinamo RobertoBianchiDinamo MicheleVerdiPolisportiva CALCIATORI NomeCognomeSquadra LucianoRossiDinamo MicheleRosatiPolisportiva PRESIDENTI Cognome Rossi Bianchi

26 Algebra Relazionale L’operatore di join naturale consente di correlare dati tra relazioni diverse, sulla base di valori comuni in attributi comuni. NomeCognomeSquadra GiuseppeRossiDinamo RobertoBianchiDinamo MicheleVerdiPolisportiva CALCIATORI SQUADRE SquadraPunti Dinamo12 Polisportiva14 NomeCognomeSquadraPunti GiuseppeRossiDinamo12 RobertoBianchiDinamo12 MicheleVerdiPolisportiva14

27 Algebra Relazionale L’operatore di join naturale consente di correlare dati tra relazioni diverse, sulla base di valori comuni in attributi comuni. Data una relazione r 1 su attributi X 1, ed una relazione r 2 su attributi X 2 : La cardinalita’ del join e’ compresa tra 0 e |r 1 |*|r 2 |.

28 Algebra Relazionale Se le due relazioni r 1 ed r 2 hanno lo stesso schema  la cardinalità del join è pari a quella dell’ interserzione tra r 1 ed r 2. CodiceNomeUfficio 123RossiA 345BianchiA 167VerdiB IMPIEGATI RESPONSABILI_UFFICIO CodiceNomeUfficio 123RossiA CodiceNomeUfficio 123RossiA 345MicheleC CASO SPECIALE 1

29 Algebra Relazionale Sia X l’attributo in comune tra X 1 ed X 2. Se X contiene una chiave di r 2  il join ha cardinalità massima pari alla cardinalità di r 1 (|r 1 |). CodiceNomeSede 123RossiBologna 345BianchiMilano 167VerdiMilano IMPIEGATI SedeMansione BolognaSviluppo MilanoTesting SEDI IdNomeSedeMansione 123RossiBolognaSviluppo 345BianchiMilanoTesting 167VerdiMilanoTesting CASO SPECIALE 2

30 Algebra Relazionale Sia X l’attributo in comune tra X 1 ed X 2. Se esiste un vincolo di integrità referenziale tra l’attributo X in r 1 e la relazione r 2  il join ha cardinalità pari alla cardinalità di r 1 (|r1|). IdNomeCodiceRep 123RossiA3 345BianchiA3 167VerdiB1 PAZIENTI CodiceRepNrLettiPrimario A320Alberti B110Gigli REPARTI IdNomeCodice Rep NrLettiPrimario 123RossiA320Alberti 345BianchiA320Alberti 167VerdiB110Gigli CASO SPECIALE 3

31 Algebra Relazionale Se le due relazioni r 1 ed r 2 non hanno attributi in comune  la cardinalita’ del join è pari a quella del prodotto cartesiano tra r 1 ed r 2 (|r 1 | *|r 2 |). IdNomeUfficio 123RossiA 345BianchiA 167VerdiB IMPIEGATI CodiceTelefono A C UFFICI IdNomeUfficioCodiceTelefono 123RossiAA RossiAC BianchiAA BianchiAC VerdiBA VerdiBC CASO SPECIALE 4

32 Algebra Relazionale Il join naturale dispone di alcune proprietà algebriche interessanti:  Il join è commutativo:  Il join è associativo:  Nel caso di join n-ari: Q. Dimostrazione?

33 Algebra Relazionale E’ possibile stabilire una corrispondenza tra query SQL ed espressioni in algebra relazionale… Schema generale (tralasciando le ridenominazioni) SELECT A 1, A 2, … A n FROM T 1, T 2, … T m WHERE Condizione

34 Algebra Relazionale Dato il seguente schema : IMPIEGATI(Codice, Nome, Cognome, Livello) STIPENDI (LivelloQualifica, Retribuzione)  determinare la retribuzione degli impiegati che si chiamano “Mario”. SELECT RETRIBUZIONE FROM IMPIEGATI, STIPENDI WHERE ((NOME=“MARIO”) AND (LIVELLO=LIVELLOQUALIFICA))

35 Algebra Relazionale Dato il seguente schema : IMPIEGATI(Codice, Nome, Cognome, Livello) STIPENDI (LivelloQualifica, Retribuzione)  determinare la retribuzione MEDIA degli impiegati che si chiamano “Mario”. SELECT AVG(RETRIBUZIONE) FROM IMPIEGATI, STIPENDI WHERE ((NOME=“MARIO”) AND (LIVELLO=LIVELLOQUALIFICA)) In algebra relazionale? Non si può esprimere …

36 Algebra Relazionale Il theta-join è un operatore derivato, espresso come un join naturale seguito da un operatore di selezione. Theta-join :  F è una condizione utilizzabile in una selezione.  r 1 ed r 2 devono avere schemi diversi, ossia non devono avere attributi in comune.

37 Algebra Relazionale CodicePartenzaArrivo AZ123RomaParigi AF345MilanoBoston AF167ParigiLondra VOLI ModelloNrPostiSmoking B747250NO MD80120NO AEREI CodicePartenzaArrivoModelloNrPostiSmoking AZ123RomaParigiB747250NO AF345MilanoBostonB747250NO AF167ParigiLondraB747250NO Un esempio di theta-join con condizione di selezione (NrPosti>150).

38 Algebra Relazionale L’ equi-join è un theta-join, in cui la condizione di selezione è una congiunzione di atomi di uguaglianza. Equi-join :  F è una congiunzione di atomi.  Ogni atomo è un’uguaglianza, tra due attributi (A,B) oppure tra un attributo ed una costante (d) nel suo dominio.

39 Algebra Relazionale Esempio di equi-join … CodicePartenzaArrivoModello AZ123RomaParigiB747 AF345MilanoBostonMD80 AF167ParigiLondraB737 VOLI CodiceNrPostiSmoking B747250NO MD80120NO AEREI CodicePartenzaArrivoModelloNrPostiSmoking AZ123RomaParigiB747250NO AF345MilanoBostonMD80120NO

40 Algebra Relazionale Il join naturale di tue relazioni r 1 ed r 2 può essere espresso mediante gli operatori di selezione, equi- join e ridenominazione. Es. date 2 relazioni: r 1 (ABC), r 2 (BCD)  Step1: Ridenominazione  Step2: Equi-join  Step3: Proiezione

41 Algebra Relazionale Come in SQL, è possibile definire delle viste, sotto forma di interrogazioni dell’algebra relazionale cui si assegna un nome. Le viste possono essere usate in altre interrogazioni, per semplificarne la scrittura. Esempio di vista con nome IMPIEGATI

42 Algebra Relazionale L’algebra relazionale consente di creare interrogazioni equivalenti tra loro. L’equivalenza puo’ essere:  Dipendente dallo schema  Assoluta ( per ogni schema )  Se E 1 =E 2 per ogni istanza r dello schema R

43 Algebra Relazionale R 1 =VOLI(Codice, AeroportoArrivo, OraArrivo, OraPartenza, Vettore) R 2 =AEREI(Vettore, NumPasseggeri) … Ma che accade se le due relazioni coinvolte hanno altri attributi in comune oltre a quelli che compaiono in A? Esempio di uguaglianza dipendente dallo schema ! Es. L’uguaglianza funziona sullo schema seguente:

44 Algebra Relazionale STUDENTI MatricolaNomeCognomeCdL 01212MarcoRossiFisica 02121MicheleBianchiInformatica 43242GiovannaVerdiChimica 56776DanieleRosatiFisica ANAGRAFICA NomeCognomeCFData MicheleRossiMR233G03/01/1990 MicheleMarchiMM768H06/11/1992 GiovannaVerdiGV1111J05/11/1993 GiovannaBianchiniGB3133J23/06/1988 NomeCdLData MicheleInformatica03/01/1990 MicheleInformatica06/11/1992 GiovannaChimica05/11/1993 GiovannaFisica23/06/1988 NomeCdLData GiovannaChimica05/11/1993

45 Algebra Relazionale Uguaglianze a livello di schema … Atomizzazione delle selezioni: Idempotenza delle proiezioni: Selezione anticipata: (F fa riferimento solo ad attributi di E 2 ) Inglobamento di una selezione:

46 Algebra Relazionale Uguaglianze a livello di schema (continua)… Commutatività della selezione: (F deve riferirsi solo ad attributi in Y) Commutatività del join: Associtatività del join:

47 Algebra Relazionale Uguaglianze a livello di schema (continua) … Proiezione anticipata: (E 1 ed E 2 definite su X 1 ed X 2. Y 2 deve contenere l’intersezione di X 1 ed X 2.) Proprieta’ distributive della selezione e proiezione:

48 Algebra Relazionale Q. Come si dimostra se un’uguaglianza a livello di schema è valida? Verificare l’opposto è facile  Basta trovare un esempio (schema/istanza) su cui l’uguaglianza non vale! Se non ci sono assunzioni sulla struttura di E 1, E 2, ed A, l’uguaglianza sopra è FALSA  CONTROESEMPIO: E1=IMPIEGATI(Codice, Stipendio, Sede) E2=SEDI(Citta, Mansione) A=Stipendio F: (Sede=Citta)

49 Algebra Relazionale Q. Come si dimostra se un’uguaglianza a livello di schema è valida? Es. Dimostrare che: 1)Occorre dimostrare che: 2)Occorre dimostrare che: SCHEMA DI DIMOSTRAZIONE

50 Algebra Relazionale Esempio di ottimizzazione di query Dato il seguenti schema: VOLI(Codice, CittaPartenza, CittaArrivo, Vettore) AEREI(Modello, NrPosti, Smoking) Q. Determinare i modelli degli aerei in partenza da Milano con meno di 100 passeggeri.

51 Algebra Relazionale Esempio di ottimizzazione di query 1. Atomizzazione delle selezioni. 2. Anticipazione della selezione rispetto al join 3. Inglobamento della selezione nel join

52 Algebra Relazionale Esempio di ottimizzazione di query 4. Anticipazione della proiezione. Q. E’ possibile ottimizzare ulteriormente l’interrogazione?


Scaricare ppt "Corso di Basi di Dati L’Algebra Relazionale Home page del corso:"

Presentazioni simili


Annunci Google