Sari la conținut
EduCamp
Definitivat 2024 Teorie 15 puncte

Subiectul I, cerința 4

Proiectarea unei baze de date

Modelul conceptual cu entități, relații și forme normale, modelul fizic cu șapte tabele și interogarea SQL a datelor de difuzare, pentru un furnizor de programe radio.

Modelul conceptual

Entitățile

COMPOZITOR — persoana care a compus piesa. Atribute: id_compozitor, nume. Identificator unic: id_compozitor.

GEN — genul muzical în care se încadrează piesa. Atribute: id_gen, denumire. Identificator unic: id_gen.

INTERPRET — solistul, formația sau orchestra care interpretează piesa. Atribute: id_interpret, denumire, tip (solist, formație sau orchestră). Identificator unic: id_interpret.

PIESA — o înregistrare muzicală aflată în fonoteca postului. Atribute: id_piesa, titlu, id_compozitor, id_gen, id_interpret, an_aparitie, durata. Identificator unic: id_piesa.

EMISIUNE — o emisiune muzicală din grila de programe. Atribute: id_emisiune, denumire, frecventa, data_inceput, data_sfarsit, descriere. Identificator unic: id_emisiune.

REPER_ORAR — un moment din grilă la care este difuzată emisiunea. Atribute: id_reper, id_emisiune, ora, minut. Identificator unic: id_reper.

DIFUZARE — difuzarea efectivă a unei piese în cadrul unei emisiuni, la un moment dat. Atribute: id_difuzare, id_emisiune, id_piesa, data, ora, minut. Identificator unic: id_difuzare.

Relațiile dintre entități și cardinalitatea lor

  • COMPOZITOR — PIESA, de tip unu la mai mulți (1:n): un compozitor poate avea mai multe piese, iar o piesă are un singur compozitor.
  • GEN — PIESA, de tip unu la mai mulți (1:n): un gen cuprinde mai multe piese, iar o piesă aparține unui singur gen.
  • INTERPRET — PIESA, de tip unu la mai mulți (1:n): un interpret are mai multe înregistrări, iar o înregistrare este interpretată de un singur solist, de o singură formație sau de o singură orchestră.
  • EMISIUNE — REPER_ORAR, de tip unu la mai mulți (1:n): o emisiune are mai multe repere orare în grilă, iar un reper aparține unei singure emisiuni.
  • EMISIUNE — DIFUZARE, de tip unu la mai mulți (1:n): în cadrul unei emisiuni se difuzează mai multe piese, iar o difuzare are loc în cadrul unei singure emisiuni.
  • PIESA — DIFUZARE, de tip unu la mai mulți (1:n): o piesă poate fi difuzată de mai multe ori, iar o difuzare se referă la o singură piesă.

Entitatea DIFUZARE este entitatea asociativă care descompune relația mai mulți la mai mulți dintre PIESA și EMISIUNE. Ea este necesară și pentru că aceeași piesă poate fi difuzată de mai multe ori în cadrul aceleiași emisiuni, la date diferite. Fără ea nu se poate răspunde la niciuna dintre cele trei informații calculate cerute în enunț.

Respectarea primelor trei forme normale

  • FN1 — fiecare atribut memorează o singură valoare atomică, iar fiecare înregistrare este identificată în mod unic. De aceea reperele orare din grila unei emisiuni nu se memorează într-un singur câmp, sub forma unei liste de ore, ci într-o entitate separată, REPER_ORAR, cu câte o înregistrare pentru fiecare moment. Tot din acest motiv ora și minutul se memorează ca valori distincte, nu ca un text.
  • FN2 — fiecare atribut care nu face parte din cheie depinde de întreaga cheie primară. Cheile primare fiind simple, condiția este îndeplinită: în DIFUZARE, data, ora și minut depind de id_difuzare, nu de o parte a lui.
  • FN3 — niciun atribut care nu face parte din cheie nu depinde de un alt atribut necheie. De aceea numele compozitorului nu se memorează în PIESA, ci în COMPOZITOR: altfel nume ar depinde de id_compozitor, care nu este cheie în PIESA. La fel se procedează cu genul muzical și cu interpretul.

Restricții care trebuie impuse

  • titlu împreună cu id_compozitor și id_interpret identifică în mod unic o înregistrare: aceeași piesă, interpretată de doi soliști diferiți, este o altă înregistrare în fonotecă.
  • an_aparitie este un număr natural care nu poate depăși anul curent, iar durata este strict pozitivă.
  • ora ia valori între 0 și 23, iar minut între 0 și 59, atât în REPER_ORAR, cât și în DIFUZARE.
  • data_sfarsit a unei emisiuni nu poate fi anterioară lui data_inceput.
  • data unei difuzări trebuie să se afle în perioada în care emisiunea figurează în grila de programe.
  • frecventa ia valori dintr-o listă predefinită: cotidian, săptămânal, lunar.

Modelul fizic

Diagrama celor șapte tabele ale bazei de date și a relațiilor dintre ele 1 1 1 1 1 1 compozitori id_compozitorPK nume genuri id_genPK denumire interpreti id_interpretPK denumire tip piese id_piesaPK titlu id_compozitorFK id_genFK id_interpretFK an_aparitie durata difuzari id_difuzarePK id_emisiuneFK id_piesaFK data ora minut emisiuni id_emisiunePK denumire frecventa data_inceput data_sfarsit descriere repere_orare id_reperPK id_emisiuneFK ora minut
Cele șapte tabele și relațiile dintre ele. PK — cheie primară, FK — cheie externă. Fiecare legătură este de tip unu la mai mulți, dinspre 1 spre ∞.
TabelaCâmpuriCheie primarăChei externe
compozitoriid_compozitor, numeid_compozitor
genuriid_gen, denumireid_gen
interpretiid_interpret, denumire, tipid_interpret
pieseid_piesa, titlu, id_compozitor, id_gen, id_interpret, an_aparitie, durataid_piesaid_compozitor → compozitori, id_gen → genuri, id_interpret → interpreti
emisiuniid_emisiune, denumire, frecventa, data_inceput, data_sfarsit, descriereid_emisiune
repere_orareid_reper, id_emisiune, ora, minutid_reperid_emisiune → emisiuni
difuzariid_difuzare, id_emisiune, id_piesa, data, ora, minutid_difuzareid_emisiune → emisiuni, id_piesa → piese

Rezolvarea se poate citi pe educamp.ro, la adresa de mai sus.

Ce cuprinde rezolvarea

  1. Modelul conceptual
  2. Modelul fizic
  3. Interogarea cerută
  4. Cum se obțin cele trei 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.

Începe săptămâna gratuită Sunt cursant — login

Actualizat: 28 august 2026