Subiectul I, cerința 4
Proiectarea unei baze de date
Modelul conceptual cu cinci entități pentru evidența curselor de la hipodrom, formele normale, modelul fizic și comenzile de ștergere a cailor fără înscrieri în ultimii doi ani.
Modelul conceptual
Entitățile
PROPRIETAR — persoana care deține unul sau mai mulți cai.
Atribute: id_proprietar, nume, telefon, email, adresa.
Identificator unic: id_proprietar.
CAL — un cal înregistrat la hipodrom.
Atribute: id_cal, nume, data_nasterii, id_proprietar.
Identificator unic: id_cal.
TIP_CURSA — felul cursei: galop, trap, obstacole.
Atribute: id_tip, denumire.
Identificator unic: id_tip.
CURSA — o cursă organizată de hipodrom, la o dată și o oră precizate.
Atribute: id_cursa, id_tip, data, ora, minut.
Identificator unic: id_cursa.
INSCRIERE — înscrierea unui cal la o cursă, împreună cu rezultatul obținut.
Atribute: id_inscriere, id_cal, id_cursa, a_participat, loc.
Identificator unic: id_inscriere.
Relațiile dintre entități și cardinalitatea lor
- PROPRIETAR — CAL, de tip unu la mai mulți (1:n): un proprietar poate avea mai mulți cai, iar un cal are un singur proprietar.
- TIP_CURSA — CURSA, de tip unu la mai mulți (1:n): dintr-un tip de cursă se organizează mai multe curse, iar o cursă este de un singur tip.
- CAL — INSCRIERE, de tip unu la mai mulți (1:n): un cal poate fi înscris la mai multe curse, iar o înscriere se referă la un singur cal.
- CURSA — INSCRIERE, de tip unu la mai mulți (1:n): la o cursă se înscriu mai mulți cai, iar o înscriere este pentru o singură cursă.
Entitatea INSCRIERE este entitatea asociativă care descompune relația mai mulți la mai mulți
dintre CAL și CURSA. În ea se află și rezultatul, fiindcă locul obținut nu este o însușire a
calului și nici a cursei, ci a participării calului la acea cursă. Atributul a_participat
deosebește calul înscris care nu a luat startul de cel care a alergat: enunțul cere locul „dacă a
participat”, deci cele două situații trebuie să se poată distinge.
Respectarea primelor trei forme normale
- FN1 — fiecare atribut memorează o singură valoare atomică, iar fiecare înregistrare este identificată în mod unic. De aceea ora și minutul startului se memorează ca valori distincte, iar cursele la care a fost înscris un cal nu se trec ca listă în entitatea CAL, ci prin câte o înregistrare în INSCRIERE.
- FN2 — fiecare atribut care nu face parte din cheie depinde de întreaga cheie primară.
Cheile primare fiind simple, condiția este îndeplinită: în INSCRIERE,
locșia_participatdepind deid_inscriere, nu de o parte a lui. - FN3 — niciun atribut care nu face parte din cheie nu depinde de un alt atribut necheie. De aceea datele de contact ale proprietarului nu se memorează în CAL, ci în PROPRIETAR: altfel telefonul ar depinde de proprietar, care nu este cheie în CAL, iar aceleași date ar fi scrise din nou pentru fiecare cal al aceluiași om.
Restricții care trebuie impuse
- Perechea
id_cal,id_cursaeste unică în INSCRIERE: un cal nu poate fi înscris de două ori la aceeași cursă. locse completează numai dacăa_participatare valoarea adevărat; altfel rămâne necompletat.loceste un număr natural nenul, iar două înscrieri la aceeași cursă nu pot avea același loc.oraia valori între 0 și 23, iarminutîntre 0 și 59.data_nasteriinu poate fi ulterioară datei curente, iar data unei curse la care este înscris un cal nu poate fi anterioară datei nașterii lui.
Modelul fizic
cai și inscrieri se face pe id_cal, iar cea dintre curse și inscrieri pe id_cursa.| Tabela | Câmpuri | Cheie primară | Chei externe |
|---|---|---|---|
proprietari | id_proprietar, nume, telefon, email, adresa | id_proprietar | — |
cai | id_cal, nume, data_nasterii, id_proprietar | id_cal | id_proprietar → proprietari |
tipuri_cursa | id_tip, denumire | id_tip | — |
curse | id_cursa, id_tip, data, ora, minut | id_cursa | id_tip → tipuri_cursa |
inscrieri | id_inscriere, id_cal, id_cursa, a_participat, loc | id_inscriere | id_cal → cai, id_cursa → curse |
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
- Ștergerea datelor cerută
- 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.