Tema acestui proiect o reprezinta gestiunea unei baze de date pentru o farmacie.
Telul nostru este de a dezvolta si implementa sisteme informatice care sa asigure imbunatatirea
serviciilor pe care le ofera farmacia noastra, prin cresterea eficientei si a trasparentei proceselor
informatice ale acestora.
Scopul bazei de date este sa fie sortate retetele si sa se aiba o legatura a doctorilor care au
eliberat o reteta.
Schema conceptuala(ERD)
Am creat tabelele: CLIENT, MEDIC, RETETE, FARMACIST.
Intre tabela MEDIC si tabela RETETE exista o legatura de 1:M(un medic poate elibera mai
multe retete; o reteta poate fi eliberata de un medic).
Intre tabela CLIENT si tabela RETETE exista o legatura de 1:M(un client poate avea mai multe
retete; o reteta apartine unui singur client).
Intre tabela FARMACIST si tabela RETETE exista o legatura de 1:M(un farmacist vinde una
sau mai multe retete; o reteta este incasata de un sigur farmacist).
MEDIC
RETETA
CLIENT
# id_medic
# id_reteta
#id_client
*nume
*id_client
*nume
*prenume
*id_medic
*prenume
*telefon
*id_farmacist
*cnp
*data_eliberare
FARMACIST
#id_farmacist
*nume
*prenume
*cnp
Adaugarea de constrangeri
1.Adaugarea constrangerilor pentru tabela MEDIC
ALTER TABLE MEDIC ADD CONSTRAINT ID_MEDIC_PK PRIMARY KEY(ID_MEDIC);
ALTER TABLE MEDIC ADD CONSTRAINT TELEFON_M_UQ UNIQUE(TELEFON);
ALTER TABLE MEDIC ADD CONSTRAINT NUME_NN CHECK(NUME IS NOT NULL);
ALTER TABLE MEDIC ADD CONSTRAINT EMAIL_M_UQ UNIQUE(EMAIL);
Expresii SQL
1.Dezactivarea unor constrangeri(pentru a permite introducerea tuturor datelor in tabel).
ALTER TABLE RETETA DISABLE CONSTRAINT ID_FARMACIST_FK;
2.Activarea constragerilor.
ALTER TABLE FARMACIST ENABLE CONSTRAINT ID_FARMACIST_PK;
10
11
12
9.Sa se afiseze numele si prenumele farmacistilor care s-au nascut in anul 1980.
SELECT NUME, PRENUME
FROM FARMACIST
WHERE CNP LIKE'_80%';
10.Crearea unei tabele MEDICI2 care sa preia id-ul, numele si email-ul din tabela MEDIC
cu numarul id-ului 1 si 4.
CREATE TABLE MEDICI2
AS SELECT ID_MEDIC, NUME, EMAIL
FROM MEDIC
WHERE ID_MEDIC IN(1, 4);
13