Sari la conținut
EduCamp
Definitivat2021Teorie15 puncte

Subiectul I, cerința 4

Proiectarea unei baze de date

Modelul conceptual cu cinci entități, două chei externe către aceeași tabelă, formele normale, modelul fizic și interogarea clienților care au plătit numerar.

Modelul conceptual

Entitățile

AEROPORT — un aeroport din care pleacă sau în care sosesc zboruri. Atribute: id_aeroport, denumire, oras, cod_iata. Identificator unic: id_aeroport.

ZBOR — o cursă organizată de companie, cu aeroporturile și orele ei. Atribute: id_zbor, id_aerop_sursa, id_aerop_dest, data_ora_plecarii, data_ora_sosirii. Identificator unic: id_zbor.

CLIENT — o persoană înregistrată la companie. Atribute: id_client, nume, prenume, adresa. Identificator unic: id_client.

MOD_PLATA — un mod de plată acceptat la achitarea unui bilet. Atribute: id_mod_plata, denumire. Identificator unic: id_mod_plata.

BILET — biletul cumpărat de un client pentru un zbor, cu modul de plată folosit. Atribute: id_bilet, id_client, id_zbor, id_mod_plata, data_achizitiei. Identificator unic: id_bilet.

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

  • AEROPORT — ZBOR, de tip unu la mai mulți (1:n), de două ori: un aeroport este aeroport sursă pentru mai multe zboruri și aeroport destinație pentru alte zboruri, iar un zbor are un singur aeroport sursă și un singur aeroport destinație.
  • CLIENT — BILET, de tip unu la mai mulți (1:n): un client poate cumpăra mai multe bilete, iar un bilet aparține unui singur client.
  • ZBOR — BILET, de tip unu la mai mulți (1:n): pentru un zbor se vând mai multe bilete, iar un bilet este emis pentru un singur zbor.
  • MOD_PLATA — BILET, de tip unu la mai mulți (1:n): același mod de plată este folosit la mai multe bilete, iar un bilet este achitat printr-un singur mod de plată.

Entitatea BILET este entitatea asociativă care descompune relația mai mulți la mai mulți dintre CLIENT și ZBOR. Enunțul cere ca modul de plată să fie cunoscut „pentru acel zbor”, deci el nu este un atribut al clientului, ci al biletului: același client poate plăti numerar la un zbor și cu cardul la altul.

Respectarea primelor trei forme normale

  • FN1 — fiecare atribut memorează o singură valoare atomică, iar fiecare înregistrare este identificată în mod unic. De aceea numele și prenumele sunt atribute separate, iar biletele cumpărate de un client nu se memorează într-o listă în entitatea CLIENT, ci prin câte o înregistrare în BILET.
  • FN2 — fiecare atribut care nu face parte din cheie depinde de întreaga cheie primară. Cheile primare sunt simple, deci condiția este îndeplinită: în BILET, data_achizitiei depinde de id_bilet, 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 modului de plată nu se scrie ca text în BILET, ci în MOD_PLATA, iar denumirea aeroportului nu se scrie în ZBOR, ci în AEROPORT.

Restricții care trebuie impuse

  • id_aerop_sursa și id_aerop_dest trebuie să fie diferite: un zbor nu poate pleca și sosi în același aeroport.
  • data_ora_sosirii este ulterioară lui data_ora_plecarii.
  • denumire din MOD_PLATA ia valori dintr-o listă predefinită: numerar, card bancar, ordin de plată.
  • cod_iata este unic în AEROPORT.
  • data_achizitiei nu poate fi ulterioară datei plecării zborului pentru care s-a emis biletul.

Modelul fizic

Diagrama celor cinci tabele ale bazei de date și a relațiilor dintre ele 1∞ 1∞ 1∞ 1∞ 1∞ aeroporturi id_aeroportPK denumire oras cod_iata zboruri id_zborPK id_aerop_sursaFK id_aerop_destFK data_ora_plecarii data_ora_sosirii clienti id_clientPK nume prenume adresa bilete id_biletPK id_clientFK id_zborFK id_mod_plataFK data_achizitiei moduri_plata id_mod_plataPK denumire
Cele cinci tabele și relațiile dintre ele. PK — cheie primară, FK — cheie externă. Tabela zboruri are două chei externe către aceeași tabelă, aeroporturi: una pentru aeroportul sursă, alta pentru cel destinație.
TabelaCâmpuriCheie primarăChei externe
aeroporturiid_aeroport, denumire, oras, cod_iataid_aeroport—
zboruriid_zbor, id_aerop_sursa, id_aerop_dest, data_ora_plecarii, data_ora_sosiriiid_zborid_aerop_sursa → aeroporturi, id_aerop_dest → aeroporturi
clientiid_client, nume, prenume, adresaid_client—
moduri_plataid_mod_plata, denumireid_mod_plata—
bileteid_bilet, id_client, id_zbor, id_mod_plata, data_achizitieiid_biletid_client → clienti, id_zbor → zboruri, id_mod_plata → moduri_plata

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.

Te înscrii, alegi în cont când începe cursul și plătești prima lună prin transfer bancar. Pentru a vedea mai întâi cum este scrisă o rezolvare, poți reveni la prima cerință a anului.

Acces la suportul de curs

25 RON / lună, fără ședințe

Ce cuprinde:

  • Acces la toate lecțiile disponibile
  • Suport de curs pentru tematica științifică și metodică
  • Exemple, explicații și exerciții
  • Acces la materialele noi adăugate pe platformă
  • Posibilitatea de a adresa întrebări

Poți alege și variante cu ședințe online, în grup sau individuale. Le vezi pe pagina cursului.

Ai întrebări sau o problemă? Scrie-mi pe WhatsApp, la 0745 874 576.

Înscrie-te Alte varianteCum plătești Login

Actualizat: 28 august 2026