Curs 8 Fabbv

download Curs 8 Fabbv

of 15

description

baze de date

Transcript of Curs 8 Fabbv

  • Baze de date Microsoft Access

    Baze de dateCurs 8

    SQL (IV)Algebra relaional

  • XPSelecia

    Microsoft Office Access 2010 2

    Selecia aplicat unei tabele R1 genereaz o nou tabel R2 avnd aceeai structur ca i R1, dar care conine doar tuplurile ce ndeplinesc condiia specificat de selecie.Cardinalitatea relaiei rezultat R2 este mai mic sau egal cu cardinalitatea relaiei R1, n timp ce gradul relaiei este egal cu al relaiei surs. Notaia specific pentru selecie este R2 = SELECTC (R1), unde

    R1 este tabelul (relaia) de baza asupra creia se aplica seleciaC este condiia ce se refer la atributele lui R2R2 este tabelul (relaia) rezultat, alctuit din tuplurile lui R1 care ndeplinesc condiia C;

  • XPRealizarea operatorilor relaionali

    n SQL Selecia

    Microsoft Office Access 2010 3

    Societate

    SELECT * FROM Societate WHERE LocalitateSocietate="Bucuresti"

    SELECT LocalitateSocietate=Bucuresti (Societate)

  • XPProiecia

    Microsoft Office Access 2010 4

    Proiecia este o operaie unar ce returneaz tuplurile ceconin un subset al atributelor tabelei surs. Proiecia aplicatasupra unei tabele R1 genereaz o tabel R2 ce va aveagradul mai mic dect R1 dar cu acelai numr de tupluri(cardinalitate). Notaia specific pentru proiecie esteR2=PROIECTIEL (R2), unde:

    R1 este tabelul (relaia) surs asupra creia se aplic proiecia ;L este subsetul de atribute (dintre atributele lui R2) ;

    R2 este tabelul (relaia) rezultat, alctuit din tuplurile lui R2 cuprinznd doar atributele din lista L;

  • XPRealizarea operatorilor relaionali

    n SQL Proiecia

    Microsoft Office Access 2010 5

    SELECT Oras

    FROM Studenti

  • XPIntersecia

    Microsoft Office Access 2007 6

    Intersecia a dou relaii compatibile (avnd aceeaistructur) este tot o relaie ce conine doarnregistrrile comune (identice) pentru cele doutabele. Cardinalitatea relaiei obinute n urmainterseciei a dou tabele este mai mic sau celpuin egal cu minimul cardinalitilor celor doutabele. Gradul relaiei R3 este egal cu gradul relaieiR1 i respectiv al relaiei R2.

    SELECT *

    FROM Studenti

    WHERE CodStudent

    IN (SELECT CodStudent

    FROM Doctoranzi)

  • XPAlgebra relaional - Compunerea

    Microsoft Office Access 2010 7

    SELECT NrCredit, DataCredit, valoareCredit,

    Perioada_luni, Min_durata, Max_durata, TipCredit

    FROM Credit, TipCredit

    WHERE Perioada_luni>=Min_durata AND

    Perioada_luni

  • XPAlgebra relaional - Compunerea

    Microsoft Office Access 2010 8

    Compunerea a dou tabele R1 i R2 este o tabel R3 cecombin tuplurile celor dou tabele surs, fiind alese doaracelea care ndeplinesc o anumit condiie specificat ncadrul compunerii. Gradul relaiei (numrul de coloane)obinute ca urmare a compunerii a dou relaii este egal cusuma gradelor relaiilor surs.Notaia specific pentru compunere este R3=R1 JOINC R2, unde

    R1 i R2 sunt tabelele (relaiile) de baz asupra crora se aplic compunerea;C este condiia care poate s conin operatori logici i aritmetici precum i agregri de date.R3 este tabelul (relaia) rezultat, alctuit din tuplurile produsului cartezian R2 X R3 care ndeplinesc condiia C.

  • XPAlgebra relaional - Echicompunerea

    Microsoft Office Access 2007 9

    Este compunerea pentru care condiia este alctuit numai dinegaliti, putnd conine una sau mai multe egaliti. n cazulechicompunerii, n tabela rezultat apar dou cmpuri ce au valoriidentice.

    Gradul relaiei (numrul de coloane) obinute ca rezultat alechicompunerii este egal cu suma gradelor celor doua relaiisurs.Cardinalitatea (numrul de tupluri ale relaiei rezultat) este maimic sau egal cu produsul cardinalitilor tabelelor surs.

  • XPCompunerea natural

    Microsoft Office Access 2007 10

    Compunerea natural este echicompunerea a dou tabele,pentru care exist cel puin cte cmp avnd acelai nume i tip,n care din rezultat se elimin cmpurile identice.Gradul relaiei obinute ca rezultat al compunerii naturale estemai mic dect suma gradelor celor doua relaii surs, deoarecesunt eliminate cmpurile identice.

    Cardinalitatea (reprezint numrul de tupluri) relaiei rezultateste mai mic sau egal dect produsul cardinalitilor tabelelorsurs.

  • XPCompunerea extern

    Microsoft Office Access 2010 11

    Compunerea extern este o echicompunere dar care, spredeosebire de aceasta, afieaz i tuplurile care nu aucorespondent n cadrul celor dou tabele surs

    a 1b 3a 2

    A B

    R1

    x 1z 2

    C DR2

    x 6

    OUTER JOIN B=Da 1b 3a 2

    A B

    R1 OUTER JOIN B=D R2

    x 1NULL NULL

    C D

    z 2NULL NULL x 6

    =

    Cursuri LEFT JOIN InscrieriCurs

    CursuriInscrieriCurs

    Cursuri RIGHT JOIN InscrieriCurs

    Cursuri

    InscrieriCurs

  • XPAlgebra relaional - Diviziunea

    Microsoft Office Access 2007 12

    Diviziunea presupune mprirea unei tabele (R1), denumitdemprit, la o tabela denumit mpritor (R2) rezultnd o alttabela (R3) denumit ct, astfel nct orice tuplu al tabelei ct(R3) trebuie s se regseasc n cadrul tuplurilor tabeleidemprit (R1) n combinaie cu fiecare tuplu din tabelampritor (R2). Pentru a putea s aib sens diviziunea, tabelampritor (R2) trebuie s aib ca atribute un subset alatributelor tabelei demprit (R1). Gradul tabelei ct (R3) esteegal cu diferena gradelor tabelelor demprit (R1) i mpritor(R2).

    a 1b 2

    xy

    a 2d 3

    xx

    A B CR1 R2

    R1

    12

    B

    R2

    a xA C

  • XPDiviziunea

    Microsoft Office Access 2010 13

    a 1b 2

    xy

    a 2d 3

    xx

    A B C

    R1

    12

    BR2

    R1 R2=SELECT Count=2 (W)

    a xA C

    a 1 xA B C

    S=R1 JOIN R1.B=R2.B R2

    b 2 ya 2 x

    JOIN R1.B=R2.B =a xA C

    T=PROI A,C (S)

    b ya x

    R1 R2

    W=GROUP A,C,COUNT(*) (T)

    a xA C

    2Count

    b y 1

    Numarul de

    tupluri din R2

    a 1b 2

    xy

    a 2d 3

    xx

    A B C

    R1

    12

    BR2

    a 1 xA B C

    S1=SELECTB=1 (R1)

    a 1b 2

    xy

    a 2d 3

    xx

    A B C

    R1S2= SELECTB=2 (R1)

    b 2a 2

    yx

    A B C

    T1 T2=R1 R2

    a xA C

    a xA C

    T1=PROI A,C (S1)

    b yA C

    T2=PROI A,C (S2)

    a x

    Varianta 1

    Varianta 2

    a 1b 2

    xy

    a 2d 3

    xx

    A B CR1 R2

    R1

    12

    B

    R2

    a xA C

  • XPAlgebra relaionala - Diviziunea

    Microsoft Office Access 2010 14

    Identificarea profesorilor care predau toate cursurile din tabelul

    Disciplina

    C=Profesor : Disciplina

    =:

    X =

    P=Disciplina X C

  • XPAlgebra relaionala - Diviziunea

    Microsoft Office Access 2010 15

    SELECT CodProfesor

    FROM Profesor INNER JOIN Disciplina ON

    Profesor.CodDisciplina = Disciplina.CodDisciplina

    GROUP BY CodProfesor

    HAVING Count(Profesor.CodDisciplina) =

    (SELECT Count(.CodDisciplina)

    FROM Disciplina

    C=Profesor : Disciplina

    =: