+ All Categories
Home > Documents > BD_Curs02

BD_Curs02

Date post: 15-Jan-2016
Category:
Upload: fmiovidius
View: 20 times
Download: 0 times
Share this document with a friend
Description:
curs bd21
27
BAZE DE DATE Curs 2 Lect.dr. Elena Băutu Facultatea de Matematică și Informatică Universitatea Ovidius, Constanța
Transcript
Page 1: BD_Curs02

BAZE DE DATE Curs 2

Lect.dr. Elena Băutu

Facultatea de Matematică și Informatică

Universitatea Ovidius, Constanța

Page 2: BD_Curs02

PROIECTAREA BAZELOR DE DATE - METODOLOGIE

Analiza cerințelor

Modelarea logică

Modelarea conceptuală

Diagrame EA, UML șa.

Modelarea fizică - faza de tuning

Page 3: BD_Curs02

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

Page 4: BD_Curs02

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

Page 5: BD_Curs02

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)

Page 6: BD_Curs02

MEA - EXTENSII

Asociațiile many-to-one, one-to-many, one-to-one sunt, matematic, funcții (structurale)

Page 7: BD_Curs02

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

Page 8: BD_Curs02

EXEMPLU

Page 9: BD_Curs02

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

Page 10: BD_Curs02

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

Page 11: BD_Curs02

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

Page 12: BD_Curs02

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

Page 13: BD_Curs02

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

Page 14: BD_Curs02

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)

Page 15: BD_Curs02

MEA – IERARHII DE ASOCIAȚII

Page 16: BD_Curs02

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

Page 17: BD_Curs02

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

Page 18: BD_Curs02

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

Page 19: BD_Curs02

CAPCANE DE MODELARE – FAN TRAPS

La ce facultate lucrează un anumit profesor?

Soluție: restructurarea modelului

Problema Soluția

Page 20: BD_Curs02

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

Page 21: BD_Curs02

CAPCANE DE MODELARE – CHASM TRAPS

Soluția: se introduce o nouă asociație 1-to-many (funcție) care precizează calea lipsă

Page 22: BD_Curs02

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.

Page 23: BD_Curs02

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.

Page 24: BD_Curs02

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.

Page 25: BD_Curs02

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)

Page 26: BD_Curs02

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

Page 27: BD_Curs02

Întrebări ?