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 actualizare, pentru o platformă de streaming.
Modelul conceptual
Entitățile
ABONAT — o persoană înregistrată pe platformă.
Atribute: id_abonat, nume_utilizator, email, data_inregistrarii, tip_abonament.
Identificator unic: id_abonat.
FILM — un film oferit pe platformă.
Atribute: id_film, titlu, an_lansare, id_categorie, descriere.
Identificator unic: id_film.
CATEGORIE — genul în care se încadrează filmul.
Atribute: id_categorie, denumire.
Identificator unic: id_categorie.
VIZIONARE — o vizionare a unui film de către un abonat, la un moment dat.
Atribute: id_vizionare, id_abonat, id_film, data_ora.
Identificator unic: id_vizionare.
REACTIE — o reacție înregistrată de un abonat la o vizionare.
Atribute: id_reactie, id_vizionare, tip_reactie, data_ora.
Identificator unic: id_reactie.
Relațiile dintre entități și cardinalitatea lor
- CATEGORIE — FILM, de tip unu la mai mulți (1:n): o categorie cuprinde mai multe filme, iar un film aparține unei singure categorii.
- ABONAT — VIZIONARE, de tip unu la mai mulți (1:n): un abonat poate avea mai multe vizionări, iar o vizionare aparține unui singur abonat.
- FILM — VIZIONARE, de tip unu la mai mulți (1:n): un film poate fi vizionat de mai multe ori, iar o vizionare se referă la un singur film.
- VIZIONARE — REACTIE, de tip unu la mai mulți (1:n): la o vizionare se pot înregistra mai multe reacții, iar o reacție corespunde unei singure vizionări.
Entitatea VIZIONARE este entitatea asociativă care descompune relația mai mulți la mai mulți dintre ABONAT și FILM. Ea este necesară și pentru că același abonat poate viziona același film de mai multe ori, la momente diferite, cerință explicită a enunțului.
Respectarea primelor trei forme normale
- FN1 — fiecare atribut memorează o singură valoare atomică, iar fiecare înregistrare este identificată în mod unic. De exemplu, într-o înregistrare din VIZIONARE se memorează un singur abonat, un singur film și un singur moment al vizionării. Nu se memorează într-un câmp o listă de filme sau o listă de categorii.
- FN2 — fiecare atribut care nu face parte din cheie depinde de întreaga cheie primară.
Cheile primare fiind simple (câmpuri identificator unic), condiția este îndeplinită: în
VIZIONARE,
data_oradepinde deid_vizionare, nu de o parte a lui. - FN3 — niciun atribut care nu face parte din cheie nu depinde de un alt atribut
necheie. De aceea denumirea categoriei nu se memorează în tabela FILM, ci în tabela
CATEGORIE: altfel
denumirear depinde deid_categorie, care nu este cheie în FILM.
Restricții care trebuie impuse
emailșinume_utilizatorsunt unice în ABONAT.tip_abonamentia valori dintr-o listă predefinită (de exemplu STANDARD, PREMIUM).data_oradintr-o reacție nu poate fi anterioară momentului vizionării la care se referă.an_lansareeste un număr natural care nu poate depăși anul curent.
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
- Actualizarea datelor
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.