1 / 55

Introducere in BAZE de DATE Modelul relational si algebra relationala

Introducere in BAZE de DATE Modelul relational si algebra relationala. Cosmina Ivan cosmina.ivan@cs.utcluj.ro Departamentul de Calculatoare UNIVERSITATEA TEHNICA CLUJ NAPOCA. Modelul relational si algebra relationala. Modelul relational

clinton-cox
Télécharger la présentation

Introducere in BAZE de DATE Modelul relational si algebra relationala

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. Introducere in BAZE de DATEModelul relational si algebra relationala Cosmina Ivan cosmina.ivan@cs.utcluj.ro Departamentul de Calculatoare UNIVERSITATEA TEHNICA CLUJ NAPOCA

  2. Modelul relational si algebra relationala Modelul relational Operatori de baza in algebra relationala Operatoriaditionali

  3. Sisteme de baze de date prerelationale • Sistemele de tip rețea și ierarhice Apărute în anii 70… old Dezavantaje • Structuri de date complexe (dificil de utilizat și de înțeles) • Nu asigură separare între descrierea logică și fizică a datelor (dependența datelor de program) • Limbaje de programare a bazelor de date de tip navigațional in structurile definite de date => productivitate în scrierea de cod redusă

  4. Modelul de date retea • Honeywell, 1965, masiv adoptat • Avantaje • Permite modelarea de interactiuni complexe • Permite modelari diverse folosind inregistrari si relatii • Limbaj navigational – bazat pe constructii gen FIND, FIND NEXT, GET.. • Permite programatorilor navigare optimala in BD • Dezavantaje • Procesare de natura navigationala si procedurala • BD- o structura complexa – tablou de pointeri ce acceseaza seturi de inregistrari • Nu sustine optimizarea interogarilor

  5. Modelul de date ierarhic • IBM, 1965, formalizat • Avantaje • Simplu de construit și de operat • Corespunde real domeniilor organizationale ierarhice • Limbaj simplu – GET, GET UNIQUE, GET NEXT.. • Dezavantaje • Procesare de natura navigationala si procedurala • BD- o structura liniara de inregistrari • Nu sustine optimizarea interogarilor

  6. Alte modele obiectual, XML • SGBD –OO , in anii 90, pt procesare de date complexe- CAD- object store, Versant, O2... • Standard ODMG-93, ODMG v 3 • SGBD OO pur obiectuale au disparut, Sistemele relationale au incorporat concepte OO – generand o noua categorie SGBD - obiect –relational • Datele pe Web si aplicatii E-commerce • Au la baza modelul XML –similar HTML insa fara taguri predefinite ci adaptabile datelor/aplicatiei • Limbajele de scripting (PhP, Java Script) permit generarea de pagini Web dinamice generate partial dintr-o sursa de date de tip baza de date.

  7. Modelul relational Modelul relational: E.F.Codd, 1970 –IBM (SystemR - primul SQL)), cercetat/experimental IBM research, comercial 1982 Are la bază fundamentare matematică Asigură completa separare a structurii logice de structura fizică Model de date complet • Componente structurale cu constrangeri • Componente dinamice cu operații Rezolvă problemele modelelor anterioare A devenit modelul dominant de date (in produsecomercialeMS-SQL, Oracle, DB2, MySQL, PostGresql) Presupunastazicercetari in domeniulcontroluluiconcurentei , managementuluitranzactiilor, optimizariiinterogarilorsiprocesarilor Standarde – ...SQL3 Avantaje – abstractizare inalta : fizic/conceptuala,limbaj query puternic

  8. Modelul relațional • Informația este reprezentată ca relații între valori • Relația (reprezentată ca o tabelă) este unicaunitate de organizare a datelor • Utilizatorii și programatorii trebuie să cunoască doar descrierea abstractă a relațiilor • Structura fizică (modalitățile de stocare a datelor, pointeri, algoritmii de hashing, structurile arborescente de acces) sunt ascunse utilizatorilor și programatorilor • Oferă un limbaj declarativ pentru interogarea și actualizarea bazei de date (SQL) ( fraza SELECT FROM WHERE)

  9. Concepte de baza • Domeniu • Atribut • Schema relatie • Instanta a schemeirelatiei

  10. Domeniu Domeniu: o multime de valori D = {di| i = 1,…, n }, definit printr-o specificare de tip, unde: D estenumeledomeniului dieste un element al domeniului care satisfaceanumiteconstrangeri Elementele domeniilor sunt atomice (indivizibile) O valoarespeciala, null, apartineoricaruidomeniu(inseamnalipsa de informatiesauvaloarenecunoscuta) Datele sunt de un anumit tip

  11. Atribut • Fiecareatribut al uneirelatiiposeda un nume (un atributeste specific unuianumit domeniu cu nume) • Valorileatributelorsuntatomice (indivizibile, nonmultivaloare,noncompozite), setulvalorilorpermisepentruatribut – domeniulatributului domeniuleste atomic dacamembriisuntatomici Valoareaspecialanull e membra a fiecaruidomeniu

  12. Modelul relational- introducere Relatia r(R): r este variabila, instanta a schemei (tipului) R ●Valoareavariabilei: stareasauextensiunearelatiei ●Numarul de tupluri ale uneirelatii: cardinalitatearelatiei ●Fiecaretupluesteunicintr-o relatie (nu existatupluriduplicat) ●Corespondenta: relatie-> multime de entitati (sau de asocieri); tuplu ->entitate In mod curent: se folosestenotatia R (r) ,atatpentru schema cat sipentrurelatiainsasi

  13. Instantarelatiei atribute (coloane) Nume Strada Oras Ionescu Popescu David Rozelor Albinii Dorobantilor Alba Cluj Brasov tuple (randuri) Client - numele relatiei • Instantauneirelatiireprezintavalorilecurenteale datelorpentru o relatie,suntspecificateprintabela • Un element t al relatieireste o tupla (reprezentatprintr-o linie in tabelarelatiei) • Ordineatuplelor(randurilor, inregistrarilor ) nu e relevanta • Ordineacoloanelornu e relevanta, cardinalitateauneirelatii = numarul de linii din instantacurenta

  14. Schema relationala -formal DEF1. Schema relaţiei: R = {A1,A2, ...Ai,...An} (o mulţime de atribute) DEF2. Relaţia r(R): o mulţime de n-tupluri t, unde: fiecaretuplu t este o mulţime de n perechiordonate <Ai,vi>,unde 1 ≤i ≤n, t = {<A1,v1>,<A2,v2>,...<Ai,vi>, ...<An,vn>} vi este valoarea atributului Ai, vi ∈D(Ai) Din punct de vedere logic, ordinea valorilor atributelor într-un tuplu nu conteaza;

  15. Observatii Observatii asupra celor doua definitii: A doua definitie a relaţiei este mult mai generală decat prima definitie. Dar, prima definitie simplifică notaţiile şi corespunde reprezentării prin tabel a relaţiei şi de aceea va fi folosită în continuare destul de frecvent . În implementările reale, există o anumită ordine a valorilor atributelor memorate in fisiere, dar aceasta nu este relevantă din punct de vedere logic.

  16. Schema relației Schema relaţiei – tip de date complex : descrierea abstractă auneirelaţii (intensiunearelaţiei) Schema relaţiei: R(A1,A2,...Ai,...An), proprietati : Restenumeleschemeirelaţiei atributele sale A1,A2,...Ai,..An fiecare atribut Ai definit pe domeniul său de definiţie, D(Ai) Gradul relaţiei: numărul de atribute ale schemei acelei relatii (n) O relaţie r definita prin schema R(A1,A2,...Ai,...An) este: o mulţime finita de n-tupluri t Ex: STUDENTI (Nume, Prenume, DataNasterii, Adresa, Facultatea)

  17. Produs cartezian Produs cartezian D1xD2 reprezinta o operatie ce preia cele doua seturi D1si D2 si returneaza setul de perechi ordonate astfel incat primul element este din D1 iar cel de al doilea element este din D2 Ex D1 = {1,2,3} D2 = {A,B} D1 x D2 = {(1,A), (2,A), (3,A), (1,B), (2,B), (3,B)}

  18. Instanta unei relatii Instanta unei relatii poate fi deasemenea definita astfel: un subset al produsului cartezian al domeniilor tuturor atributelor din schema relatiei sianume : r(R) inclus in (dom(A1) xdom(A2) x… xdom(An))

  19. Proprietatile relatiilor 1.Numele unei relatii este unic 2.Fiecare celula a unei relatii (valoare dintr-un domeniu de valori) contine o valoare unica, atomica 3.Fiecare atribut al unei relatii are nume distinct 4. Valorile atributelor sunt din acelasi domeniu 5.Fiecare tupla este distincta - nu exista tuple duplicat (deoarece relatiile sunt seturi, in SQL acest lucru nu este adevarat, sunt permise duplicate) 6.Ordinea atributelor nu este relevanta – (difera de modelul matematic!!) 7.Ordinea tuplelor nu are semnificatie

  20. Constrangeri • Fundamentale in bazele de date • lumea reala poseda constrangeri asupra a ceea ce este posibilO baza de date este o abstractizare a lumii reale trebuie sa reflecte aceste constrangeri • Trebuie sa ne putem asigura de faptul ca baza de date este corecta Constrangerile sunt derivate din semantica regulilor de comportament necesare aplicatiei/reguli de bussiness

  21. Chei relationale Super - Cheiea uneirelatii - un subset al atributelorrelatieicesatisfaceproprietatea de identificareunicapentrufiecaretuplaa relatieiprinvalorileatributelorcecompuncheia Cheiecandidat - este o super cheieminimala(pentruaceeasientitate pot existamaimulteatribute cu rolde cheie) • Pentruoricerelatie se desemneazadupaanumitecriterii o cheieprivilegiata din setulcheilorcandidat ca sicheieprimara (distinctiaintreaceastasicelelalteestedoaroperationala)

  22. Cheie primara/straina Cheiaprimara – esteceautilizata din setul de chei candidatepentruidentificareaunica a tuplelorrelatiei In oricerelatieexista cu certitudine o cheie, gasireauneichei = determinareasetului minimal de atributeceoferaidentificareunica Cheie straina - set de atribute dintr-o relatie ce refera o cheie primara din alta relatie

  23. Constrangeri • De domeniu • De chei • De integritate a entitatilor • Integritatereferentiala • De verificarevalori (check)

  24. Constrangeri Constrangeride domeniu • specificafaptul ca fiecareatribut A trebuiesa fie atomic si din domeniuldom(A). Constrangeride chei • Elementeleunui set suntdistincte = > tuplelerelatieisuntdistincte => doua tuple nu posedaacelasi set de valoripentruatributelesale t1[SK] ≠ t2[SK]

  25. Constrangeri Constrangeri de integritate a entitatilor • Dateleincorecte nu pot fistocate in baza de date • Valorilecheiiprimarenu pot finule Atributelece nu continvalori NULL pot fi specificateprinintermediulconstrangerii NOT NULL Constrangeri de integritatereferentiala • Specificateintredouarelatii, utilizatepentru a mentineconsistentaintretuplelerelatiilor • o tupladintr-o relatiecerefera o tupla din altarelatietrebuiesarefere o tuplaexistenta • Cheiastrainaasiguraintegritateareferentiala

  26. Constrangeri • Constrangerileenuntatesunt: Constrangeri FUNDAMENTALE parte a modelului relational, suntsuportate de celemaimulte SGBD • Si, altetipuri de constrangeri pot fi specificate distinct prinanumitecaracteristici de limbaj – proceduristocate, triggere, asertiuni Ex. un angajat nu poate lucra decat la un singur proiect, un angajat trebuie sa fie asignat la cel putin un proiect

  27. Schema bazei de date Specificareaschemeibazei de date • selectarearelatiilor - numirealor • selectareaatributelorpentrurelatiisi a domeniuluilor de valori • specificareacheilorpentrufiecarerelatie • specificareacheilorstrainesi a constrangerilor de integritate DEF1 - Schemabazei de date e setul de scheme pentrurelatiile din baza de date DEF 2 - Baza de date relationalaeste o colectie de relatii cu constrangeri de integritate.

  28. Sisteme total relationale Principii de integritatepentru un SGBD relational • Integritateadomeniului – SGBD verificasintacticsi semantic oricevaloare din BD sauoperatiefolosinddefinitiadomeniului • Integritateaentitatii – relatiei - referaconditiileimpusecheilorprimare de a aveavaloriunicesinenule • Integritateareferintei: daca A e cheieprimara in relatia R1 si B estecomponentauneicheiprimaremultiatribut in relatia R2, B fiinddefinitapeacelasidomeniu ca si A, multimeavalorilorlui B in R2 trebuieinclusa in multimeavalorilorlui A in R1 • Un sistem SGBD este total relational daca • Asiguraprincipiileenuntate • Furnizeaza un LMD echivalentalgebreirelationale

  29. Algebra sicalcul relational • Limbaje de interogaretip Query– limbajespecializatepentruinterogari, prinintermediulcarorautilizatorulsolicitainformatie dinmodelul de date • Limbaje de interogare este bazatpeformalisme :tip algebra relationala, calcul relational petuple, calcul relational de domeniu, etc. • ALGEBRA Relationala – colectie de operatii relationale pentru regasirea datelor, similar algebrei cu numere algebra relationala contine operanzi si un set de operatori • CALCULUL relational – interogareadescrieraspunsulsolicitat ( multimeatuplelorrezultat ) prinspecificareaunuipredicatcetrebuiesatisfacut, fara a specificamodul de calcul(declarativ) (Ex. QBE - ACCES)

  30. Limbaje query Limbaje prin care userii solicita informatii din baza de date Categorii de limbaje procedurale – specifica CUM, pot fi utilizate pentru optimizarea interogarilor declarative – specifica CE, nu sunt utile pentru optimizarea interogarilor , formuleaza simplu interogari Limbaje pure formeaza baza limbajelor de tip query-interogare algebra relationala calculul relational al tuplelor calculul relational al domeniilor

  31. Elemente de algebra relationala • Interogarilesunt create folosind o colectie de operatori • Fiecare operator acceptainstante de relatii ca argumentesireturneaza tot o instantade relatie ca rezultat • Operatoriipot ficompusipentru a forma interogaricomplexe • ALGEBRA RELATIONALA este la baza SGBD relationale, SQL este translatat in algebra relationala • Orice expresie de algebra relationala , e definitain mod recursiv(evaluarea sa) ca fiind o relatie • Expresiaalgebricava fi ulteriorasimilata ( descompusa, analizata) unuiplan pentruevaluareainterogarii(iar sistemelerelationaleutilizeaza algebra relationalapentru a reprezentaacesteplanuri de evaluare)

  32. Elemente de algebra relationala Operatori (unari/binari)utilizatipentruconstruireainterogarilor Operatoriipemultimi • Operatoriipemultimi :reuniunea, intersectia, diferenta, produscartezian Operatorirelationalispeciali • Operatoriceeliminapartidintr-o relatie : selectia, proiectia • Operatiicecombinatupledin douarelatii : produscartezian , Join, reuniunea, diferenta Operatoriaditionali

  33. Definitii • E - expresia de baza in algebra relationala-> o relatie din BD • Fie E1 and E2expresiirelationale ,urmatoarelereprezintaexpresiialgebricerelationale E1 E2, reuniunea E1–E2 diferenta E1 x E2 produscartezian s(E1), selectia - Seste o lista de atribute din E1 p (E1), proiectia - Ppredicatpesteatributele din E1  x(E1), redenumirea - x noulnumepentru E1

  34. Reuniunea (uniunea) A B A B A B     1 2 1 3    1 2 1   2 3 s Notatie : r s Definitie: r s = {t | t  rsau t  s}, t este tupla r seste valid daca 1. r,s au aceeasiaritate (acelasinumar de atribute) 2. Domeniile de atributesuntcompatibile (tip) Relatiile r , s: r  s: r

  35. Diferenta A B   1 1 Notatier – s Definitie : r – s = {t | t r and t  s} Diferenta se efectueazaintrerelatiicompatibile. • 1. rsisposedaaceeasiaritate • 2. Atributeledomeniilorrelatiilor r si s suntcompatibile Relatiiler, s: A B A B r – s:    1 2 1   2 3 s r

  36. Produs cartezian A B C D E   1 2     10 10 20 10 a a b b r s A B C D E         1 1 1 1 2 2 2 2         10 10 20 10 10 10 20 10 a a b b a a b b r xs: Relatiiler, s: Notatie r x s Definitie: r x s = {tq| t  r siq  s} • Se presupune ca atributelerelatiilor r(R) si s(S) suntdisjuncte. (R S = ). • Produsulcartezian – operatie de combinare a tuplelorcelordouarelatii

  37. Selectia Selectiaprintr-un predicat P a uneirelatii r , e o relatiececontinetuplele din relatia r cu proprietatea ca satisfacepredicatul P. Operatorul produce o nouarelatieavanddreptrezultat un subset de tuple cerespectaconditia.

  38. Selectia A B C D Relatia r A=B ^ D > 5 (r)         1 5 12 23 7 7 3 10 A B C D     1 23 7 10 Notatie: p(r), p(r) = {t | t  rsip(t)}undepestepredicatul de selectie predicatulreprezintaoperanziconectatiprinoperatorii :  (and),  (or),  (not) Fiecareoperandpoatefi : <atribut>op <atribut> or <constanta> iaroppoatefi : =, , >, . <.  ( de comparatiesaulogici AND, OR, NOT)

  39. Proiectia A B C A,C (r)     10 20 30 40 1 1 1 2 A C A C     1 1 1 2    1 1 2 = • Notatie: undeA1, A2…An suntatribute , iar r e relatia • Rezultatul e definit ca o relatie de k<=n coloane, obtinutaprineliminarearelatiilornelistate in lista de proiectie Relatia r Proiectiaeste o selectieverticala cu eliminareatuplelorduplicat

  40. Redenumirea • Permitereferireaunuirezultat ca expresierelationalaalgebrica. • Permitereferireauneirelatiiprinmaimultenume • Ex. x (E) returneazaexpresiaE sub numeleX • DacaexpresiaE are aritatean, atunci vareturnarezultatulexpresiei E sub numeleX, si cu atributeleA1 , A2 , …., An .

  41. Operatiiaditionale Operatiiaditionale – nu complementeazaputerea de expresie a operatiilor de baza, DAR simplificainterogarile. • Cuplare (join) • Intersectia • Impartirea • Asignarea

  42. Natural Join • fie rsisrelatii in schemeleRsiS . r s este o relatiepe schema R S , obtinutaastfel: • Se considerafiecarepereche de tupletr din rsits din s. • dacatrsitsposedaaceeasivaloarepentrufiecare din atribute in RS, se vaadaugatuplat la rezultat Ex.: R = (A, B, C, D) S = (E, B, D) • Schema rezultat = (A, B, C, D, E) • relatiarezultata ca urmare a operatiei join rspoate fi definitaastfel: r.A, r.B, r.C, r.D, s.E (r.B = s.Br.D = s.D (r x s))

  43. Natural Join • Se calculeazaprodusulcartezianrxs • se selecteazatuplele din rxspentru care valoareacorespunzatoareatributului din r esteegalacu valoareacorespunzatoare a atributului din s • Se efectueaza o proiectie a rezultatuluipentrueliminacoloanadedublata • Astfelrelatia de cuplareesteechivalentulaplicarii a doioperatori : produsulcartezian al relatiilorurmat de selectiadupa un anumitpredicat • Operatorul e utilizatpentru a combinatuple din douarelatiidiferitepebazaunorinformatiicomune

  44. Natural Join B D E A B C D 1 3 1 2 3 a a a b b           1 2 4 1 2      a a b a b r s A B C D E      1 1 1 1 2      a a a a b      Relatiile r, s: r s

  45. Intersectia (Set-Intersection) A B A B A B r s  2      1 2 1 2 3 s r • Notatie: r s • Definitie : rs = { t | trsits } • Ipoteza: • r, s au aceeasiaritate • atributelersissuntcompatibile • Nota: rs = r – (r – s) Relatiiler, s:

  46. Impartirea r  s Notatie: Potrivitainterogarilorcecontinfraza SQL “for all”. • fie rsisrelatiile in schemeleRsiS R = (A1, …, Am , B1, …, Bn) S = (B1, …, Bn) Rezultatuloperatiei r  s estetot o relatie, iar schema R – S = (A1, …, Am) r  s = { t | t   R-S (r)   u  s ( tu  r ) } undetusemnificaconcatenareatuplelortsiuatfelincatestegenerata o singuratupla

  47. Exemplu impartire • Relatiiler, s: A B C D E D E         a a a a a a a a         a a b a b a b b 1 1 1 1 3 1 1 1 a b 1 1 s r A B C r s:   a a  

  48. Asignare • asignare () permiteexprimarea de interogaricomplexe. Interogareacomplexa se vascrie ca o secventa de asignariexpresii ale carorvalorisuntafisate ca rezultat al interogarii . • Ex.: r  sdevine temp1 R-S (r )temp2 R-S ((temp1 x s ) – R-S,S (r ))result = temp1 – temp2

  49. Algebra relationalaextinsa • Proiectiegeneralizata • Functiiagregat • Variante de Join

  50. Proiectiegeneralizata • Extindeproiectiaprinspecificarea de functiiaritmeticeacceptate in lista de proiectie • E expresierelationalaalgebrica • F1, F2, …, Fn suntexpresiiaritmeticepeconstantesiatribute din schema E.

More Related