Subiectul I, cerința 4
Proiectarea unei baze de date
Modelul conceptual cu entități, relații și forme normale, modelul fizic cu tabele și chei, și comanda de adăugare a datelor, pentru o asociație care organizează festivaluri.
Modelul conceptual
Entitățile
FESTIVAL — un festival organizat de asociație.
Atribute: id_festival, denumire, tematica, site.
Identificator unic: id_festival.
TIP_EVENIMENT — felul unui eveniment (concert, expoziție, workshop etc.), împreună cu
normele care trebuie respectate pentru a organiza orice eveniment de acel fel.
Atribute: id_tip, denumire, spatiu_necesar, nr_max_participanti, varsta_minima,
alte_norme.
Identificator unic: id_tip.
LOC — spațiul în care se desfășoară un eveniment.
Atribute: id_loc, denumire, adresa, capacitate.
Identificator unic: id_loc.
CATEGORIE_PUBLIC — categoria publicului țintă (copii, adolescenți, adulți etc.).
Atribute: id_categorie, denumire.
Identificator unic: id_categorie.
EVENIMENT — un eveniment concret, desfășurat în cadrul unui festival.
Atribute: id_eveniment, id_festival, id_tip, denumire, descriere,
data_ora_inceput, durata_minute, id_loc, id_categorie.
Identificator unic: id_eveniment.
Separarea entităților TIP_EVENIMENT și EVENIMENT este cerută explicit de enunț: normele privind spațiul, numărul de participanți și vârsta publicului sunt condiții „pentru a organiza orice eveniment de un anumit tip”, deci sunt proprietăți ale tipului, nu ale unui eveniment anume. Memorate în EVENIMENT, ele s-ar repeta identic la fiecare workshop din bază.
Relațiile dintre entități și cardinalitatea lor
- FESTIVAL — EVENIMENT, de tip unu la mai mulți (1:n): un festival cuprinde mai multe evenimente, iar un eveniment se desfășoară în cadrul unui singur festival.
- TIP_EVENIMENT — EVENIMENT, de tip unu la mai mulți (1:n): unui tip îi corespund mai multe evenimente, iar un eveniment este de un singur tip.
- LOC — EVENIMENT, de tip unu la mai mulți (1:n): în același loc se pot desfășura mai multe evenimente, iar un eveniment se desfășoară într-un singur loc.
- CATEGORIE_PUBLIC — EVENIMENT, de tip unu la mai mulți (1:n): unei categorii de public îi pot fi adresate mai multe evenimente, iar un eveniment se adresează unei singure categorii.
Respectarea primelor trei forme normale
- FN1 — fiecare atribut memorează o singură valoare atomică, iar fiecare înregistrare este identificată în mod unic. Într-o înregistrare din EVENIMENT se memorează un singur festival, un singur tip, un singur loc și un singur moment de început. Nu se memorează într-un câmp al festivalului lista evenimentelor lui și nici, într-un câmp al tipului, lista normelor sub formă de enumerare.
- FN2 — fiecare atribut care nu face parte din cheie depinde de întreaga cheie primară.
Cheile primare fiind simple, formate dintr-un singur câmp identificator, condiția este
îndeplinită: în EVENIMENT,
durata_minutedepinde deid_eveniment, nu de o parte a lui. - FN3 — niciun atribut care nu face parte din cheie nu depinde de un alt atribut necheie.
De aceea
nr_max_participantișivarsta_minimanu se memorează în EVENIMENT, unde ar depinde deid_tip, care nu este cheie acolo, ci în TIP_EVENIMENT. La fel, adresa și capacitatea spațiului nu se memorează în EVENIMENT, ci în LOC.
Restricții care trebuie impuse
denumireeste unică în FESTIVAL, în TIP_EVENIMENT și în CATEGORIE_PUBLIC.durata_minuteeste un număr natural strict pozitiv, iarvarsta_minimaun număr natural.- numărul de participanți la un eveniment nu poate depăși nici capacitatea locului în care se desfășoară, nici numărul maxim admis pentru tipul evenimentului.
data_ora_inceputeste obligatorie pentru orice eveniment: fără ea nu se poate determina care tipuri de evenimente nu au fost organizate în ultimii doi ani.id_festivaleste obligatoriu în EVENIMENT: enunțul cere date despre evenimentele „din cadrul unui festival dat”, deci nu există evenimente în afara unui festival.siteeste singurul atribut opțional al festivalului, enunțul precizând „eventual, adresa site-ului oficial”.
Rezolvarea se poate citi pe educamp.ro, la adresa de mai sus.
S-a încheiat minutul de citit liber.
Ce cuprinde rezolvarea
- Modelul conceptual
- Modelul fizic
- Adăugarea datelor pentru un nou festival
- Cum se obțin cele două informații calculate
Vezi rezolvarea ca și cursant
Cel puțin o cerință din fiecare an este disponibilă gratuit și integral. Pentru a citi toate celelalte rezolvări ale disciplinei, te înscrii la cursul de pregătire.
Cursul cuprinde suportul de curs publicat până acum, care se completează capitol cu capitol, și două întâlniri de câte două ore în fiecare lună. Prima săptămână este gratuită, fără plată și fără card. Dacă vrei să vezi mai întâi cum este scrisă o rezolvare, poți reveni la prima cerință a anului.