1 / 60

Corso di Basi di Dati

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.

Download Presentation

Corso di Basi di Dati

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. Corso di Basi di Dati L’AlgebraRelazionale Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

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

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

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

  5. Algebra Relazionale Generatadall’utente/ applicazione InterrogazioneSQL Traduttore SQL  LinguaggioProcedurale Interrogazionelinguaggioprocedurale Ottimizzatore di query Interrogazioneottimizzata Esecuzione DB INTERPRETE SQL DEL DBMS

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

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

  8. Algebra Relazionale CALCIATORI ALLENATORI

  9. Algebra Relazionale CALCIATORI ALLENATORI Q. Cosaaccade se le relazioni non hannoesattamente lo stesso schema, ma dispongonodi attributi con nomidiversi?

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

  11. Algebra Relazionale CALCIATORI ALLENATORI

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

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

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

  15. Algebra Relazionale CALCIATORI

  16. Algebra Relazionale CALCIATORI

  17. Algebra Relazionale CALCIATORI Q. Cosaaccade in presenza di valorinulli?

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

  19. Algebra Relazionale CALCIATORI

  20. Algebra Relazionale CALCIATORI

  21. Algebra Relazionale L’operatore di proiezionepY(r)consente di selezionare un sottoinsiemedegliattributi di r. Y=(A1,A5)

  22. 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?)

  23. Algebra Relazionale CALCIATORI

  24. Algebra Relazionale E’ possibilescrivereespressionicomplessecomponendoglioperatorialgebrici … PRESIDENTI CALCIATORI

  25. Algebra Relazionale E’ possibilescrivereespressionicomplessecomponendoglioperatorialgebrici … PRESIDENTI CALCIATORI

  26. Algebra Relazionale L’operatore di join naturaleconsente di correlaredatitrarelazioni diverse, sulla base di valoricomuni in attributicomuni. CALCIATORI SQUADRE

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

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

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

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

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

  32. Algebra Relazionale • Il join naturaledispone di alcuneproprieta’ algebricheinteressanti: • Il join e’ commutativo: • Il join e’ associativo: • Nelcaso di join n-ari: • Q.Dimostrazione?

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

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

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

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

  37. Algebra Relazionale Un esempio di theta-join con condizione di selezione (NrPosti>150). VOLI AEREI

  38. Algebra Relazionale Un esempio di theta-join con condizione di selezione (NrPosti>150). VOLI AEREI • ???, Errore, il theta-join assume che le tuerelazionicoinvolteabbianoschemidistinti

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

  40. Algebra Relazionale Esempio di equi-join … VOLI AEREI

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

  42. Algebra Relazionale Nel join naturale, non tutte le tuple di unarelazionecontribuiscono al risultato finale … IMPIEGATI SEDI } Queste tuple non appaiononel risultato finale (dangling values)!!

  43. Algebra Relazionale Possonoesisterecasi in cui sivorrebberoincludereanche le dangling tuplenelrisultato finale… PAZIENTI MEDICI_BOLOGNA Vorreiincluderenelrisultato finale tutte le informazioni sui pazienti (e relativimedici) …

  44. Algebra Relazionale PAZIENTI MEDICI_BOLOGNA Questovalore non compare in MEDICI_BOLOGNA

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

  46. Algebra Relazionale Esempio1: Leftouter-join … IMPIEGATI SEDI

  47. Algebra Relazionale Esempio2: Rightouter-join … IMPIEGATI SEDI

  48. Algebra Relazionale Esempio3: Fullouter-join … SEDI IMPIEGATI

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

  50. Algebra Relazionale • L’algebrarelazionaleconsente di creareinterrogazioniequivalentitraloro. • L’equivalenzapuo’ essere: • Dipendentedallo schema • Assoluta (per ogni schema)  Se E1=E2 per ogniistanza r dello schema R

More Related