curs algebra relationala

Upload: adelina-nicoleta-neacsu

Post on 07-Jul-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Curs Algebra Relationala

    1/34

    Algebra relaţională

  • 8/18/2019 Curs Algebra Relationala

    2/34

    Algebra relaţională

    Algebra relaţională  cuprinde un ansamblu deoperatori  ce operează pe relaţii (tabele sursă) şiproduc noi relaţii (tabele rezultat).

     Tabelele sunt mulţimi ce au anumite particularităţi,ca urmare algebra relațională poate f considerată unsubset al algebrei generice pe mulţimi.

  • 8/18/2019 Curs Algebra Relationala

    3/34

    Clasifcarea operatorilor

    E. . Codd a propus opt operaţii de bază !n algebra relaţională,dintre care cinci sunt considerate operaţii primare  şi trei suntoperaţii derivate (ce pot f e"primate pe baza operaţiilorprimare).

    Operaţii primare# $euniunea %i&erenţa 'rodusul cartezian elecţia 'roiecţia Operaţii derivate# ntersecţia Compunerea %i*iziunea

  • 8/18/2019 Curs Algebra Relationala

    4/34

    Alte tipuri de operaţii

    +n a&ară de operaţiile menţionate, mai e"istă operaţiide grupare, agregare, sortare, eliminare aduplicatelor   şi operaţii de redenumire  care nu seconsideră a &ace parte din algebra relaţională, darcare sunt &rec*ent &olosite !n cadrul limbaelorspecializate de interogare a bazelor de date cum ar fSQL  (tructured -uer /anguage) şi QBE  (-uer 0E"ample) .

  • 8/18/2019 Curs Algebra Relationala

    5/34

    1. $euniunea

    $euniunea a doua relaţii compatibile (ce au aceeaşi structură)are ca rezultat o relaţie ce conţine totalitatea tuplurilor celordouă, find e"cluse tuplurile comune (identice).

    Notaţie:

    $1 U $2 = $3 4nde $1 şi $2 sunt tabelele sursă, iar $3 estetabelul rezultat.

    Reprezentarea reuniunii a două tabele:

  • 8/18/2019 Curs Algebra Relationala

    6/34

    $euniune 5 E"emplu

    Clienti 4 urnizori

    $e*enire

  • 8/18/2019 Curs Algebra Relationala

    7/34

    2. %i&erenţa

    'rin di&erenţa doua relaţii compatibile ($1 şi $2) se obţine orelaţie ($3) care conţine tuplurile din $1 care nu se regăsesc !n$2.

    Notaţie:

    $1 \ $2 = $3 4nde $1 şi $2 sunt tabelele sursă, iar $3 estetabelul rezultat.

    Reprezentarea diferenţei dintre două tabele:

  • 8/18/2019 Curs Algebra Relationala

    8/34

    %i&erenţa 5 E"emplu

    $e*enire

    urnizori 6 acturi

  • 8/18/2019 Curs Algebra Relationala

    9/34

    3. 'rodusul cartezian

    'rodusul cartezian a doua relaţii ($1 şi $2) are ca rezultat orelaţie ($3) ce conţine toate perec7ile de tupluri din $1 şi $2.

    Notaţie:

    $1 X $2 = $3 4nde $1 şi $2 sunt tabelele sursă, iar $3 estetabelul rezultat.

    Reprezentarea produsului cartezian a două tabele:

  • 8/18/2019 Curs Algebra Relationala

    10/34

    'rodusul cartezian 5 E"emplu

    $e*enire

    tudenti 8 acultati

  • 8/18/2019 Curs Algebra Relationala

    11/34

    9. elecţia

    elecţia aplicată unei tabele ($1) generează o nouă tabelă ($2)a*:nd aceeaşi structură ca şi $1, dar care conţine doar tuplurilecare !ndeplinesc condiţia specifcată de selecţie.

    Notaţie:

    $2 = E/ECT C ($1) 4nde#

    Reprezentarea operaţiei de selecţie aplicată unei tabele:

    5 $1 este tabelul asupra căruia se aplicăselecţia

    5 C este condiţia5 $2 este tabelul rezultat, alcătuit din

    tuplurile tabelului $1 care !ndeplinesccondiţia C

  • 8/18/2019 Curs Algebra Relationala

    12/34

    elecţia 5 E"emplu

    $e*enire

     Tabel rezultat elecţie ; E/ECT /ocalitateurnizor;

  • 8/18/2019 Curs Algebra Relationala

    13/34

    >. 'roiecţia

    'roiecţia aplicată unei tabele ($1) generează o nouă tabelă ($2)care conţine tuplurile ce conţin un subset al atributelor tabelei $1.

    Notaţie:

    $2 = '$?EC@E L ($1) 4nde#

    Reprezentarea operaţiei de proiecţie aplicată unei tabele:

    5 $1 este tabelul asupra căruia se aplicăproiecţia

    5 / este subsetul de atribute5 $2 este tabelul rezultat, cuprinz:nd doar

    atributele din lista /

  • 8/18/2019 Curs Algebra Relationala

    14/34

    'roiecţia 5 E"emplu

    $e*enire

     Tabel rezultat 'roiecţie ; '$?ECTE %enumireurnizor, Tele&onurnizor(urnizori)

  • 8/18/2019 Curs Algebra Relationala

    15/34

    . ntersecţia

    ntersecţia a două relaţii compatibile 5 a*:nd aceeaşi structură($1 şi $2) generează o nouă relaţie ($3) care conţine doar !nregistrările comune (identice) pentru cele două relaţii.

    Notaţie:

    $1 $2 = $3 4nde $1 şi $2 sunt tabelele sursă, iar $3 estetabelul rezultat.

    Reprezentarea intersecţiei dintre două tabele:

  • 8/18/2019 Curs Algebra Relationala

    16/34

    ntersecţia 5 E"emplu

    $e*enire

    Clienti urnizori

  • 8/18/2019 Curs Algebra Relationala

    17/34

    B. Compunerea

    Compunerea dintre două tabele ($1 şi $2) generează o nouă tabelă($3) care combină tuplurile celor două tabele sursă, find alese doaracelea care !ndeplinesc o anumită condiţie specifcată !n cadrulcompunerii.

    Notaţie:

    $3 = $1 ?D C $2 4nde#

    Reprezentarea operaţiei de compunere:

    5 $1 şi $2 sunt tabelele de bază asupracărora se aplică compunerea5 C este condiţia care poate să conţină

    operatori logici şi aritmetici, precum şiagregări de date

    5 $3 este tabelul rezultat

  • 8/18/2019 Curs Algebra Relationala

    18/34

    Compunerea 5 E"emplu

    $e*enire

    urnizori ?D %ataactura  1>F12F2G11 acturi

  • 8/18/2019 Curs Algebra Relationala

    19/34

    B. Tipuri particulare deCompunere

    +n &uncţie de natura condiţiilor, e"istă mai multecazuri particulare de compunere, dintre care, !nalgebra relaţională prezintă o importanţă deosebităurmătoarele#

    B.1. Ec7icompunerea

    B.2. Compunerea naturală

    B.3. Compunerea e"ternă

  • 8/18/2019 Curs Algebra Relationala

    20/34

    B.1. Ec7icompunerea

    Ec7icompunerea este compunerea pentru care condiţia este alcătuitănumai din egalităţi.

    Reprezentarea operaţiei de ecicompunere:

  • 8/18/2019 Curs Algebra Relationala

    21/34

    B.2. Compunerea naturală

    Compunerea naturală este ec7icompunerea a două tabele, pentru care e"istă celpuţin c:te un c:mp a*:nd acelaşi nume şi tip şi !n care, din rezultat, se eliminăc:mpurile identice.

    Reprezentarea operaţiei de compunere naturală:

  • 8/18/2019 Curs Algebra Relationala

    22/34

    B.2. Compunerea e"ternă

    Compunerea e"ternă este o ec7icompunere care afşează şi tuplurile care nu aucorespondent !n cadrul celor două tabele sursă. +n tabelul rezultat, pentru tuplurilecare nu au corespondent se completează *aloarea D4//.

    Reprezentarea operaţiei de compunere e!ternă:

  • 8/18/2019 Curs Algebra Relationala

    23/34

    H. %i*iziunea

    %i*iziunea presupune !mpărţirea unei tabele ($1), denumită de!mpărţit, la otabelă denumită !mpărţitor ($2), rezult:nd o altă tabelă ($3) denumită c:t,ast&el !nc:t orice tuplu al tabelei c:t ($3) trebuie să se regăsească !n cadrultuplurilor tabelei de!mparţit ($1) !n combinaţie cu fecare tuplu din tabela

     !mpărţitor ($2). 'entru a putea să aibă sens di*iziunea, tabela !mpărţitor($2) trebuie să aibă ca atribute un subset al atributelor tabelei de!mpărţit($1).

    Notaţie:

    $3 =  $1I $2 4nde $1 şi $2 sunt tabelele sursă, iar $3 este tabelulrezultat.

    Reprezentarea operaţiei de di"iziune:

  • 8/18/2019 Curs Algebra Relationala

    24/34

    %i*iziunea 5 E"emplu

    $e*enire

    /inie actura I 'rodus

  • 8/18/2019 Curs Algebra Relationala

    25/34

    $ealizarea operatorilor relaţionali !n -/

  • 8/18/2019 Curs Algebra Relationala

    26/34

    $ealizarea operatorului Reuniune

    $euniunea a două tabele se realizează cu autorul clauzei UN#$N.

    %!emplu:

    inta"a -/ a&erentă e"emplului

    &%L%C' C/EDT.%Client As %, C/EDT.%enumireClient As %enumire,C/EDT./ocalitateClient As /ocalitate, C/EDT.Tele&onClient As Tele&on

    (R$) C/EDT

    UN#$N

    &%L%C'

    4$DJ?$.%urnizor As %, 4$DJ?$.%enumireurnizor As %enumire,4$DJ?$./ocalitateurnizor As /ocalitate, 4$DJ?$.Tele&onurnizor As

     Tele&on

    (R$) 4$DJ?$K

    ClicL pentru E"emplu

  • 8/18/2019 Curs Algebra Relationala

    27/34

    $ealizarea operatorului *iferenţa

    'entru realizarea diferenţei a două tabele nu e"istă o clauză -/ specifcă.?peratorul Diferenţă poate f realizat prin utilizarea unei interogări cusubinterogare, !n care condiţia conţine N$' #N.

    %!emplu:

    inta"a -/ a&erentă e"emplului

    &%L%C' 4$DJ?$.%urnizor, 4$DJ?$.%enumireurnizor,4$DJ?$./ocalitateurnizor, 4$DJ?$.Tele&onurnizor

    (R$) 4$DJ?$

    +,%R% 4$DJ?$.%urnizor N$' #N

    -&%L%C' %urnizor

    $?M ACT4$.K

    ClicL pentru E"emplu

  • 8/18/2019 Curs Algebra Relationala

    28/34

    $ealizarea operatorului /rodusulcartezian

    ?peratorul Produsul cartezian se realizează !n -/ prin enumerarea tabelelor !n cadrul clauzei $?M, &ără specifcarea anumitor condiţii.

    ?bser*aţie# 4tilizarea unor condiţii determină selecţia unui set particular de*alori, constituind, de &apt, reprezentarea !n -/ a operatorului Compunere.

    %!emplu:

    inta"a -/ a&erentă e"emplului

    &%L%C'  T4%EDT.Codtudent, T4%EDT.Dumetudent,T4%EDT./ocalitate, AC4/TAT.Codacultate,AC4/TAT.%enumireacultate

    (R$) T4%EDT, AC4/TATK

    ClicL pentru E"emplu

  • 8/18/2019 Curs Algebra Relationala

    29/34

    $ealizarea operatorului &elecţie

    ?peratorul Selecţie se realizează !n -/ cu autorul clauzei +,%R%.

    %!emplu:

    inta"a -/ a&erentă e"emplului

    &%L%C' 4$DJ?$.%urnizor, 4$DJ?$.%enumireurnizor,4$DJ?$./ocalitateurnizor, 4$DJ?$.Tele&onurnizor

    (R$) 4$DJ?$

    +,%R% 4$DJ?$./ocalitateurnizor;N0ucurestiNK

    ClicL pentru E"emplu

  • 8/18/2019 Curs Algebra Relationala

    30/34

    $ealizarea operatorului /roiecţie

    ?peratorul Proiecţie se realizează !n -/ prin intermediul clauzei &%L%C'0 !ncadrul căreia se *or preciza c:mpurile după care se &ace proiecţia.

    %!emplu:

    inta"a -/ a&erentă e"emplului

    &%L%C' 4$DJ?$.%enumireurnizor, 4$DJ?$.Tele&onurnizor

    (R$) 4$DJ?$K

    ClicL pentru E"emplu

  • 8/18/2019 Curs Algebra Relationala

    31/34

    $ealizarea operatorului#ntersecţie

    ?peratorul Intersecţie se realizează !n -/ prin intermediul clauzei +,%R%0cu autorul operatorului #N şi a subinterogărilor.

    %!emplu:

    inta"a -/ a&erentă e"emplului

    &%L%C' C/EDT.%Client, C/EDT.%enumireClient,C/EDT./ocalitateClient, C/EDT.Tele&onClient

    (R$) C/EDT

    +,%R% C/EDT.%enumireClient

    #N

    -&%L%C' 4$DJ?$.%enumireurnizor

    (R$) 4$DJ?$.K

    ClicL pentru E"emplu

  • 8/18/2019 Curs Algebra Relationala

    32/34

    $ealizarea operatoruluiCompunere

    ?peratorul Compunere se realizează !n -/ prin intermediul condiţiilor decompunere din clauza +,%R%1

    %!emplu:

    inta"a -/ a&erentă e"emplului

    &%L%C' 4$DJ?$.%urnizor, 4$DJ?$.%enumireurnizor,4$DJ?$./ocalitateurnizor, 4$DJ?$.Tele&onurnizor,ACT4$.Dumarerieactura, ACT4$.%ataactura

    (R$) 4$DJ?$, ACT4$

    +,%R% 4$DJ?$.%urnizor ; ACT4$.%urnizor AndACT4$.%ataacturaO12F1>F2G11OK

    ClicL pentru E"emplu

  • 8/18/2019 Curs Algebra Relationala

    33/34

    $ealizarea operatorilor Compunerenaturală 2i Compunere e!ternă

    ?peratorul Compunere naturală se realizează !n -/ prin intermediuloperatorului #NN%R 3$#N.

    ?peratorul Compunere eternă se realizează !n -/ prin intermediuloperatorilor L%(' 3$#N şi R#4,' 3$#N.

    A se *edea e"emplele din cursul Limba5ul &6L.

  • 8/18/2019 Curs Algebra Relationala

    34/34

    $ealizarea operatorului *i"iziune

    ?peratorul Diviziune se realizează !n -/ prin intermediul interogărilor cusubinterogări.

    %!emplu:

    inta"a -/ a&erentă e"emplului

    &%L%C' P/DE ACT4$AQ.Dumaractura

    (R$) '$?%4 DDE$ ?D P/DE ACT4$AQ

    $N '$?%4.Cod'rodus ; P/DE ACT4$AQ.Cod'rodus

    4R$U/ 78 P/DE ACT4$AQ.Dumaractura

    ,A9#N4 Count(P/DE ACT4$AQ.Cod'rodus);

    -&%L%C' Count('rodus.Cod'rodus)

    (R$) '$?%4.K

    ClicL pentru E"emplu