600 likes | 781 Views
Corso di Basi di Dati. L’Algebra R elazionale Home page del corso : http:// www.cs.unibo.it /~ difelice / dbsi /. Algebra Relazionale. L’ algebra relazionale e’ un linguaggio ( procedurale ) di interrogazione per basi di dati relazionali.
E N D
Corso di Basi di Dati L’AlgebraRelazionale Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/
Algebra Relazionale L’algebrarelazionalee’ un linguaggio (procedurale) di interrogazione per basi di datirelazionali. • AltrilinguaggiDML di interrogazione: • SQL2/SQL3 (standard de facto, gia’ visto ..) • Calcolorelazionale(linguaggiodichiarativo) • Datalog (basatosu Prolog)
Algebra Relazionale • All’interno di un DBMS, le query SQL sonocontrollateedeseguite da un interprete SQL. • L’interpretespessotraduce l’SQL in un altrolinguaggioprocedurale(~algebra relazionale) per motivi di: • Facilita’ d’esecuzione e’ possibilescomporre query complesse in unasequenza di procedure da eseguire. • Ottimizzazione e’ possibileriscrivere (automaticamente) le query procedurali in modo da consumaremenomemoria o tempo di esecuzione.
Algebra Relazionale • Il linguaggiodell’algebrarelazionalee’ costituito da unaserie di operatori(algebrici) che: • siapplicano ad unarelazione(definizione di relazionenelmodellorelazionale). • producono in output unarelazione. • sonocomponibili, ossia e’ possibileutilizzarli in cascata per creareinterrogazionicomplesse. • Glioperatoripossonoessereunari o binari.
Algebra Relazionale Generatadall’utente/ applicazione InterrogazioneSQL Traduttore SQL LinguaggioProcedurale Interrogazionelinguaggioprocedurale Ottimizzatore di query Interrogazioneottimizzata Esecuzione DB INTERPRETE SQL DEL DBMS
Algebra Relazionale • Il linguaggiodell’algebrarelazionalee’ costituito da unaserie di operatori (algebrici): • Operatorisuinsiemi: unione, intersezione, differenza. • Operatorisuattributi: ridenominazione, selezione, proiezioni. • Operatoriintra-relazionali: join naturale, theta-join, equi-join, etc.
Algebra Relazionale • Le relazionisonoinsiemi e’ possibiledefinireoperatoriinsiemisticisu di esse: • Unione di r1(X) ed r2(X): • Intersezione di r1(X) ed r2(X): • Differenza di r1(X) ed r2(X): • Le relazioni r1edr2devonoavere lo stesso schema!
Algebra Relazionale CALCIATORI ALLENATORI
Algebra Relazionale CALCIATORI ALLENATORI Q. Cosaaccade se le relazioni non hannoesattamente lo stesso schema, ma dispongonodi attributi con nomidiversi?
Algebra Relazionale L’operatore di ridenominazioner consente di modificareinomidegliattributi di unarelazione. rB1,B2, … BM A1, A2, .. AM (r) SEMANTICA: Modificalo schema dellarelazione, ridenominandogliattributi A1, A2, …AMin B1, B2, BMsenzaalterareidatidellarelazione.
Algebra Relazionale CALCIATORI ALLENATORI
Algebra Relazionale L’operatore di selezionesF(r)consente di selezionare un sottoinsiemedelle tuple dellarelazione r, in base allacondizionespecificata da F. Relazioner Relazioner’ sF(r) Insiemedellerighe di r che soddisfano la condizione F
Algebra Relazionale L’operatore di selezionesF(r)consente di selezionare un sottoinsiemedelle tuple dellarelazione r, in base allacondizionespecificata da F. • La condizione F e’ definita come insieme di predicaticonnessi da operatorilogici. • F= P1Op P2Op … PN • Op e’ un operatorebooleano(AND, OR, NOT)
Algebra Relazionale • La condizione F e’ definita come insieme di predicaticonnessi da operatorilogici. • F= P1Op P2Op … PN • Ognipredicato e’ del tipoAqBoppureAqc, dove: • qe’ un operatore di confronto(<,>,=,<>,<=,>=). • A e B sonoattributidi r, su cui ha sensol’operatore • contieneunavalorecompatibile con ildominio di A.
Algebra Relazionale CALCIATORI
Algebra Relazionale CALCIATORI
Algebra Relazionale CALCIATORI Q. Cosaaccade in presenza di valorinulli?
Algebra Relazionale A. Come in SQL, siutilizzaunalogica a 3 valori: True (T), False (F), Unknown (U). • Si utilizzanoglioperatoriIS NULL e IS NOT NULL per verificare se un certoattributo ha valoreuguale a NULL o meno.
Algebra Relazionale CALCIATORI
Algebra Relazionale CALCIATORI
Algebra Relazionale L’operatore di proiezionepY(r)consente di selezionare un sottoinsiemedegliattributi di r. Y=(A1,A5)
Algebra Relazionale • L’operatore di proiezionepY(r)consente di selezionare un sottoinsiemedegliattributi di r. • Qual e’ la cardinalita’ di pY(r)? • Nelcasogenerale, |pY(r)| <= |r| • Se Y e’ superchiave di R, allora|pY(r)|= |r| • Q. Vale ancheilviceversa? (Se |pY(r)|= |r| allora Y e’ unasuperchiave di R?)
Algebra Relazionale CALCIATORI
Algebra Relazionale E’ possibilescrivereespressionicomplessecomponendoglioperatorialgebrici … PRESIDENTI CALCIATORI
Algebra Relazionale E’ possibilescrivereespressionicomplessecomponendoglioperatorialgebrici … PRESIDENTI CALCIATORI
Algebra Relazionale L’operatore di join naturaleconsente di correlaredatitrarelazioni diverse, sulla base di valoricomuni in attributicomuni. CALCIATORI SQUADRE
Algebra Relazionale L’operatore di join naturaleconsente di correlaredatitrarelazioni diverse, sulla base di valoricomuni in attributicomuni. Data unarelazione r1suattributi X1, edunarelazione r2suattributi X2: La cardinalita’ del join e’ compresatra 0 e |r1|*|r2|.
Algebra Relazionale Se le due relazioni r1ed r2hanno lo stesso schema la cardinalita’ del join e’ pari a quelladell’interserzionetra r1ed r2 . IMPIEGATI RESPONSABILI_UFFICIO CASO SPECIALE 1
Algebra Relazionale Sia X l’attributo in comunetra X1ed X2. Se X contieneunachiave di r2 il join ha cardinalita’ massimapariallacardinalita’ di r1(|r1|). SEDI IMPIEGATI CASO SPECIALE 2
Algebra Relazionale Sia X l’attributo in comunetra X1ed X2. Se esiste un vincolo di integrita’ referenzialetral’attributo X in r1 e la relazione r2 il join ha cardinalita’ pariallacardinalita’ di r1(|r1|). CASO SPECIALE 3 REPARTI PAZIENTI
Algebra Relazionale Se le due relazioni r1ed r2non hannoattributi in comune la cardinalita’ del join e’ pari a quella del prodottocartesianotra r1ed r2 (|r1| *|r2|). IMPIEGATI CASO SPECIALE 4 UFFICI
Algebra Relazionale • Il join naturaledispone di alcuneproprieta’ algebricheinteressanti: • Il join e’ commutativo: • Il join e’ associativo: • Nelcaso di join n-ari: • Q.Dimostrazione?
Algebra Relazionale E’ possibilestabilireunacorrispondenzatra query SQL edespressioni in algebra relazionale… Schema generale(tralasciando le ridenominazioni) SELECT A1, A2, … An FROM T1, T2, … Tm WHERE Condizione
Algebra Relazionale • Datoilseguenteschema: • IMPIEGATI(Codice, Nome, Cognome, Livello) • STIPENDI (LivelloQualifica, Retribuzione) • determinare la retribuzionedegliimpiegatichesichiamano “Mario”. • SELECT RETRIBUZIONE • FROM IMPIEGATI, STIPENDI • WHERE ((NOME=“MARIO”) AND (LIVELLO=LIVELLOQUALIFICA))
Algebra Relazionale • Datoilseguenteschema: • IMPIEGATI(Codice, Nome, Cognome, Livello) • STIPENDI (LivelloQualifica, Retribuzione) • determinare la retribuzioneMEDIAdegliimpiegatichesichiamano “Mario”. • SELECT AVG(RETRIBUZIONE) • FROM IMPIEGATI, STIPENDI • WHERE ((NOME=“MARIO”) AND (LIVELLO=LIVELLOQUALIFICA)) • In algebra relazionale? Non sipuo’ esprimere…
Algebra Relazionale • Il theta-join e’ un operatorederivato, espresso come un join naturaleseguito da un operatore di selezione. • Theta-join: • F e’ unacondizioneutilizzabile in unaselezione. • r1ed r2devonoavereschemidiversi, ossianon devonoavereattributi in comune.
Algebra Relazionale Un esempio di theta-join con condizione di selezione (NrPosti>150). VOLI AEREI
Algebra Relazionale Un esempio di theta-join con condizione di selezione (NrPosti>150). VOLI AEREI • ???, Errore, il theta-join assume che le tuerelazionicoinvolteabbianoschemidistinti
Algebra Relazionale • L’ equi-join e’ un theta-join, in cui la condizione di selezione e’ unacongiunzione di atomi di uguaglianza. • Equi-join: • F e’ unacongiunzionedi atomi. • Ogniatomo e’ un’uguaglianza, tradue attributi(A,B) oppuretraun attributoedunacostante(d) nelsuodominio.
Algebra Relazionale Esempio di equi-join … VOLI AEREI
Algebra Relazionale • Il join naturaledi tuerelazioni r1ed r2puo’ essere espresso medianteglioperatori di selezione, equi-join e ridenominazione. • Es. date 2 relazioni: r1(ABC), r2(BCD) • Step1: Ridenominazione • Step2: Equi-join • Step3: Proiezione
Algebra Relazionale Nel join naturale, non tutte le tuple di unarelazionecontribuiscono al risultato finale … IMPIEGATI SEDI } Queste tuple non appaiononel risultato finale (dangling values)!!
Algebra Relazionale Possonoesisterecasi in cui sivorrebberoincludereanche le dangling tuplenelrisultato finale… PAZIENTI MEDICI_BOLOGNA Vorreiincluderenelrisultato finale tutte le informazioni sui pazienti (e relativimedici) …
Algebra Relazionale PAZIENTI MEDICI_BOLOGNA Questovalore non compare in MEDICI_BOLOGNA
Algebra Relazionale • L’outer-joinconsente di far apparire le tuple dangling nelrisultato finale, completando le informazionimancanti con valori NULL. • Trevariantidell’outer-join: • Left join completamentodell’operandosx. • Right join completamentodell’operandodx. • Full Join completamento di entrambigli operandi.
Algebra Relazionale Esempio1: Leftouter-join … IMPIEGATI SEDI
Algebra Relazionale Esempio2: Rightouter-join … IMPIEGATI SEDI
Algebra Relazionale Esempio3: Fullouter-join … SEDI IMPIEGATI
Algebra Relazionale Come in SQL, e’ possibiledefiniredelleviste, sotto forma di interrogazionidell’algebrarelazionale cui siassegna un nome. Le vistepossonoessereusate in altreinterrogazioni, per semplificarne la scrittura. Esempio di vista con nomeIMPIEGATI
Algebra Relazionale • L’algebrarelazionaleconsente di creareinterrogazioniequivalentitraloro. • L’equivalenzapuo’ essere: • Dipendentedallo schema • Assoluta (per ogni schema) Se E1=E2 per ogniistanza r dello schema R