Sunteți pe pagina 1din 6

Rezolvările studiilor de caz

Capitolul 3. Algebra relaţională

Se consideră următoarea bază de date:


PACIENT (codpacient, nume, prenume, datanasterii, localitate)
PROGRAMARE (nrprogramare, dataprogramare, oraprogramare, codpacient,nrconsultatie)
CONSULTATIE (nrconsultatie, tipconsultatie, codpacient, dataconsultatie)
MEDICI (codmedic, numemedic, prenumemedic)
MEDIC_CONSULTATIE (nrconsultatie, codmedic)
TARIFE (tipconsultatie, tarif)

Folosind operatorii algebrei relaţionale să se determine:

1. Care sunt pacienţii din Târgovişte;

R1 ← SELECŢIE(PACIENT; localitate=”Targoviste”)

2. Care sunt pacienţii din Târgovişte şi Titu;

R1 ← SELECŢIE(PACIENT; localitate=”Targoviste” or
localitate=”Titu”)

3. Care pacienţi nu sunt din Târgovişte şi Titu;

R1 ← SELECŢIE(PACIENT; localitate<>”Targoviste” and


localitate<>”Titu”)

sau

R1 ← SELECŢIE(PACIENT; localitate=”Targoviste” or
localitate=”Titu”)
R2 ← PACIENT – R1

4. Care sunt pacienţii care s-au născut în anul 1989;

R1 ← SELECŢIE(PACIENT; datanasterii>= 01/01/1989 and


datanasterii<= 31/12/1989)

5. Care sunt tarifele mai mari de 200 lei;

R1 ← SELECŢIE(TARIFE; tarif>25)

6. Din ce localităţi sunt pacienţii din bază;

R1 ← PROIECŢIE(PACIENT; localitate)

7. Care este nume şi prenumele medicilor care oferă consultaţii;


R1 ← JONCŢIUNE(MEDICI; MEDIC_CONSULTATIE; codmedic)
R2 ← PROIECŢIE(R1; numemedic, prenumemedic)

8. Care sunt tarifele practicate;

R1 ← PROIECŢIE(TARIFE; tarif)

9. Din ce localitate sunt pacienţii născuţi în luna ianuarie 1990;

R1 ← SELECŢIE(PACIENT; datanasterii>= 01/01/1990 and


datanasterii<= 31/01/1990)
R2 ← PROIECŢIE(R1; localitate)

10. Care sunt orele pentru care sunt prevăzute consultaţii în data de 23.03.2019;

R1 ← SELECŢIE(CONSULTATIE; dataconsultatie = 09/02/2019)


R2 ← JONCŢIUNE(R1, PROGRAMARE; nrconsultatie)
R3 ← PROIECŢIE(R2; oraprogramare)

11. Cum se numesc pacienţii din Târgovişte şi Moreni;

R1 ← SELECŢIE(PACIENT; localitate = ”Targoviste”)


R2 ← PROIECŢIE(R1; nume)
R3 ← SELECŢIE(PACIENT; localitate = ”Titu”)
R4 ← PROIECŢIE(R3; nume)
R5 ← R2  R4
12. Care este prenumele medicilor cu numele de familie Ghionea;

R1 ← SELECŢIE(MEDICI; numemedic = „Ghionea”)


R2 ← PROIECŢIE(R1; prenumemedic)

13. La ce data şi la ce oră are programare Popa Georgeta;


R1 ← SELECŢIE(PACIENT; nume=”Popa” and
prenume=”Georgeta”)
R2 ← JONCŢIUNE(R1, PROGRAMARE; codpacient)
R3 ← PROIECŢIE(R3; dataprogramare, oraprogramare)

14. Care sunt datele la care au făcut programare pacienţii din Târgovişte;

R1 ← SELECŢIE(PACIENT; localitate = „Targoviste”)


R2 ← JONCŢIUNE(R1, PROGRAMARE; codpacient)
R3 ← PROIECŢIE(R3; dataprogramare, oraprogramare)

15. Numele pacienţilor care au fost consultaţi în luna februarie 2019;

R1 ← JONCŢIUNE(PACIENT, PROGRAMARE; codpacient)


R2 ← JONCŢIUNE(R1, CONSULTATIE; nrconsultatie)
R3 ← SELECŢIE(R2; dataconsultatie >= 01/02/2019 and
dataconsultatie <= 28/02/2019)
R4 ← PROIECŢIE(R3; nume, prenume)
16. Data la care a făcut programare Dinescu Mircea şi Vancea Ioan;

R1 ← SELECŢIE(PACIENT; nume = „Dinescu” and prenume =


„Mircea”)
R2 ← JONCŢIUNE(R1, PROGRAMARE; codpacient)
R3 ← PROIECŢIE(R2, dataprogramare)
R4 ← SELECŢIE(PACIENT; nume = „Vancea” and prenume =
„Ioan”)
R5 ← JONCŢIUNE(R4, PROGRAMARE; codpacient)
R6 ← PROIECŢIE(R5, dataprogramare)
R7 ← R4  R6

sau

R1 ← SELECŢIE(PACIENT; (nume = „Dinescu” and prenume =


„Mircea”) or (nume = „Vancea” and prenume = „Ioan”))
R2 ← JONCŢIUNE(R1, PROGRAMARE; codpacient)
R3 ← PROIECŢIE(R2, dataprogramare)

17. Numele medicilor care au acordat consultaţii în data de 23.02.2019;

R1 ← SELECŢIE(CONSULTATIE; dataconsultatie = 23/02/2019)


R2 ← JONCŢIUNE(R1, MEDIC_CONSULTATIE; nrconsultatie)
R3 ← JONCŢIUNE(R2, MEDICI; codmedic)
R4 ← PROIECŢIE(RE; numemedic, prenumemedic)

18. De ce medic a fost consultată Popa Georgeta;

R1 ← JONCŢIUNE(PACIENT, CONSULTATIE; codpacient)


R2 ← JONCŢIUNE(R1, MEDIC_CONSULTATIE; nrconsultatie)
R3 ← JONCŢIUNE(R2, MEDICI; codmedic)
R4 ← SELECŢIE(R3; nume = „Popa” and prenume = „Georgeta”)
R5 ← PROIECŢIE(R4; numemedic, prenumemedic)

19. Numele pacienţilor consultaţi de Grecu Anca;

R1 ← SELECŢIE(MEDICI; numemedic = „Grecu” and


prenumemedic = „Anca”)
R2 ← JONCŢIUNE(R1, MEDIC_CONSULTATIE; codmedic)
R3 ← JONCŢIUNE(R2, CONSULTATIE; nrconsultatie)
R4 ← JONCŢIUNE(R3, PACIENT; codpacient)
R5 ← PROIECŢIE(R4; nume, prenume)

20. Nume pacienţilor care au făcut programare şi în luna ianuarie şi în luna februarie 2019;

R1 ← JONCŢIUNE(PACIENT, CONSULTATIE; codpacient)


R2 ← SELECŢIE(R1; dataprogramare >= 01/01/2019 and
dataprogramare <= 31/01/2019)
R3 ← SELECŢIE(R1; dataprogramare >= 01/02/2019 and
dataprogramare <= 2831/02/2019)
R4 ← R2  R3
R5 ← PROIECŢIE(R4; nume, prenume)

21. Care este tariful consultaţiei pacientului Popa Georgeta;

R1 ← SELECŢIE(PACIENT; nume = „Popa” and prenume =


„Georgeta”)
R2 ← JONCŢIUNE(R1, CONSULTATIE; codpacient)
R3 ← JONCŢIUNE(R2, TARIFE; nrconsultatie)
R4 ← PROIECŢIE(R3; tarif)

22. Numele pacienţilor care au făcut programare în data de 04.03.2019 în intervalul 14-16;

R1 ← SELECŢIE(PROGRAMARE; dataprogramare = 10/02/2019)


R2 ← SELECŢIE(R1; oraprogramare>= 14 and oraprogramare
<=16)
R3 ← JONCŢIUNE(R2, PACIENT; codpacient)
R4 ← PROIECŢIE(R3; nume, prenume)

23. Datele la care au efectuat consultaţii Grecu Anca şi Minea Ion în luna februarie 2019;

R1 ← SELECŢIE(MEDICI; numemedic = „Grecu” and


prenumemedic = „Anca”)
R2 ← JONCŢIUNE(R1, MEDIC_CONSULTATIE; codmedic)
R3 ← JONCŢIUNE(R2, CONSULTATIE; nrconsultatie)
R4 ← SELECŢIE(R3; dataconsultatie >= 01/02/2019 and
dataconsultatie <= 28/02/2019)
R5 ← PROIECŢIE(R4; dataconsultatie)
R6 ← SELECŢIE(MEDICI; numemedic = „Minea” and
prenumemedic = „Ion”)
R7 ← JONCŢIUNE(R6, MEDIC_CONSULTATIE; codmedic)
R7 ← JONCŢIUNE(R7, CONSULTATIE; nrconsultatie)
R9 ← SELECŢIE(R8; dataconsultatie >= 01/02/2019 and
dataconsultatie <= 28/02/2019)
R10 ← PROIECŢIE(R9; dataconsultatie)
R11 ← R5  R10

24. Numele şi prenumele medicilor care au consultat pacienţi din Târgovişte şi Moreni dar nu din Titu;
R1 ← JONCŢIUNE(MEDICI, MEDIC_CONSULTATIE; codmedic)
R2 ← JONCŢIUNE(R1, CONSULTATIE; nrconsultatie)
R3 ← JONCŢIUNE(R2, PACIENT; codpacient)
R4 ← SELECŢIE(R3; localitate = „Targoviste”)
R5 ← PROIECŢIE(R4; numemedic, prenumemedic)
R6 ← SELECŢIE(R3; localitate = „Moreni”)
R7 ← PROIECŢIE(R6; numemedic, prenumemedic)
R8 ← SELECŢIE(R3; localitate = „Titu”)
R9 ← PROIECŢIE(R8; numemedic, prenumemedic)
R10 ← R5  R7 – R9
sau

R1 ← SELECŢIE(PACIENT; (localitate = „Targoviste” or localitate


= „Moreni”) and localitate <> „Titu”)
R2 ← JONCŢIUNE(R1, CONSULTATIE; codpacient)
R3 ← JONCŢIUNE(R2, MEDIC_CONSULTATIE; nrconsultatie)
R4 ← JONCŢIUNE(R3; MEDICI; codmedic)
R5 ← PROIECŢIE(R4; numemedic, prenumemedic)

25. Numele pacienţilor consultaţi de Grecu Anca în luna februarie 2019;

R1 ← SELECŢIE(MEDICI; numemedic = „Grecu” and


prenumemedic = „Anca”)
R2 ← JONCŢIUNE(R1, MEDIC_CONSULTATIE; codmedic)
R3 ← JONCŢIUNE(R2, CONSULTATIE; nrconsultatie)
R4 ← SELECŢIE(R3; dataconsultatie >= 01/02/2019 and
dataconsultatie <= 28/02/2019)
R5 ← JONCŢIUNE(R4, PACIENT; codpacient)
R6 ← SELECŢIE(R5; nume, prenume)

26. Data la care au fost consultaţi pacienţii care au făcut programare în data de 04.03.2019;

R1 ← JONCŢIUNE(PACIENT, PROGRAMARE; codpacient)


R2 ← SELECŢIE(R1; dataprogramare = 10/02/2019)
R3 ← JONCŢIUNE(R2, CONSULTATIE; nrconsultatie)
R4 ← PROIECŢIE(R3; dataconsultatie)

27. Nume pacienţilor care au avut programare în data de 04.03.2019 în intervalul 12-14 şi au fost
consultaţi de către Grecu Anca.

R1 ← JONCŢIUNE(PACIENT, PROGRAMARE; codpacient)


R2 ← JONCŢIUNE(R1, CONSULTATIE; nrconsultatie)
R3 ← JONCŢIUNE(R2, MEDIC_CONSULTATIE; nrconsultatie)
R4 ← JONCŢIUNE(R3, MEDICI; codmedic)
R5 ← SELECŢIE(R4; dataprogramare = 10/02/2019)
R6 ← SELECŢIE(R5; oraprogramare >= 12 and oraprogramare
<=16)
R7 ← SELECŢIE(R6; numemedic = „Grecu” and prenume „Anca”)
R8 ← PROIECŢIE(R7; nume, prenume)

NOTĂ: Rezolvările prezentate nu sunt restrictive. Pot fi avute în vedere şi alte soluţii.

S-ar putea să vă placă și