Sari la conținut
EduCamp

Atestat profesional · Informatică

Atestat: baze de date

Se verifică crearea tabelelor și a legăturii dintre ele după o diagramă, popularea lor și interogările cerute.

Modelul 1 Materii și opționale: clasele cu opționale, materiile cu opționale cerute și opționalele cu cel puțin 15 doritori

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes);
  • atributele marcate cu o pot rămâne necompletate.

Tabela de pe partea „mai mulți” a legăturii, Optional, primește în plus câmpul idMaterie, cheie externă către Materie.

Create → Table Design. Tabela Materie:

CâmpulData TypeProprietăți
idMaterieAutoNumbercheie primară
denumireShort TextField Size 50; Required Yes
descriereShort TextField Size 255

Tabela Optional:

CâmpulData TypeProprietăți
idOptionalAutoNumbercheie primară
denumireShort TextField Size 50; Required Yes
clasaNumberField Size Byte; Validation Rule Between 0 And 12; Required Yes
nrDoritoriNumberField Size Integer; Required Yes
idMaterieNumberField Size Long Integer; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Materie și Optional.
  2. Se trage câmpul idMaterie din Materie peste idMaterie din Optional.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Pe linia legăturii apar 1 la Materie și ∞ la Optional, adică o legătură One-To-Many.

3. Popularea tabelelor

Tabelele se completează în Datasheet View. Tabela Materie se completează prima, deoarece integritatea referențială nu acceptă un opțional legat de o materie care nu există.

idMateriedenumiredescriere
1InformaticăProgramare și baze de date
2Matematică
3BiologieȘtiințele vieții
idOptionaldenumireclasanrDoritoriidMaterie
1Robotică9281
2Grafică pe calculator10141
3Programare web11221
4Matematică distractivă5182
5Logică matematică9122
6Ecologie7163
7Educație pentru sănătate9263

Modelul 2 Abonați și intervenții: aniversările de azi, intervențiile pe tipuri și intervențiile unui abonat

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes).

Numele câmpurilor se scriu fără spații. Tabela Interventie, de pe partea „mai mulți” a legăturii, primește în plus câmpul id_abonat, cheie externă către Abonat.

Create → Table Design. Tabela Abonat:

CâmpulData TypeProprietăți
idAutoNumbercheie primară
numeShort TextField Size 30; Required Yes
prenumeShort TextField Size 30; Required Yes
data_nasteriiDate/TimeFormat Short Date; Required Yes

Tabela Interventie:

CâmpulData TypeProprietăți
idiAutoNumbercheie primară
tip_interventieShort TextField Size 20; Validation Rule In ("cuplare","instalare","reparatie"); Required Yes
id_abonatNumberField Size Long Integer; Required Yes; cheie externă

Regula de validare de la tip_interventie primește numai cele trei tipuri din diagramă.

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Abonat și Interventie.
  2. Se trage câmpul id din Abonat peste id_abonat din Interventie.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many: un abonat poate avea mai multe intervenții, iar o intervenție este făcută pentru un singur abonat.

3. Popularea tabelelor

Tabela Abonat se completează prima, în Datasheet View.

idnumeprenumedata_nasterii
1PopaAndrei14.03.1985
2IonescuMaria02.07.1990
3StanRadu14.03.1978
4DobreElena20.11.2001
iditip_interventieid_abonat
1instalare1
2reparatie1
3cuplare2
4reparatie3
5instalare4
6reparatie4

Modelul 3 Calculatoare și componente: componentele unei etichete, garanția depășită și calculatoarele cu componente defecte

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes).

Un calculator conține mai multe componente, deci tabela Componenta primește în plus câmpul idi, cheie externă către Calculator.

Create → Table Design. Tabela Calculator:

CâmpulData TypeProprietăți
idiAutoNumbercheie primară
numar_de_inventarShort TextField Size 20; Required Yes
etichetaShort TextField Size 30; Required Yes

Tabela Componenta:

CâmpulData TypeProprietăți
idcShort TextField Size 10; cheie primară
stareShort TextField Size 10; Validation Rule In ("functional","defect"); Required Yes
data_fabricariiDate/TimeFormat Short Date; Required Yes
idiNumberField Size Long Integer; Required Yes; cheie externă

Codul componentei, idc, este un text scurt, de exemplu HDD-01, din care se vede ce piesă este.

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Calculator și Componenta.
  2. Se trage câmpul idi din Calculator peste idi din Componenta.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Calculator și ∞ la Componenta.

3. Popularea tabelelor

Tabela Calculator se completează prima, în Datasheet View.

idinumar_de_inventareticheta
1INV-1001Laborator 1
2INV-1002Laborator 1
3INV-2001Secretariat
idcstaredata_fabricariiidi
HDD-01functional10.05.20231
RAM-01defect20.01.20251
SURSA-02functional15.09.20222
HDD-02defect03.11.20232
RAM-03functional30.06.20253
MON-03functional12.02.20213

4. Calculatoarele cu o etichetă citită și componentele lor

Create → Query Design → tabelele Calculator și Componenta → în grilă:

  • Calculator.numar_de_inventar, Sort Ascending;
  • Calculator.eticheta, Criteria [Eticheta:], fără bifa Show;
  • Componenta.idc, Componenta.stare, Componenta.data_fabricarii.

Interogarea se salvează cu numele ComponenteEticheta.

Modelul 4 Pictori și tablouri: aniversările din luna curentă, cel mai tânăr pictor și tablourile ordonate după dimensiune

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes);
  • atributele marcate cu o pot rămâne necompletate.

Tabela Tablou, de pe partea „mai mulți” a legăturii, primește în plus câmpul Cod_pictor, cheie externă către Pictor.

Create → Table Design. Tabela Pictor:

CâmpulData TypeProprietăți
Cod_pictorAutoNumbercheie primară
NumeShort TextField Size 30; Required Yes
PrenumeShort TextField Size 30; Required Yes
Data_nastereDate/TimeFormat Short Date; Required Yes
Descriere_activitateLong Text—

Tabela Tablou:

CâmpulData TypeProprietăți
Cod_tablouAutoNumbercheie primară
DenumireShort TextField Size 50; Required Yes
Anul_realizariiNumberField Size Integer; Required Yes
LungimeNumberField Size Integer (centimetri); Required Yes
LatimeNumberField Size Integer (centimetri); Required Yes
PretCurrency—
Cod_pictorNumberField Size Long Integer; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Pictor și Tablou.
  2. Se trage câmpul Cod_pictor din Pictor peste Cod_pictor din Tablou.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many: un pictor poate avea mai multe tablouri, iar un tablou are un singur pictor.

3. Popularea tabelelor

Tabela Pictor se completează prima, în Datasheet View.

Cod_pictorNumePrenumeData_nastereDescriere_activitate
1MarinIoana12.05.1975Pictură în ulei, peisaj
2DinuVictor03.11.1988Portret
3AvramElena27.05.1992
4DinuAndrei18.02.1969Natură statică
Cod_tablouDenumireAnul_realizariiLungimeLatimePretCod_pictor
1Câmp cu maci201080604.5001
2Iarna la munte2015100706.0001
3Portret de fată201850403.0002
4Autoportret202060502
5Liniște2021120807.5003
6Flori de câmp200540301.5004

4. Pictorii cu aniversarea în luna curentă

Funcția Month întoarce luna dintr-o dată, iar Date() întoarce data curentă.

Create → Query Design → tabela Pictor → în grilă:

  • Nume, Prenume, Data_nastere;
  • Luna: Month([Data_nastere]), Criteria Month(Date()), fără bifa Show.

Interogarea se salvează cu numele AniversariLuna.

SELECT Nume, Prenume, Data_nastere
FROM Pictor
WHERE Month(Data_nastere) = Month(Date());

Rulată în luna mai, interogarea afișează:

NumePrenumeData_nastere
MarinIoana12.05.1975
AvramElena27.05.1992

5. Cel mai tânăr pictor

Cel mai tânăr pictor are cea mai mare dată de naștere. Ea se obține cu o subinterogare, iar interogarea principală afișează pictorul cu această dată.

Modelul 5 Profesori și cursuri: durata totală în zile de formare, cel mai lung curs al fiecărui profesor și cursurile unui profesor

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes).

Un profesor susține mai multe cursuri, deci tabela Curs primește în plus câmpul id_profesor, cheie externă către Profesor.

Create → Table Design. Tabela Profesor:

CâmpulData TypeProprietăți
idAutoNumbercheie primară
numeShort TextField Size 30; Required Yes
prenumeShort TextField Size 30; Required Yes

Tabela Curs:

CâmpulData TypeProprietăți
idcAutoNumbercheie primară
denumireShort TextField Size 50; Required Yes
nr_locuriNumberField Size Integer; Required Yes
durataNumberField Size Integer (ore); Required Yes
id_profesorNumberField Size Long Integer; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Profesor și Curs.
  2. Se trage câmpul id din Profesor peste id_profesor din Curs.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Profesor și ∞ la Curs.

3. Popularea tabelelor

Tabela Profesor se completează prima, în Datasheet View.

idnumeprenume
1GeorgescuAna
2MateiCristian
3PavelIrina
idcdenumirenr_locuridurataid_profesor
1Evaluarea online25241
2Proiectarea lecției20401
3Programare în C++15602
4Baze de date5322
5Comunicare didactică30163
6Educație incluzivă4243

4. Durata totală în zile de formare

Se adună duratele tuturor cursurilor, în ore, iar suma se împarte la 8.

Create → Query Design → tabela Curs → Totals (Σ) → în rândul Field se scrie ZileFormare: Sum([durata])/8, iar pe rândul Total se alege Expression. Interogarea se salvează cu numele DurataTotala.

SELECT SUM(durata) / 8 AS ZileFormare
FROM Curs;

Modelul 6 Apartamente și locatari: locatarii cu restanțe, cea mai mare datorie și colegii de la același loc de muncă

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes).

Într-un apartament locuiesc mai mulți locatari, deci tabela Locatar primește în plus câmpul ida, cheie externă către Apartament.

Create → Table Design. Tabela Apartament:

CâmpulData TypeProprietăți
idaAutoNumbercheie primară
NumarNumberField Size Integer; Required Yes
Numar_camereNumberField Size Byte; Required Yes
suma_restantaCurrencyDefault Value 0; Required Yes

Tabela Locatar:

CâmpulData TypeProprietăți
idlAutoNumbercheie primară
NumeShort TextField Size 30; Required Yes
PrenumeShort TextField Size 30; Required Yes
Loc_de_muncaShort TextField Size 50; Required Yes
idaNumberField Size Long Integer; Required Yes; cheie externă

Suma restantă se ține la apartament, deoarece întreținerea se plătește pe apartament. Un apartament fără datorii are suma_restanta 0.

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Apartament și Locatar.
  2. Se trage câmpul ida din Apartament peste ida din Locatar.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Apartament și ∞ la Locatar.

3. Popularea tabelelor

Tabela Apartament se completează prima, în Datasheet View.

idaNumarNumar_cameresuma_restanta
1120
223450
332120
444450
idlNumePrenumeLoc_de_muncaida
1EneMihaiSpitalul Județean1
2EneLauraȘcoala Gimnazială nr. 31
3LazărDanPrimăria2
4LazărAnaSpitalul Județean2
5RusuIonPrimăria3
6TudorCarmenSpitalul Județean4

4. Numărul locatarilor cu restanțe

Un locatar are restanțe dacă apartamentul în care locuiește are suma_restanta mai mare decât 0.

Modelul 7 Clienți și reclame: reclamele unui client cu prețul plătit, cea mai lungă reclamă și tariful minim pe minut pentru fiecare cod fiscal

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes).

Numele câmpurilor se scriu fără spații și fără /: Cod_fiscal, tarif_minut. Un client comandă mai multe reclame, deci tabela Reclama primește în plus câmpul idc, cheie externă către Client.

Create → Table Design. Tabela Client:

CâmpulData TypeProprietăți
idcAutoNumbercheie primară
NumeShort TextField Size 50; Required Yes
AdresaShort TextField Size 100; Required Yes
Cod_fiscalShort TextField Size 12; Required Yes; Indexed Yes (No Duplicates)

Tabela Reclama:

CâmpulData TypeProprietăți
idrAutoNumbercheie primară
DenumireShort TextField Size 50; Required Yes
DurataNumberField Size Single (minute); Required Yes
Nr_de_difuzariNumberField Size Integer; Required Yes
tarif_minutCurrencyRequired Yes
idcNumberField Size Long Integer; Required Yes; cheie externă

Durata este de tip Single, pentru că o reclamă poate dura și o fracțiune de minut, de exemplu 0,5.

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Client și Reclama.
  2. Se trage câmpul idc din Client peste idc din Reclama.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Client și ∞ la Reclama.

3. Popularea tabelelor

Tabela Client se completează prima, în Datasheet View.

idcNumeAdresaCod_fiscal
1SC Alfa Prod SRLStr. Florilor 10RO1234567
2SC Beta Com SRLBd. Unirii 5RO2345678
3SC Gama Serv SRLStr. Mare 22RO3456789
idrDenumireDurataNr_de_difuzaritarif_minutidc
1Lapte proaspăt0,5402001
2Iaurt natural1201801
3Telefoane noi2152502
4Reduceri de iarnă651502
5Service auto3102203
6Spălătorie auto1,5122403

4. Reclamele unui client și prețul plătit

Prețul unei reclame este durata înmulțită cu numărul de difuzări și cu tariful pe minut.

Modelul 8 Domnitori și evenimente: domniile de cel puțin 5 ani, evenimentele fiecărui domnitor și domnitorii dintr-un interval

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes).

Un domnitor a inițiat mai multe evenimente, deci tabela Eveniment primește în plus câmpul id_domnitor, cheie externă către Domnitor. Anii se rețin ca numere.

Create → Table Design. Tabela Domnitor:

CâmpulData TypeProprietăți
idAutoNumbercheie primară
numeShort TextField Size 50; Required Yes
aninceputDomnieNumberField Size Integer; Required Yes
ansfDomnieNumberField Size Integer; Required Yes
anNastereNumberField Size Integer; Required Yes
anDecesNumberField Size Integer; Required Yes

Tabela Eveniment:

CâmpulData TypeProprietăți
ideAutoNumbercheie primară
denumireShort TextField Size 100; Required Yes
anNumberField Size Integer; Required Yes
id_domnitorNumberField Size Long Integer; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Domnitor și Eveniment.
  2. Se trage câmpul id din Domnitor peste id_domnitor din Eveniment.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Domnitor și ∞ la Eveniment.

3. Popularea tabelelor

Tabela Domnitor se completează prima, în Datasheet View.

idnumeaninceputDomnieansfDomnieanNastereanDeces
1Ioan Vodă cel Cumplit1572157415211574
2Mihai Viteazul1593160015581601
3Vasile Lupu1634165315951661
4Constantin Brâncoveanu1688171416541714
5Alexandru Ioan Cuza1859186618201873
idedenumireanid_domnitor
1Bătălia de la Jiliște15741
2Bătălia de la Călugăreni15952
3Unirea din 160016002
4Tipărirea „Cărții românești de învățătură”16463
5Ctitorirea Mănăstirii Hurezi16904
6Unirea Principatelor18595
7Legea rurală18645

4. Domnitorii cu domnia de cel puțin 5 ani

Durata domniei este diferența dintre anul de sfârșit și anul de început.

Create → Query Design → tabela Domnitor → în grilă:

Modelul 9 Specii și animale: cel mai vârstnic urs, vârsta animalelor pe specii și animalele unei specii

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes);
  • atributul marcat cu ° poate rămâne necompletat.

O specie este reprezentată de mai multe animale, deci tabela Animal primește în plus câmpul ids, cheie externă către Specie.

Create → Table Design. Tabela Specie:

CâmpulData TypeProprietăți
idsAutoNumbercheie primară
DenumireShort TextField Size 30; Required Yes
CaracteristiciShort TextField Size 255

Tabela Animal:

CâmpulData TypeProprietăți
idaAutoNumbercheie primară
NumeShort TextField Size 30; Required Yes
Data_nasteriiDate/TimeFormat Short Date; Required Yes
idsNumberField Size Long Integer; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Specie și Animal.
  2. Se trage câmpul ids din Specie peste ids din Animal.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Specie și ∞ la Animal.

3. Popularea tabelelor

Tabela Specie se completează prima, în Datasheet View.

idsDenumireCaracteristici
1ursmamifer omnivor
2lupmamifer carnivor
3vulpe
idaNumeData_nasteriiids
1Martin10.04.20081
2Bruno25.01.20121
3Masha30.06.20151
4Akela05.03.20162
5Fulger12.09.20192
6Roșcata02.05.20213

4. Cel mai vârstnic urs

Cel mai vârstnic urs are cea mai mică dată de naștere dintre urși. Subinterogarea calculează această dată numai pentru specia urs, iar interogarea principală afișează ursul născut atunci.

Create → Query Design → SQL View:

Modelul 10 Seturi de întrebări: întrebările după domeniu și dificultate, numărul de întrebări din fiecare set și enunțurile unui set

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes).

SET este cuvânt rezervat în SQL, deci tabela se numește Set_intrebari. Un set conține mai multe întrebări, iar tabela Intrebare primește în plus câmpul ids, cheie externă către Set_intrebari.

Create → Table Design. Tabela Set_intrebari:

CâmpulData TypeProprietăți
idsAutoNumbercheie primară
NrNumberField Size Integer; Required Yes; Indexed Yes (No Duplicates)

Tabela Intrebare:

CâmpulData TypeProprietăți
idiAutoNumbercheie primară
EnuntLong TextRequired Yes
DomeniuShort TextField Size 30; Required Yes
Grad_dificultateNumberField Size Byte; Validation Rule Between 1 And 3; Required Yes
idsNumberField Size Long Integer; Required Yes; cheie externă

Gradul de dificultate se codifică prin numere: 1 pentru ușor, 2 pentru mediu, 3 pentru dificil.

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Set_intrebari și Intrebare.
  2. Se trage câmpul ids din Set_intrebari peste ids din Intrebare.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Set_intrebari și ∞ la Intrebare.

3. Popularea tabelelor

Tabela Set_intrebari se completează prima, în Datasheet View.

idsNr
11
22
33
idiEnuntDomeniuGrad_dificultateids
1Cine are prioritate la o intersecție nedirijată?reguli de prioritate11
2Care este viteza maximă admisă pentru autoturisme în localitate?regim de viteză11
3Ce sancțiune se aplică pentru depășirea vitezei maxime admise cu peste 50 km/h?sancțiuni31
4Cine are prioritate într-un sens giratoriu?reguli de prioritate22
5Care este viteza maximă admisă pentru autoturisme pe autostradă?regim de viteză12
6În ce situații se reține permisul de conducere?sancțiuni23
7Cum se trece printr-o intersecție cu semaforul defect?reguli de prioritate23

Modelul 11 Stăpâni și câini: câinii cu un nume dat, numărul de câini ai fiecărui stăpân și câinii pe categorii de premii

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes);
  • atributele marcate cu o pot rămâne necompletate.

Un stăpân are mai mulți câini, deci tabela Caine primește în plus câmpul CNP, cheie externă către Stapan. CNP-ul are 13 cifre și nu intră în calcule, deci se reține ca text.

Create → Table Design. Tabela Stapan:

CâmpulData TypeProprietăți
CNPShort TextField Size 13; cheie primară
NumeShort TextField Size 50; Required Yes
AdresaShort TextField Size 100; Required Yes
TelefonShort TextField Size 15

Tabela Caine:

CâmpulData TypeProprietăți
ID_caineAutoNumbercheie primară
NumeShort TextField Size 30; Required Yes
PremiuNumberField Size Byte; Validation Rule Between 0 And 3; Required Yes
ObservatiiShort TextField Size 255
CNPShort TextField Size 13; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Stapan și Caine.
  2. Se trage câmpul CNP din Stapan peste CNP din Caine.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Stapan și ∞ la Caine.

3. Popularea tabelelor

Tabela Stapan se completează prima, în Datasheet View.

CNPNumeAdresaTelefon
2850312226711Pop MariaStr. Teilor 40722111222
1790825226712Crăciun VladStr. Lungă 17
2920105226713Barbu AnaStr. Morii 90744333444
ID_caineNumePremiuObservatiiCNP
1Rex1ciobănesc german2850312226711
2Azor02850312226711
3Rex31790825226712
4Bella21790825226712
5Max01790825226712
6Luna1labrador2920105226713

4. Câinii cu numele citit de la tastatură

Create → Query Design → tabelele Stapan și Caine → în grilă:

Modelul 12 Edituri și cărți: cărțile dintr-un domeniu, cărțile fiecărei edituri și cărțile pe domenii

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes);
  • atributul marcat cu o poate rămâne necompletat.

O editură publică mai multe cărți, deci tabela Carte primește în plus câmpul Cod_editura, cheie externă către Editura.

Create → Table Design. Tabela Editura:

CâmpulData TypeProprietăți
Cod_edituraAutoNumbercheie primară
DenumireShort TextField Size 50; Required Yes
AdresaShort TextField Size 100; Required Yes
TelefonShort TextField Size 15

Tabela Carte:

CâmpulData TypeProprietăți
Cod_carteAutoNumbercheie primară
TitluShort TextField Size 100; Required Yes
AutorShort TextField Size 50; Required Yes
DomeniuShort TextField Size 30; Required Yes
Cod_edituraNumberField Size Long Integer; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Editura și Carte.
  2. Se trage câmpul Cod_editura din Editura peste Cod_editura din Carte.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Editura și ∞ la Carte.

3. Popularea tabelelor

Tabela Editura se completează prima, în Datasheet View.

Cod_edituraDenumireAdresaTelefon
1Editura AlfaBucurești, Str. Cărții 10211234567
2Editura DeltaIași, Str. Păcurari 5
3Editura OrizontCluj-Napoca, Str. Horea 80264123456
Cod_carteTitluAutorDomeniuCod_editura
1IonLiviu Rebreanuliteratură1
2Enigma OtilieiGeorge Călinesculiteratură2
3Probleme de informaticăPop Danielinformatică1
4Baze de dateMarin Ioanainformatică3
5Istoria românilorDinu Mihaiistorie3
6Amintiri din copilărieIon Creangăliteratură3

Modelul 13 Județe și localități: localitățile unui județ, totalurile pe județe și lista localităților cu județul lor

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes);
  • atributele marcate cu o pot rămâne necompletate.

Un județ are mai multe localități, deci tabela Localitate primește în plus câmpul Cod_judet, cheie externă către Judet. Codul județului este indicativul auto, de exemplu IS.

Create → Table Design. Tabela Judet:

CâmpulData TypeProprietăți
Cod_judetShort TextField Size 2; cheie primară
DenumireShort TextField Size 30; Required Yes
ResedintaShort TextField Size 30; Required Yes
ObservatiiShort TextField Size 255

Tabela Localitate:

CâmpulData TypeProprietăți
Cod_localitateAutoNumbercheie primară
DenumireShort TextField Size 30; Required Yes
SuprafataNumberField Size Double (km²); Required Yes
PopulatieNumberField Size Long Integer; Required Yes
ObservatiiShort TextField Size 255
Cod_judetShort TextField Size 2; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Judet și Localitate.
  2. Se trage câmpul Cod_judet din Judet peste Cod_judet din Localitate.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Judet și ∞ la Localitate.

3. Popularea tabelelor

Tabela Judet se completează prima, în Datasheet View. Suprafețele și populațiile sunt rotunjite.

Cod_judetDenumireResedintaObservatii
ISIașiIași
CJClujCluj-Napoca
BVBrașovBrașov
Cod_localitateDenumireSuprafataPopulatieObservatiiCod_judet
1Iași94272000municipiuIS
2Pașcani7530000municipiuIS
3Cluj-Napoca180287000municipiuCJ
4Turda9143000municipiuCJ
5Dej10931000municipiuCJ
6Brașov267238000municipiuBV

4. Localitățile dintr-un județ citit de la tastatură

Utilizatorul scrie denumirea județului, nu codul, deci criteriul se pune pe Judet.Denumire.

Modelul 14 Cluburi și sportivi: sportivii unui club, media vârstelor pe cluburi și sportivii de o anumită vârstă

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes);
  • atributele marcate cu o pot rămâne necompletate.

Un club are mai mulți sportivi, deci tabela Sportiv primește în plus câmpul Cod_club, cheie externă către Club. CNP-ul are 13 cifre și se reține ca text.

Create → Table Design. Tabela Club:

CâmpulData TypeProprietăți
Cod_clubAutoNumbercheie primară
DenumireShort TextField Size 50; Required Yes
LocalitateShort TextField Size 30; Required Yes
AdresaShort TextField Size 100; Required Yes
ObservatiiShort TextField Size 255

Tabela Sportiv:

CâmpulData TypeProprietăți
CNPShort TextField Size 13; cheie primară
NumeShort TextField Size 30; Required Yes
PrenumeShort TextField Size 30; Required Yes
AdresaShort TextField Size 100; Required Yes
VarstaNumberField Size Byte; Required Yes
ObservatiiShort TextField Size 255
Cod_clubNumberField Size Long Integer; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Club și Sportiv.
  2. Se trage câmpul Cod_club din Club peste Cod_club din Sportiv.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Club și ∞ la Sportiv.

3. Popularea tabelelor

Tabela Club se completează prima, în Datasheet View.

Cod_clubDenumireLocalitateAdresaObservatii
1CS ViitorulIașiStr. Sportului 2
2CSM OlimpiaBrașovStr. Stadionului 7
3CS EnergiaCluj-NapocaStr. Parcului 11

Modelul 15 Țări și orașe: orașele unei țări, populația totală pe țări și orașele cu populația minimă și maximă

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes);
  • atributele marcate cu o pot rămâne necompletate.

Numele tabelelor se scriu fără diacritice: Tara și Oras. O țară are mai multe orașe, deci tabela Oras primește în plus câmpul Cod_tara, cheie externă către Tara.

Create → Table Design. Tabela Tara:

CâmpulData TypeProprietăți
Cod_taraAutoNumbercheie primară
DenumireShort TextField Size 40; Required Yes
CapitalaShort TextField Size 40; Required Yes
ObservatiiShort TextField Size 255

Tabela Oras:

CâmpulData TypeProprietăți
Cod_orasAutoNumbercheie primară
DenumireShort TextField Size 40; Required Yes
An_atestareNumberField Size Integer; Required Yes
PopulatiaNumberField Size Long Integer; Required Yes
ObservatiiShort TextField Size 255
Cod_taraNumberField Size Long Integer; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Tara și Oras.
  2. Se trage câmpul Cod_tara din Tara peste Cod_tara din Oras.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Tara și ∞ la Oras.

3. Popularea tabelelor

Tabela Tara se completează prima, în Datasheet View. Populațiile sunt rotunjite.

Cod_taraDenumireCapitalaObservatii
1RomâniaBucurești
2Republica MoldovaChișinău
3UngariaBudapesta
Cod_orasDenumireAn_atestarePopulatiaObservatiiCod_tara
1București14591716000capitala1
2Iași14082720001
3Sibiu11911340001
4Chișinău1436532000capitala2
5Bălți14211030002
6Szeged11831600003
7Debrețin12352000003

Modelul 16 Proprietari și autovehicule: autovehiculele unei mărci, proprietarii pe un interval de ani și cel mai nou și cel mai vechi autovehicul pe mărci

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes).

Un proprietar are mai multe autovehicule, deci tabela Autovehicul primește în plus câmpul CNP, cheie externă către Proprietar.

Create → Table Design. Tabela Proprietar:

CâmpulData TypeProprietăți
CNPShort TextField Size 13; cheie primară
NumeShort TextField Size 30; Required Yes
PrenumeShort TextField Size 30; Required Yes
AdresaShort TextField Size 100; Required Yes
TelefonShort TextField Size 15; Required Yes

Tabela Autovehicul:

CâmpulData TypeProprietăți
Numar_inmatriculareShort TextField Size 10; cheie primară
MarcaShort TextField Size 30; Required Yes
ModelShort TextField Size 30; Required Yes
CuloareShort TextField Size 20; Required Yes
An_fabricatieNumberField Size Integer; Required Yes
CNPShort TextField Size 13; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Proprietar și Autovehicul.
  2. Se trage câmpul CNP din Proprietar peste CNP din Autovehicul.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Proprietar și ∞ la Autovehicul.

3. Popularea tabelelor

Tabela Proprietar se completează prima, în Datasheet View.

CNPNumePrenumeAdresaTelefon
1800512226721StoicaMihaiStr. Viilor 30723000111
2870920226722NeaguAnaStr. Plopilor 120745000222
1750227226723FloreaDanBd. Independenței 80756000333
Numar_inmatriculareMarcaModelCuloareAn_fabricatieCNP
IS-10-ABCDaciaLoganalb20151800512226721
IS-22-XYZDaciaDustergri20211800512226721
B-123-DEFVolkswagenGolfnegru20122870920226722
CJ-07-MNPDaciaSanderoroșu20182870920226722
BV-45-RSTVolkswagenPassatalbastru20191750227226723
IS-33-KLMFordFocusalb20101750227226723

4. Autovehiculele unei mărci citite de la tastatură

Create → Query Design → tabela Autovehicul → în grilă Numar_inmatriculare, Marca, Model, Culoare, An_fabricatie, cu Criteria [Marca:] la Marca. Interogarea se salvează cu numele AutovehiculeMarca.

SELECT Numar_inmatriculare, Marca, Model, Culoare, An_fabricatie
FROM Autovehicul
WHERE Marca = [Marca:];

Pentru Dacia se afișează:

Numar_inmatriculareMarcaModelCuloareAn_fabricatie
IS-10-ABCDaciaLoganalb2015
IS-22-XYZDaciaDustergri2021
CJ-07-MNPDaciaSanderoroșu2018

Modelul 17 Companii și angajați: companiile dintr-un domeniu, companiile pe județe cu numărul de angajați și totalul angajaților pe județe

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes).

Numele câmpurilor se scriu fără spații: Cod_judet. O companie are mai mulți angajați, deci tabela Angajat primește în plus câmpul Cod_companie, cheie externă către Companie.

Create → Table Design. Tabela Companie:

CâmpulData TypeProprietăți
Cod_companieAutoNumbercheie primară
DenumireShort TextField Size 50; Required Yes
Cod_judetShort TextField Size 2; Required Yes
AdresaShort TextField Size 100; Required Yes
DomeniuShort TextField Size 30; Required Yes

Tabela Angajat:

CâmpulData TypeProprietăți
CNPShort TextField Size 13; cheie primară
NumeShort TextField Size 30; Required Yes
PrenumeShort TextField Size 30; Required Yes
AdresaShort TextField Size 100; Required Yes
FunctiaShort TextField Size 30; Required Yes
Cod_companieNumberField Size Long Integer; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Companie și Angajat.
  2. Se trage câmpul Cod_companie din Companie peste Cod_companie din Angajat.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Companie și ∞ la Angajat.

3. Popularea tabelelor

Tabela Companie se completează prima, în Datasheet View. Codul județului este indicativul auto.

Cod_companieDenumireCod_judetAdresaDomeniu
1SC Construct Plus SRLISIași, Str. Păcurari 40construcții
2SC Soft Data SRLISIași, Bd. Copou 12informatică
3SC Agro Verde SRLBVBrașov, Str. Zizinului 9agricultură
4SC Cod Rapid SRLCJCluj-Napoca, Str. Observatorului 3informatică
CNPNumePrenumeAdresaFunctiaCod_companie
1850101226741PopaIonIașiinginer1
1900202226742RusuDanIașizidar1
2950303226743MateiAnaIașiprogramator2
1920404226744VladSorinIașiprogramator2
2880505226745ComanLiaBrașovagronom3
1970606226746LupuRaduCluj-Napocaprogramator4
2990707226747PavelIoanaCluj-Napocatester4

Modelul 18 Clădiri și apartamente: clădirile cu un număr de niveluri, clădirile pe tipuri cu numărul de apartamente și numărul mediu de camere pe adrese

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes);
  • atributele marcate cu o pot rămâne necompletate.

O clădire conține mai multe apartamente, deci tabela Apartament primește în plus câmpul Cod_cladire, cheie externă către Cladire.

Create → Table Design. Tabela Cladire:

CâmpulData TypeProprietăți
Cod_cladireAutoNumbercheie primară
AdresaShort TextField Size 100; Required Yes
TipShort TextField Size 20; Required Yes
NiveleNumberField Size Byte; Required Yes
ObservatiiShort TextField Size 255

Tabela Apartament:

CâmpulData TypeProprietăți
Cod_apartamentAutoNumbercheie primară
Nr_camereNumberField Size Byte; Required Yes
EtajNumberField Size Byte; Required Yes
ObservatiiShort TextField Size 255
Cod_cladireNumberField Size Long Integer; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Cladire și Apartament.
  2. Se trage câmpul Cod_cladire din Cladire peste Cod_cladire din Apartament.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Cladire și ∞ la Apartament.

3. Popularea tabelelor

Tabela Cladire se completează prima, în Datasheet View.

Cod_cladireAdresaTipNiveleObservatii
1Str. Florilor 5bloc4
2Str. Teilor 12bloc10
3Str. Viilor 7vilă2
4Bd. Unirii 20bloc4
Cod_apartamentNr_camereEtajObservatiiCod_cladire
1211
2321
3431
4252
5192
6313
7204
8324

Modelul 19 Diriginți și elevi: diriginții cu o specialitate dată, mediile minime și maxime pe clase și numărul elevilor cu medii peste 8

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes).

Un diriginte are în grijă mai mulți elevi, deci tabela Elev primește în plus câmpul CNP_diriginte, cheie externă către Diriginte.

Create → Table Design. Tabela Diriginte:

CâmpulData TypeProprietăți
CNPShort TextField Size 13; cheie primară
NumeShort TextField Size 30; Required Yes
PrenumeShort TextField Size 30; Required Yes
SpecialitateShort TextField Size 30; Required Yes
ClasaShort TextField Size 10; Required Yes

Tabela Elev:

CâmpulData TypeProprietăți
Nr_matricolNumberField Size Long Integer; cheie primară
NumeShort TextField Size 30; Required Yes
PrenumeShort TextField Size 30; Required Yes
AdresaShort TextField Size 100; Required Yes
MediaNumberField Size Double; Decimal Places 2; Validation Rule Between 1 And 10; Required Yes
CNP_diriginteShort TextField Size 13; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Diriginte și Elev.
  2. Se trage câmpul CNP din Diriginte peste CNP_diriginte din Elev.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Diriginte și ∞ la Elev.

3. Popularea tabelelor

Tabela Diriginte se completează prima, în Datasheet View.

CNPNumePrenumeSpecialitateClasa
2750614226731MunteanuElenamatematicăa IX-a A
1800203226732OpreaVasileinformaticăa X-a B
2830911226733DiaconuIrinainformaticăa XI-a C

Modelul 20 Departamente și salariați: șefii departamentelor, fondul de salarii pe funcții și salariul mediu pe departamente

1. Crearea tabelelor

Fiecărei entități din diagramă îi corespunde o tabelă, iar fiecărui atribut, un câmp:

  • atributul marcat cu # este cheia primară;
  • atributele marcate cu * sunt obligatorii (Required Yes);
  • atributul marcat cu o poate rămâne necompletat.

Într-un departament lucrează mai mulți salariați, deci tabela Salariat primește în plus câmpul Cod_departament, cheie externă către Departament.

Create → Table Design. Tabela Departament:

CâmpulData TypeProprietăți
Cod_departamentAutoNumbercheie primară
DenumireShort TextField Size 40; Required Yes
Sef_departamentShort TextField Size 60; Required Yes
ObservatiiShort TextField Size 255

Tabela Salariat:

CâmpulData TypeProprietăți
CNPShort TextField Size 13; cheie primară
NumeShort TextField Size 30; Required Yes
PrenumeShort TextField Size 30; Required Yes
FunctiaShort TextField Size 30; Required Yes
SalariuCurrencyRequired Yes
Cod_departamentNumberField Size Long Integer; Required Yes; cheie externă

2. Crearea legăturii

  1. Database Tools → Relationships → Show Table (Add Tables) → se adaugă Departament și Salariat.
  2. Se trage câmpul Cod_departament din Departament peste Cod_departament din Salariat.
  3. În fereastra Edit Relationships se bifează Enforce Referential Integrity → Create.

Legătura obținută este One-To-Many, cu 1 la Departament și ∞ la Salariat.

3. Popularea tabelelor

Tabela Departament se completează prima, în Datasheet View.

Cod_departamentDenumireSef_departamentObservatii
1ContabilitateIonescu Maria
2ProducțieVasile Dan
3VânzăriPop Elena
CNPNumePrenumeFunctiaSalariuCod_departament
2780101226751IonescuMariașef departament7.0001
2850202226752RusuAnacontabil5.0001
1900303226753MarinIoncontabil5.2001
1760404226754VasileDanșef departament7.5002
1950505226755LunguPauloperator4.2002
1980606226756TomaGeluoperator4.3002
1880707226757IordacheBogdaninginer6.0002
2820808226758PopElenașef departament6.8003
2960909226759StanMaraagent vânzări4.5003

Materialul acesta se citește pe educamp.ro și nu se tipărește.

Vezi modelele rezolvate ca și cursant

Structura probei — subiectele, punctajele și timpul de lucru — se citește gratuit și integral. Pentru a citi modelele rezolvate, 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 ce se cere la probă, poți reveni la structura probei.

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

Înscrie-te Cum plătești Login