Date post: | 15-Jan-2016 |
Category: |
Documents |
Upload: | fmiovidius |
View: | 20 times |
Download: | 0 times |
BAZE DE DATE Curs 2
Lect.dr. Elena Băutu
Facultatea de Matematică și Informatică
Universitatea Ovidius, Constanța
PROIECTAREA BAZELOR DE DATE - METODOLOGIE
Analiza cerințelor
Modelarea logică
Modelarea conceptuală
Diagrame EA, UML șa.
Modelarea fizică - faza de tuning
MODELUL ENTITĂȚI ASOCIAȚII (MEA)
Reprezentare grafică, graf
Noduri Entități
Atribute
Asociații One-to-many
Many-to-one
One-to-one
Many-to-many
Muchii Între noduri entitate și noduri atribute
Între noduri entitate și noduri asociere
Între noduri asociere și noduri atribute
MEA- EXEMPLU
Fie subuniversul cursurilor predate în cadrul unei facultăți, în care ne interesează deopotrivă informații despre studenți, cursuri pe care aceștia le urmează și despre profesorii ce predau aceste cursuri
Mulțimi suport ale asociației
MEA – NOTAȚIA “CLAW” (GHEARĂ)
Uzual, în mediul Oracle, se folosește notația “gheară” pentru a simboliza asociații 1-la-n (one-to-many)
MEA - EXTENSII
Asociațiile many-to-one, one-to-many, one-to-one sunt, matematic, funcții (structurale)
MEA - EXTENSII
Notația propusă pentru a reprezenta asociații many-to-one/one-to-many este de a folosi o săgeată
Refaceți diagrama din slidul anterior folosind noua notație
EXEMPLU
MEA - EXTENSII
Pentru asociații one-to-one, sageată cu capete duble, cu al doilea capat ne-tangent mulțimiii domeniu al funcției
Funcția (atributul) Capital din imaginea de mai jos
Sursa: Christian Mancaș, A completely algorithmic approach…, Apple Press, 2013
MEA - SPECIALIZARE
Relații de specializare (de tipul IS-A)
Punerea în evidență a unor subgrupuri distincte dintr-o mulțime de entități de un anume tip
E.g. Mulțimea studenților străini este inclusă în mulțimea studenților
Submulțimea de entități distincte
moștenește toate atributele entități de bază (inclusiv cheile)
poate avea, în plus, anumite atribute
Participă la asociații unde nu se potrivesc toate instanțele entității ‘părinte’
În sens matematic, relația este de incluziune între mulțimi
MEA - EXTENSII
Incluziunile se modelează extinzând notația anterioară folosind o săgeată care are un capăt notat cu semnul incluziunii (din algebră)
Mulțimea studenților și mulțimea profesorilor sunt, evident, incluse în mulțimea persoanelor de interes
Sursa: Christian Mancaș, A completely algorithmic approach…, Apple Press, 2013
MEA - EXTENSII
Mulțimile calculate, precum și atributele calculate, se vor figura prin linii punctate
Se observă că mulțimea femeilor și mulțimea bărbaților sunt calculate, incluse în mulțimea persoanelor
Atributul Age are de asemenea valoarea calculata
Sursa: Christian Mancaș, A completely algorithmic approach…, Apple Press, 2013
MEA – IERARHII DE ASOCIAȚII
Ierarhii de asociații
Pot exista asociații ce au ca mulțime suport o altă asociație
Reamintim că
Asociații de aritate >2
Există situații când legăturile dintre entități/asociații implică mai mult de 2 mulțimi suport
Astfel de situații trebuie analizate și sunt, de obicei, de evitat
MEA – IERARHII DE ASOCIAȚII
Modelarea participării studenților la cursuri (în scopul gestiunii prezenței)
Profesorii au anumite competențe (pot preda anumite cursuri)
Cursurile se desfășoară în săli de clasă, dupa un anumit orar (între anumite ore, într-o zi din săptămână)
Studenții pot participa la cursuri predate de profesori (care, evident, trebuie să aibă competențele respective)
MEA – IERARHII DE ASOCIAȚII
MEA – IERARHII DE ASOCIAȚII
ORAR este o asociație care are drept mulțimi suport SĂLI și COMPETENȚE
Semnifică orarul la modul generic (e.g., cursul de Baze de date susținut de Elena Bautu este marțea de la 10 la 12 la sala AB1)
CURSURI
Simbolizează cursurile efective ce se desfășoară în cadrul unui semestru anume pentru o anume disciplină predată de un anume profesor
Există asociația Cursul de tip many-to-one, modelată funcțional prin
Cursul : CURSURI -> ORAR
MEA – ASOCIAȚII RECURSIVE
O asociație în care un tip de entități participă de mai multe ori, cu roluri diferite
Exemplul clasic: șeful unor angajați este de asemenea angajat
MEA – CAPCANE DE MODELARE
Un model reprezintă o asociație între tipuri de entități, dar calea între anumite entități din model este ambiguă
Se întâmplă când într-o entitate ‘intră’ două sau mai multe funcții
O entitate este implicată în două sau mai multe relații one-to-many
Problema: ce angajat folosește ce mașină?
Soluție: Introducerea unei asociații (atenție, buclă!)
Fan traps Exemplu
CAPCANE DE MODELARE – FAN TRAPS
La ce facultate lucrează un anumit profesor?
Soluție: restructurarea modelului
Problema Soluția
CAPCANE DE MODELARE – CHASM TRAPS
Un model sugerează existența unei asociații între niște tipuri de entități, dar nu există o cale între aceste entități
Apare când există două asociații ‘many-to-one’, dar nu toate entitățile participă la asociație
Problema: ce proprietăți aparțin de care sedii ale agenției? Pot sa existe agenți care nu au
alocate proprietăți Pot să existe proprietăți care încă
nu sunt alocate unor agenți
Chasm traps Problema
CAPCANE DE MODELARE – CHASM TRAPS
Soluția: se introduce o nouă asociație 1-to-many (funcție) care precizează calea lipsă
EXERCIȚII PROPUSE [1]
Fie subuniversul posesorilor de autovehicule. Ne interesează informații despre persoane (nume, prenume, CNP, data nasterii, localitatea unde s-a născut), despre autovehiculele acestora (tip autovehicul, model, producător, anul fabricației).Ne interesează, de asemenea, unde sunt înregistrate autovehiculele (în ce județ, la ce dată au fost înregistrate, când trebuie să refacă inspecția tehnică periodică). Interesează să putem obține informații precum: câte autovehicule are înregistrate o persoană, câte autovehicule sunt înregistrate într-un județ, câtor autovehicule le expiră ITPul luna aceasta, etc.
EXERCIȚII PROPUSE [2]
O organizație dispune de mai multe clădiri. Fiecare clădire are un nume și o adresă proprie. Sălile din aceste clădiri au de asemenea nume și număr în cadrul clădirii. Fiecare sală are o anumită capacitate (nr de locuri). Sălile au program și pot fi ocupate pentru diferite scopuri, în ca unitate de măsură de timp fiind ora. Se înregistrează pentru fiecare sală când a început să fie folosită, de către cine, și pentru ce durată. Sălile sunt folosite de grupuri de lucru din cadrul organizației. Grupurile de lucru sunt identificate prin număr de grup și persoană de contact. În fiecare sală se găsesc echipamente. Echipamentele au fiecare nume, număr de inventar, descriere. La fiecare folosire a sălii, se înregistrează ce echipamente au fost folosite.
EXERCIȚII PROPUSE [3]
Construiţi o DEA pentru următorul univers de interes („plăţi”): Vânzarea/ cumpărarea (produselor sau serviciilor) se face conform unor documente justificative (de diverse tipuri: facturi, contracte de vânzare-cumpărare etc.) emise de vânzător cumpărătorului, la data vânzării/cumpărării. Plăţile pentru vânzări /cumpărări se justifică tot cu documente (de diverse tipuri: chitanţe pentru plăţi numerar, file de CEC şi ordine de plată pentru plăţile bancare, procese verbale de compensare etc.) emise de cel care încasează banii pentru cel care achită, respectiv de cel care dispune transferul bancar către furnizor. O plată nu se face întotdeauna deodată, pentru o singură vânzare/cumpărare, ci eşalonat, în mai multe tranşe, câteodată grupând împreună tranşe corespunzând mai multor documente de vânzare /cumpărare. Orice vânzător poate fi la rândul său cumpărător şi vice-versa. Despre documente (fie ele de vânza-re/cumpărare sau de plată) interesează tipul, seria, data, emitentul, beneficiarul, suma; despre cele de vânzare/cumpărărare mai interesează şi data scadenţei plăţii; despre documentele de plată bancare mai interesează şi conturile emitentului şi beneficiarului (număr, sucursala bancară ce gestionează contul şi localitatea în care aceasta îşi are sediul); despre plăţi interesează valoarea tuturor tranşelor achitate; de-spre vânzători şi cumpărători interesează denumirea, codul fiscal şi localitatea în care îşi au sediul.
REZUMAT
Modelul Entități Asociații
Elemente clasice
Extensii:
Funcții structurale
Relații de specializare (incluziuni)
Ierarhii de asociații
Asociații recursive
Capcane de modelare
Capcane tip evantai (fan traps)
Capcane tip lacună (chasm traps)
BIBLIOGRAFIE
Baze de date”, Note de curs, Christian Mancaș, Universitatea Ovidius, Constanța
“Baze de date” – curs (Facultatea de Informatică, Univ. Al. I. Cuza, Iași) Profesori: Victor Felea, Mihaela Breabăn, Cosmin
Vârlan
“Database System Concepts”, Avi Silberschatz, Henry F. Korth, S. Sudarshan, McGraw-Hill, January 28, 2010.
Unelte de modelare DIA
Diagramo
Întrebări ?