Kapitulli6 DB (2)

  • Upload
    albania

  • View
    241

  • Download
    0

Embed Size (px)

Citation preview

  • 7/24/2019 Kapitulli6 DB (2)

    1/52

    1

    KAPITULLI 6

    ALGJEBRA RELACIONALE

  • 7/24/2019 Kapitulli6 DB (2)

    2/52

    2

    OBJEKTIVAT Shembull i Aplikimit KOMPANIA Algjebra Relacionale

    Veprimet Relacionale Unare Veprimet e Algjebres Relacionale nga Teoria eBashkesive Veprimet Relacionale Binare Veprime te tjera Relacionale Shembuj Queries ne Algjebren Relacionale

    Njehsime Relacionale (Relational Calculus) Tuple Relational Calculus Domain Relational Calculus

    Overview e gjuhes QBE

  • 7/24/2019 Kapitulli6 DB (2)

    3/52

    3

    Skema e Databazes Relacionale

    KOMPANIA

  • 7/24/2019 Kapitulli6 DB (2)

    4/52

    4

    Algjebra Relacionale Bashkesia kryesore e veprimeve per modelin relacional njihet si

    algjebra relacionale. Keto veprime i japin mundesine perdoruesitte specifikoje kerkesat kryesore retrieval.

    Rezultati i nje retrieval eshte nje relacion i ri, i cili mund te jeteformuar nga nje ose me teper relacione.Veprimet ealgjebres ne kete menyre krijojne relacione te reja, te cilat mepas mund te perpunohen duke perdorur veprime te te njejtesalgjeber.

    Nje varg veprimesh te algjebres relacionale formon njerelational algebra expression, rezultati i se ciles gjithashtudo te jete nje relacion qe paraqet rezultatin e nje databasequery (orretrieval request).

  • 7/24/2019 Kapitulli6 DB (2)

    5/52

    5

    Veprimet Relacionale Unare

    Veprimi SELECT

    Veprimi SELECT perdoret per te zgjedhur njenenbashkesi tuples nga nje relacion qeploteson nje kusht perzgjedhjeje (aselection condition). Ai eshte nje filter qemban vetem ato tuples qe plotesojne nje

    kusht kualifikues (a qualifying condition ) ato qe plotesojne kushtin perzgjidhen ndersate tjeret nuk merren parasysh.

  • 7/24/2019 Kapitulli6 DB (2)

    6/52

    6

    Veprimet Relacionale Unare

    SELECT

    Shembull: Per te perzgjedhur ato tuples tePUNONJESI numri i departamentit te te cileve eshtepese ose ato per te cilet paga eshte me e madhe se30000 perdoret simbolika e meposhtme:

    DNO = 5 (PUNONJESI)

    PAGA> 30,000 (PUNONJESI)

    Ne pergjithesi, veprimi select tregohet nga (R) ku simboli (sigma) perdoret per tetreguar operatorin select, dhe kushti i selektimiteshte nje shprehje Boolean e specifikuar ne atributete relacionit R

  • 7/24/2019 Kapitulli6 DB (2)

    7/52

    7

    Veprimet Relacionale Unare

    SELECT Vecorite e Veprimit SELECT

    -Veprimi SELECT (R) prodhon nje relacion S qe ka tenjejten skeme si R

    Veprimi SELECT eshte commutative; p.sh., ( < kushti2> (R)) = ( < kushti1> ( R)) Nje veprim cascaded SELECT mund te zbatohet ne cfaredo llojrendi; p.sh., ( < kushti2> ( (R))= ( < kushti3> ( < kushti1> ( R)))

    Nje veprim cascaded SELECT mund te zevendesohet nga njeperzgjedhje e vetme me nje bashkim te te gjithe kushteve; p.sh., ( ( (R))

    = AND < kushti2> AND < kushti3> ( R)

  • 7/24/2019 Kapitulli6 DB (2)

    8/52

    8

    Veprimet Relacionale Unare

    SELECT

    Rezultati i veprimit SELECT

    (a) (DNO=5 AND PAGA>30000) (PUNONJESI).

  • 7/24/2019 Kapitulli6 DB (2)

    9/52

    9

    Veprimet Relacionale Unare

    SELECT

    Rezultati i veprimit SELECT

    (b) (DNO=5 AND PAGA>30000) OR (DNO=4 AND PAGA >20000) (PUNONJESI)

  • 7/24/2019 Kapitulli6 DB (2)

    10/52

    10

    Veprimet Relacionale Unare

    PROJECT

    Veprimi PROJECT

    Ky veprim perzgjedh disa kolona ngatabela duke lene menjane te tjerat.PROJECT krijon nje ndarje vertikale nje me kolonat (atributet) qe

    permbajne rezultatet e veprimit dhetjetra qe permban Kolonat epanevojshme.

  • 7/24/2019 Kapitulli6 DB (2)

    11/52

    11

    Veprimet Relacionale Unare

    PROJECT

    Shembull: Per te afishuar emrin, mbiemrin dhepagen e cdo punonjesi perdorim:

    Emri, Mbiemri, Paga (PUNONJESI)Forma e pergjithshme e veprimit project eshte (R) ku (pi) eshte simboli iperdorur per te paraqitur veprimin project dhe eshte lista e deshiruar eatributeve prej atributeve te relacionit R.Veprimi project largon cdo tuples te dublikuar,keshtu qe rezultati i veprimit project eshte njebashkesi tuples, pra nje relacion i vlefshem.

  • 7/24/2019 Kapitulli6 DB (2)

    12/52

    12

    Veprimet Relacionale Unare

    PROJECT Vecorite e Veprimit PROJECT

    - Numri i tuples ne rezultatin e projektimit

    (R) eshte gjithmone me i vogel ose ibarabarte me numrin e tuples ne R.- Nese lista e atributeve perfshin nje celeste R, atehere numri i tuples eshte i barabarteme numrin e tuples ne R.

    ( (R) ) = (R) per aqkohe sa permban atributet ne

  • 7/24/2019 Kapitulli6 DB (2)

    13/52

    13

    Veprimet Relacionale Unare

    PROJECT

    Rezultati i veprimit PROJECT

    (a) Emri, Mbiemri, Paga (PUNONJESI) .

  • 7/24/2019 Kapitulli6 DB (2)

    14/52

    14

    Veprimet Relacionale Unare

    PROJECT

    Rezultati i veprimit PROJECT

    (b) GJINIA, PAGA(PUNONJESI)

  • 7/24/2019 Kapitulli6 DB (2)

    15/52

    15

    Veprimet Relacionale Unare(vazhd.)

    Veprimi RENAME

    Ne mund te duam te zbatojme disa veprime

    te algjebres relacionale njeri pas tjetrit. Osemund te shkruajme veprimet si nje shprehjee vetme e algjebres relacionale duke Ivendosur veprimet njeri brenda tjetrit, osemund te zbatome nje veprim nje here dhe tekrijojme relacione te rezultatit tendermjetem. Me pas, ne mund tIemertojme relacionet qe mbajne rezultatet endermjetme.

  • 7/24/2019 Kapitulli6 DB (2)

    16/52

    16

    Veprimet Relacionale Unare(vazhd.)

    Shembull: Per te terhequr emrin, mbiemrin, dhepagen e te gjithe punonjesve qe punojne nedepartamentin me numer 5 ne mund te zbatojme njeveprim Select dhe nje veprim Project. Ne mund teshkruajme nje shprehje te vetme relacionale si meposhte:

    Emri, Mbiemri, Paga ( DNO=5(PUNONJESI))

    Ose ne menyre explicite te paraqesim vargun eveprimeve, duke I dhene nje emer cdo relacioni tendermjetem:

    DEP5_PUNS DNO=5(PUNONJESI)

    RESULT Emri, Mbiemri, Paga (DEP5_PUN)

  • 7/24/2019 Kapitulli6 DB (2)

    17/52

    17

    Veprimet Relacionale Unare(vazhd.)

    Veprimi RENAME (Vazhd.)Operatori rename operator eshte

    Veprimi Rename ne menyre te pergjithshme mund te shprehet me njenga format e meposhtme:

    S(B1, B2, , Bn )(R) eshte nje relacion I riemertuar S I bazuar ne R meemrat e kolonave B1, B2, , Bn.

    S (R) eshte nje relacion I riemertuar S I bazuar ne R (qe nukspecifikon emrat e kolonave).

    (B1, B2, , Bn )(R) eshte nje relacion I riemertuar me emrat e kolonaveB1, B2, ..Bn qe nuk specifikon nje emer relacioni te ri.

    .

  • 7/24/2019 Kapitulli6 DB (2)

    18/52

    18

    Veprimet Relacionale Unare

    (vazhd.)Rezultatet e shprehjeve te Algjebres Relacionale

    (a) Emri, Mbiemri, Paga ( DNO=5 (PUNONJESI))

    (b) E njejta shprehje duke perdorur relacionet e ndermjetme dhe teriemertimit te atributeve.

    (a)

    (b)

  • 7/24/2019 Kapitulli6 DB (2)

    19/52

    19

    Veprimet e AlgjebresRelacionale nga Teoria e

    Bashkesive Veprimi I Bashkimit UNION

    Rezultati I ketij veprimi, I paraqitur nga R U S, eshte nje relacion qeperfshin te gjitha tuples qe ndodhen ose ne R ose ne S ose edhene R edhe ne S. Tuples e dubluara eliminohen.

    Shembull: Per te perzgjedhur ID e te gjithe punonjesve qe osepunojne ne departamentin 5 ose direkt mbikqyrin nje punonjes qepunon ne departamentin 5, ne mund te perdorim veprimin ebashkimit si me poshte:

    DEP5_PUNS DNO=5 (PUNONJESI)RESULT1 ID(DEP5_PUNS)RESULT2(ID) SUPE RV.ID (DEP5_PUNS)

    RESULT RESULT1 U RESULT2

    Veprimi I bashkimit krijon tuples qe bejne pjese ose ne RESULT1ose ne RESULT2 ose ne te dyja. RESULT2 or both. Te dy operandetduhet te jene type compatible.

  • 7/24/2019 Kapitulli6 DB (2)

    20/52

    20

    Veprimet e AlgjebresRelacionale nga Teoria e

    Bashkesive Type Compatibility

    Relacionet operande R1(A1, A2, ..., An) dhe

    R2(B1, B2, ..., Bn) duhet te kene te njejtinnumer atributesh, dhe domain-et e atributevekorresponduese duhet te jene compatible;pra, dom(Ai)=dom(Bi) for i=1, 2, ..., n.

    Relacioni rezultat per R1 U R2,R1 R2, orR1-R2 ka te njejtat emra te atributeve si edherelacioni I pare operand R1 (memarreveshje).

  • 7/24/2019 Kapitulli6 DB (2)

    21/52

    21

    Veprimet e AlgjebresRelacionale nga Teoria e

    Bashkesive

    Shembull UNION

  • 7/24/2019 Kapitulli6 DB (2)

    22/52

    22

    Veprimet e AlgjebresRelacionale nga Teoria e

    Bashkesive VEPRIMI I NDERPRERJES

    Rezultati I ketij veprimi, I paraqitur nga R S, eshte nje relacion qeperfshin te gjithe tuples qe jane njekohesisht edhe ne R edhe ne S. Tedy operandet duhet te jene "type compatible.

    Shembull: Rezultati I veprimit te nderprerjes (figura me poshte)perfshin vetem ato qe jane njekohesisht punonjes dhe manaxhere.

  • 7/24/2019 Kapitulli6 DB (2)

    23/52

    23

    Veprimet e AlgjebresRelacionale nga Teoria e

    Bashkesive Diferenca e Bashkesive Veprimi MINUS

    Rezultati I ketij veprimi, I paraqitur nga R S eshte nje relacionqe perfshin te gjithe tuples qe jane ne R por jo ne S. Te dy

    operandet duhet te jene"typecompatible.

    Shembull: Figura paraqet emrat e punonjesve qe nuk janemanaxhere.

  • 7/24/2019 Kapitulli6 DB (2)

    24/52

    24

    Veprimet e AlgjebresRelacionale nga Teoria e

    Bashkesive Shenojme qe edhe veprimi union dhe veprimi

    intersection jane veprime commutative

    qe do te thote qe R U S = S U R, dhe R S=S R

    Te dy veprimet, union dhe intersection mund tetrajtohen si veprime n-ary te aplikueshme mbicfaredo numri relacionesh dhe qe te dy jane veprimeassociative; qe do te thote

    R U (S U T) =(R U S) U T, dhe (R

    S)

    T=R(ST)

    Veprimi minus nuk eshte commutative; qe do tethote, ne pergjithesi R-S SR

  • 7/24/2019 Kapitulli6 DB (2)

    25/52

    25

    Veprimet e AlgjebresRelacionale nga Teoria e

    Bashkesive Veprimi CARTESIAN (ose cross product)

    Ky veprim perdoret per te kombinuar tuples nga dy relacione nenje menyre te kombinueshme. Ne pergjithesi, rezultati I R (A1,

    A2

    ,, An

    ) x S (B1

    , B2

    ,, Bm

    ) eshte nje relcion Q I grades n+matribute Q (A1, A2,, An, B1, B2,, Bm). Relacioni rezultat Q kanje tuple per cdo kombinim tuples nje prej R dhe nje prej S.Qe ketej, nqse R ka nRtuples (paraqitur si |R| = nR), dhe S kanS tuples, atehere| RxS | do te kete nR*nS tuples.

    Te dy operandet nuk kane "type compatible. Shembull: Femer_PUNS GJINIA=F(PUNONJESI)

    PUNEMERS EMRI, MBIEMRI, ID (Femer_PUNS)PUN_VARTESS PUNEMERS x VARTES

  • 7/24/2019 Kapitulli6 DB (2)

    26/52

    26

    Relacionale nga Teoria eBashkesive

    Nje ilustrim I Veprimit te ProduktitCartezian

  • 7/24/2019 Kapitulli6 DB (2)

    27/52

    27

    Veprimet Relacionale Binare Veprimi JOIN Sekuenca e prodhimit kartezian e ndjekur nga select

    perdoret shpesh per te identifikuar dhe zgjedhur tuplese lidhur prej dy relacioneve, nje veprim special, I

    quajtur JOIN. Ai paraqitet nga simboli Ky veprim eshte shume I rendesishem per cdo

    databaze relacionale me me teper se nje relacion, sepsena lejon te krijojme relacione midis relacioneve.

    Forma e pergjithshme e nje veprimi join ne dyrelacione R(A

    1, A

    2,. . ., A

    n) dhe S(B

    1, B

    2, . . ., B

    m) eshte:

    R S ku R dhe S mund te jene cdo relacionqe rezulton nga relational algebra expressions.

  • 7/24/2019 Kapitulli6 DB (2)

    28/52

    28

    Veprimet Relacionale Binare Shembull: Supozojme qe duma te perzgjedhim

    emrin e manaxherit te cdo departamenti. Per tegjetur emrin e manaxherit, eshte e nevojshme tekombinohet cdo DEPARTMENTI tuple mePUNONJESI tuple vlera e ID-se se te cilit koordinon

    me vleren e MGID-se ne departament tuple. Ketegje e realizojme duke perdorur veprimin joinoperation.

    DEPT_MGR DEPARTAMENTI JOIN MGID=ID

    PUNONJESI

  • 7/24/2019 Kapitulli6 DB (2)

    29/52

    29

    Veprimet Relacionale Binare Veprimi EQUIJOIN

    Perdorimi me I zakonshem I join perfshin kushte per join vetem mekrahasimet e barazise. Nje join I tille, ku I vetmi operator krahasues Iperdorur eshte =, quhet nje EQUIJOIN. Ne rezultatin e nje EQUIJOINne gjithmone kemi nje ose me teper cifte atributesh (emrat e te cileve

    nuk eshte te thene te jene identike) qe kane vlera identike ne cdotuple. JOIN I pare ne shembullin e meparshem ishte nje EQUIJOIN. Veprimi NATURAL JOIN

    Per aresye se nje nga atributet e cdo cifti me vlera identike eshte Itepert, nje veprim I ri I quajtur natural joinI paraqitur nga * eshtekrijuar per te hequr atributin e dyte (te tepert) ne nje kushtEQUIIJOIN.Percaktimi standart I natural join kerkon qe te dy atributet e lidhjes(join), ose cdo cift I atributeve korresponduese join, te kene te njejtinemer ne te dy relacionet. Nese nuk ndodh keshtu, atehere se pariduhet te zbatohet nje veprim renaming.

  • 7/24/2019 Kapitulli6 DB (2)

    30/52

    30

    Veprimet Relacionale BinareShembull: Per te zbatuar nje natural joinatributet DNUMER te DEPARTAMENTi dhe

    DEPARTAMENTI_VENDNDODHJE, eshte emjaftueshme te shkruajme:

    DEPT_VENDS DEPARTAMENTI *DEPARTAMENTI_VENDNDODHJE

  • 7/24/2019 Kapitulli6 DB (2)

    31/52

    31

    Bashkesia e Plote e

    Veprimeve Relacionale Bashkesia e veprimeve qe perfshin select ,

    project , union , set difference - , dhe

    cartesian product X quhet nje bashkesikomplete sepse cdo shprehje tjeter ealgjebres relacionale mund te shprehet nganje kombinim I ketyre pese veprimeve.

    Per shembull: R S = (R S ) ((R S) (S R))

    R Join S = (R X S)

  • 7/24/2019 Kapitulli6 DB (2)

    32/52

    32

    Veprimet Relacionale Binare

    Veprimi I Pjestimit - DIVISION Veprimi I pjestimit zbatohet mbi dy relacioneR(Z) S(X), ku X ben pjese ne Z. Le te jete Y =Z - X (dhe qe ketej Z= X Y); pra, let Y le tejete bashkesia e atributeve te R qe nuk jane

    atribute te S. Rezultati I DIVISION eshte nje relacionT(Y) qeperfshin nje tuple t nese tuples tRshfaqet ne Rme tR[Y] = t, dhe me tR[X] = ts per cdo tuple tsne S.

    Per nje tuple t te shfaqur ne rezultatinT teDIVISION, vlerat ne t duhet te shfaqen ne R nekombinim me cdo tuple ne S.

  • 7/24/2019 Kapitulli6 DB (2)

    33/52

    33

    Veprimet Relacionale

    Binare Shembull I veprimit DIVISION: T R S

    X = {A} dhe Y = {B} jane atribute te thjeshta. Veme re qeb1 dhe b4 shfaqen ne R ne kombinim me te tre tuples te S;

    prandaj ato shfaqen ne rezultatin T. Te gjitha vlerat e tjerate B ne R nuk shfaqen ne kombinim me te gjithe tuples neS dhe prandaj nuk jane zgjedhur; b2 nuk shfaqet me a2dhe b3 nuk shfaqet me a1.

  • 7/24/2019 Kapitulli6 DB (2)

    34/52

    34

    Veprimet Relacionale BinareVeprimi DIVISION mund te shprehet si nj

    sekuence e , X, dhe si me poshte:

    T1 y (R)

    T2 y ((SXT1)- R)T T1 T2

  • 7/24/2019 Kapitulli6 DB (2)

    35/52

    35

    Veprime te Tjera Relacionale

    Funksionet Aggregate dhe Grupimet Nje tip kerkese qe nuk mund te shprehet ne algjebren bazerelacionale eshte specifikimi matematikor i funksioneve aggregatene bashkesine e vlerave te databazes.

    Shembuj te funksioneve te tille perfshijne gjetjen e totalit ose te

    mesatares se pages te te gjithe punonjesve ose numrin total tetuples te punonjesve. Keto funksione perdoren ne queries tethjeshta statistikore qe permbledhin (summarize) informacionin ngatuples te databazes.

    Funksionet me te zakonshme qe zbatohen mbi bashkesine evlerave numerike perfshijne SUM, AVERAGE, MAXIMUM, dheMINIMUM. Funksioni COUNT perdoret per numerimin e tuples osete vlerave.

  • 7/24/2019 Kapitulli6 DB (2)

    36/52

    36

    Veprime te Tjera Relacionale(vazhd.)

    Perdorimi i operatorit Funksional MAX Paga (Punonjesi) gjen vleren maksimale te pagesnga relacioni PunonjesiMIN Paga (Punonjesi) gjen vleren minimale te pagesnga relacioni Punonjesi

    SUM Paga (Punonjesi) gjen totalin e pagave ngarelacioni Punonjesi

    DNO COUNT ID, AVERAGE Paga (Punonjesi) grupon punonjesitsipas DNO (numrit te departamentit) dhe llogarit numrine punonjesve dhe pagen mesatare per departament.

    [ Shenim: count vetem numeron numrin e rreshtave, pahequr dublikatet]

  • 7/24/2019 Kapitulli6 DB (2)

    37/52

    37

    Veprime te Tjera Relacionale(vazhd.)

    (a) R(DNO, NR_PUNONJESVE,PAGA_MESATARE) DNO COUNT ID,

    AVERAGE PAGA(PUNONJESI)

    (b)

    COUNT ID, AVERAGE PAGA

    (PUNONJESI)

  • 7/24/2019 Kapitulli6 DB (2)

    38/52

    38

    Veprime te Tjera Relacionale

    (vazhd.) Veprimet e Mbylljes Rekursive (Recursive Closure)

    Nje tip tjeter veprimi qe, ne pergjithesi, nuk mund te specifikohet nebazen origjinale te algjebres relacionale eshte recursive closure. Kyveprim zbatohet mbi nje recursive relationship.

    Nje shembull i nje veprimi rekursiv eshte gjetja e te gjitheSUPERVIZOREVE te nje PUNONJESI p ne te gjitha nivelet pra, tegjithe PUNONJESIT p te supervizuar direkt nga p; te gjithe punonjesitp te supervizuar direkt nga cdo punonjes p; te gjithe punonjesit p tesupervizuar nga cdo punonjes p; e me radhe.Megjithese eshte e mundur te gjenden punonjesit ne cdo nivel dhe mepas te merret bashkimi i tyre, ne nuk mundemi, ne pergjithesi, tespecifikojme nje query te tille si gjej supervizoret e Mira Bregu ne te

    gjitha nivelet pa perdorur nje mekanizem looping.SQL3 standarte perfshin sintakse per recursive closure.

  • 7/24/2019 Kapitulli6 DB (2)

    39/52

    39

    Veprime te Tjera Relacionale

    (vazhd.)

    BREGU_ID ID ( EMRI = Mira AND MBIEMRI =Bregu(PUNONJESI))

    SUPERVIZOR (ID1, ID2) ID, SUPERV.ID(PUNONJESI)

    REZULT1(ID) ID1 (SUPERVIZOR Join

    ID2=ID BREGU_ID)

    BREGU_ID = 999887

  • 7/24/2019 Kapitulli6 DB (2)

    40/52

    40

    Veprime te Tjera Relacionale

    (vazhd.)Per te gjetur te gjithe punonjesit esupervizuar nga BREGU ne nivelin dy pra

    te gjithe punonjesit p te supervizuar ngadisa punonjes p te cilet direktsupervizohen nga BREGU - ne mund tezbatojme nje tjeter Join mbi rezultatin e

    query-s se pare si me poshte:REZULT2(ID) ID1 (SUPERVIZOR Join

    ID2=ID REZULT1)

  • 7/24/2019 Kapitulli6 DB (2)

    41/52

    41

    Veprime te Tjera Relacionale

    (vazhd.)

    Per te gjetur njekohesishtbashkesine e punonjesve te

    supervizuar ne nivelet nje dhe dynga Mira Bregu, ne mund tezbatojme veprimin UNION te dyrezultateve, si me poshte:

    REZULT3 (REZULT1 U REZULT2)(rekursion me dy nivele)

  • 7/24/2019 Kapitulli6 DB (2)

    42/52

    42

    Veprime te Tjera Relacionale

    (vazhd.) Veprimi Join I jashtem - OUTER JOIN

    Ne NATURAL JOIN tuples pa nje koincidim (ose lidhes)eliminohen nga rezultati i join.Tuples me null ne atributet joineliminohen gjithashtu. Kjo con ne humbje te informacionit.Nje bashkesi veprimesh, e quajtur outer join, mund te perdoretkur ne duam te mbajme te gjithe tuples te R, ose te gjithe atote S, ose te gjithe ato te te dy relacioneve ne rezultatin e join,pa i dhene rendesi nese kane ose jo matching tuples nerelacionin tjeter.

    Veprimi outer join i majte mban cdo tuple te relacionit te pareose te majte R ne R S; Ne se ne S nuk gjenden matchingtuple , atehere atributet e S ne rezultatin join mbushen me vleranull.

    Nje veprim i ngjashem, outer join i djathte, mban cdo tuple terelacionit te dyte ose te djathte S ne rezultatin e R SNje veprim i trete , outer join i plote, i paraqitur me mbante gjithe tuples ne te dy relacionet, majte dhe djathte kur nukgjenden matching tuples, duke i mbushur ato me vlera null.

  • 7/24/2019 Kapitulli6 DB (2)

    43/52

    43

    Veprime te Tjera Relacionale

    (vazhd.)

  • 7/24/2019 Kapitulli6 DB (2)

    44/52

    44

    Veprime te Tjera Relacionale

    (vazhd.) Shembull: Duam nje liste te te gjithe emrave te punonjesve

    dhe gjithashtu emrat e departamenteve qe ato manaxhojne ,nese ndodh qe ato manaxhojne nje departament; ne mund tezbatojme nje veprim Left Outer Join per te marre rezultatin sime poshte:

    TEMP (PUNONJESI Left Outer Join ID=MGID DEPARTAMENTI)

    REZULT EMRI, MBIEMRI, DEMER(TEMP)

    Veprimi Left Outer Join mban cdo tuple ne relacionin e pareose te majte R (punonjesi) ; nese nuk gjenden matching tuples

    ne S , atehere atributet e S ne rezultat mbushen me vlerennull.

    Rezultati paraqitet ne figuren me poshte :

  • 7/24/2019 Kapitulli6 DB (2)

    45/52

    45

    Veprime te Tjera Relacionale

    (vazhd.) Veprimet OUTER UNION

    Veprimi outer union u krijua per te marre bashkimin e tuples nga dy relacionenese keto dy relacione nuk jane union compatible.

    Ky veprim do te marre bashkimin e tuples te dy relacioneve R(X, Y) dhe S(X, Z)qe jane partially compatible, ne kuptimin qe vetem disa prej atributeve, tethemi X, jane union compatible.Atributet qe jane union compatible paraqiten vetem nje here ne rezultat, dheato atribute qe nuk jane union compatible prej cilitdo ralacion mbahengjithashtu ne relacionin rezultat T(X, Y, Z).

    Shembull: Nje outer union mund te zbatohet ne dy relacione skemat e tecileve jane STUDENTI(Emri, ID, Departamenti, Konsulenti) dheINSTRUKTORI(Emri, ID,Departamenti, Kategoria). Tuples nga te dy relacionetkoordinohen ne baze te kombinimit te vlerave te atributeve te perbashketa

    (shared) Emri, ID, Departamenti. Relacioni rezultatSTUDENTI_OSE_INSTRUKTORI do te kete atributet e meposhtme:STUDENTI_OSE_INSTRUKTORI (Emri, ID, Departamenti, Konsulenti,Kategoria).Te gjithe tuples nga te dy relacionet jane perfshire ne rezultat. Tuples teSTUDENTI do te kene vleren null per atributin Kategoria, nderkohe qeINSTRUKTORI tuples do te kene nje vlere null per atributin Konsulenti. Nje tupleqe ben pjese ne te dy relacionet do te kete vlera per te gjithe atributet.

  • 7/24/2019 Kapitulli6 DB (2)

    46/52

    46

    Njehsimet Relacionale Nje shprehje njehsimi relacional krijon nje relacion te ri, i cili

    specifikohet ne termat e variablave qe levizin mbi rreshtat erelacioneve te databazes se ruajtur (ne njehsimet tuple) osembi kolonat e relacioneve te ruajtura (ne njehsimet domain).

    Ne nje shprehje njehsimi, nuk ka nje rend te veprimeve per tespecifikuar si te gjejme query- n rezultat nje shprehje njehsimispecifikon vetem se cfare informacioni duhet te permbajerezultati. Kjo eshte vecoria kryesore qe dallon algjebrenrelacionale dhe njehsimet relacionale.

    Relational calculus konsiderohet si nje gjuhe nonprocedural.Kjo ndryshon nga algjebra relacionale, ku ne mund te

    shkruajme nje varg veprimesh per te specifikuar nje kerkeseperzgjedhjeje; keshtu algjebra relacionale mund te konsiderohetsi nje menyre procedural e deklarimit te nje query.

  • 7/24/2019 Kapitulli6 DB (2)

    47/52

    47

    Njehsimet Relacionale Tuple Njehsimi relacional tuple bazohet ne specifikimin e nje numri

    variablash tuple. Cdo variabel tuple shtrihet mbi nje relacion tevecante te databazes, ne kuptimin qe variabli mund te marre si vlera tetij cdo tuple individual nga ky relacion.

    Nje query njehsimi i thjeshte relacional tuple eshte i formes{t|COND(t)} ku t eshte nje variabel tuple dhe COND (t) eshte njeshprehje e kushtezuar qe perfshin t. Rezultati i nje query te tille eshtebashkesia e te gjithe tuples t qe permbushin COND (t).

    Shembull: Per te gjetur emrat dhe mbiemrat e te gjithe punonjesvepaga e te cileve eshte mbi 50000, ne mund te shkruajme shprehjen emeposhtme te njehsimit tuple :{t. EMRI, t.MBIEMRI|PUNONJESI(t) AND t.PAGA>50000}.

    Kushti PUNONJESI(t) specifikon qe range relation i variablit tuple teshte PUNONJESI. Emri dhe Mbiemri (PROJECTION EMRI, MBIEMRI) icdo tuple t i PUNONJESI qe ploteson kushtin t.PAGA>50000(SELECTION PAGA >50000) do te perzgjidhet.

  • 7/24/2019 Kapitulli6 DB (2)

    48/52

    48

    Percaktuesit (Quantifiers)Existential dhe Universal

    Dy simbole speciale te quajtura percaktues (quantifiers) mund te shfaqen neformula; keto jane universal quantifier () dhe existential quantifier ().

    Ne menyre jo formale, nje variabel tuple t eshte i kufizuar nese eshte ipercaktuar, ne kuptimin qe shfaqet ose ne nje pjese ( t) ose ( t) ; perndrysheai eshte free.

    Ne se F eshte nje formule, atehere keshtu eshte ( t)(F), ku t eshte nje variabeltuple. Formula ( t)(F) eshte true nese formula F rezulton true per disa (tepakten nje) tuple te paracaktuar ne free occurrences te t ne F; perndryshe (t)(F) eshte false.

    Ne se F eshte nje formule, atehere keshtu eshte ( t)(F), ku t eshte nje variabeltuple. Formula ( t)(F) eshte true nese formula F rezulton ne true per cdo tuple(in the universe) te paracaktuar ne free occurrences te t ne F; perndryshe (t)(F) eshte false.Ajo quhet universal ose for all quantifier sepse cdo tuple ne

    the universe of tuples mund te beje F true per te bere quantified formula true.

  • 7/24/2019 Kapitulli6 DB (2)

    49/52

    49

    Perdorur ExistentialQuantifier

    Gjeni emrin dhe adresen e te gjithe punonjesve qe punojne per departamentinManaxhim.Query : {t. EMRI, t.MBIEMRI, t.ADRESA|PUNONJESI(t) and ( d)(DEPARTAMENTI(d) and d.DEMRI=Manaxhim and d.DNUMER=t.DNO)

    I vetmi variabel free tuple ne nje shprehje njehsimi relacional duhet te jene atoqe shfaqen ne te majte te simbolit bar (|). Ne query e mesiperme, t eshte ivetmi free variable; ai me pas eshte kufizuar ne menyre te njepasnjeshme tekcdo tuple. Ne se nje tuple ploteson kushtet e specifikuara ne query, atributetEMRI, MBIEMRI, dhe ADRESA perzgjidhen per cdo tuple te tille.

    Kushtet PUNONJESI(t) and DEPARTAMENTI(d) specifikojne range relations per tdhe d. Kushti d.DEMER =Manaxhim eshte nje kusht selection dhekorrespondon me nje veprim SELECT ne algjebren relacionale, nderkohe qekushti d.DNUMER =t.DNO eshte nje kusht JOIN.

  • 7/24/2019 Kapitulli6 DB (2)

    50/52

    50

    Gjuhet e Bazuara ne TupleRelational Calculus

    Gjuha SQL bazohet ne tuple calculus. Ajo perdor kryesisht strukturat bllokSELECT FROM WHERE

    per te shprehur queries ne tuple calculus ku fjala SELECT nenkupton atributetqe do te projektohen, fjala FROM nenkupton relacionet e nevojshme ne query,dhe fjala WHERE nenkupton selection po aq sa edhe kusht join.

    Nje gjuhe tjeter e bazuar ne tuple calculus eshte QUEL e cila aktualisht perdorrange variables si ne tuple calculus.Sintaksa e saj perfshin:RANGE OF IS Me pas perdor

    RETRIEVE WHERE

  • 7/24/2019 Kapitulli6 DB (2)

    51/52

    51

    Domain Relational Calculus Nje tjeter variant i njehsimeve relacionale i quajtur domain relational

    calculus, ose thjesht, domain calculus eshte ekuivalent me tuplecalculus dhe me algjebren relacionale.

    Gjuha e quajtur QBE (Query-By-Example) qe lidhet me domain calculuseshte zhvilluar pothuajse ne menyre konkurrente me SQL at IBM Research,Yorktown Heights, NewYork. Domain calculus u menduan si nje menyre

    per te shpjeguar se cfare ben nje QBE.

    Domain calculus ndryshon nga tuple calculus ne tipin e variablave teperdorur ne formula:me teper se kufizimi i variablave pergjate tuples, variablat kufizohen mbivlera te vecanta prej domeneve te atributeve .Per te formuar nje relacionte grades n per nje rezultat query , ne duhet te kemi n variabla te ketyre

    domeneve nje per cdo atribut.

    Nje shprehje e domain calculus eshte e formes{x1, x2, . . ., xn | COND(x1, x2, . . ., xn, xn+1, xn+2, . . ., xn+m)}ku x1, x2, . . ., xn, xn+1, xn+2, . . ., xn+m jane variablat domain qekufizohen pergjate domeneve (te atributeve) dhe COND eshte njecondition ose formule e domain relational calculus.

    Sh b ll Q d k

  • 7/24/2019 Kapitulli6 DB (2)

    52/52

    52

    Shembull Query dukeperdorur Domain Calculus

    Gjeni Dat.Lindjen dhe gjinine e punonjesit me emer Ilir Mali.Query :{tu | ( q) ( r) ( s) ( v) ( w) (x)(PUNONJESI(qrstuvwx) dhe q=Ilir and r=Mali)}

    Tete variabla per relacionin punonjesi jane te nevojshme, njeri ikufizuar pergjate domenit te secilit atribut sipas radhes. Prejtete variablave q, r, s,, x, vetem t dhe u jane free.

    Specifiko requested attributes, Dat.Lindja dhe Gjinia, me freedomain variables, t per Dat.Lindjen dhe u per Gjinia.

    Specifiko kushtin per selektimin e nje tuple pas simboli bar ( |

    ) qe do te thote qe vargu i vlerave te caktuara nga variablatqrstuvwx te jete nje tuple i relacionit punonjesi dhe qe vleratper q(EMRI), r(MBIEMRI) te jene Ilir, dhe Mali, respektivisht.