You are on page 1of 10

UNIVERSITATEA DIN CRAIOVA FACULTATEA MATE-INFO SECTIA INFORMATICA

PROIECT LA BAZE DE DATE

STUDENT: Tuculina Emanuel Constantin ANUL II

2007

TEMA PROIECTULUI: Evidenta bolnavi

Baza de date se compune din urmatoarele tabele:


medicament(COD_M, DENUMIRE_M, CANTITATE_M reteta (COD_m, CNP, CANT,pret_UNITAR) Pacient(CNP, NUME ADRESA) Boli(cod_boala,Denumire_boala) diagnostic(CNP,cod_boala, cod_m)

Cerinte:
1. creati si instantiati baza de date 2. Determinati cat costa medicam pe fiecare pacient 3. Procedura care determina costul medicamentelor pentru bolnavi 4. Bolnavi cu cel putin 3 medicamente 5. determinati numarul de medicamente pe fiecare bolnav 6. Determinati frecveta bolilor 7. determinmati bolile cele mai scumpe

Creare tabele:
--creare tabel medicament create table medicament( cod_medicament nvarchar(20) primary key not null, denumire_medicament nvarchar(20)not null, cantit numeric(10) null, ) --creare tabel reteta create table reteta( cod_medicament nvarchar(20) not null, cnp nvarchar(20) not null, cantit int null, pret_unitar int not null, ) --creare tabel pacient create table pacienti(
3

cnp nvarchar(20) primary key not null, nume varchar(40)not null, adresa nvarchar(40)not null, ) --creare tabel boli create table boli( cod_boala nvarchar(20) primary key not null, denumire_boala nvarchar(20) not null, ) --creare tabel diagnostic create table diagnostic ( cnp nvarchar(20) not null, cod_boala nvarchar(20) not null, cod_medicament nvarchar(20) not null ) --adaugare restrictii in tabelul diagnostic alter table diagnostic add constraint fk_Diagnostic_Pacienti foreign key(cnp) references pacienti(cnp), constraint fk_Diagnostic_boli foreign key(cod_boala) references boli(cod_boala), constraint fk_Diagnostic_Medicament foreign key(cod_medicament) references medicament(cod_medicament)

Inserare in tabele:
--inserare in tabelul medicament insert into medicament values('452152','Algocalmin','123') insert into medicament values('124615','Ampicilina','23')

insert into medicament values('148789','Paracetamol sinus','34') insert into medicament values('987546','Aspirina','29') insert into medicament values('487858','Oxacilina','78') --inserare in tabelul reteta insert into reteta values('452154','174020474786399','7','1') insert into reteta values('124615','1640104658356','1','5') insert into reteta values('148789','15507061457365','4','2') insert into reteta values('987546','2760102258365','2','3') insert into reteta values('487858','2690405248365','3','4') --inserare in tabel pacient insert into pacienti values('174020474786399','Vlad Cristina','Craiova') insert into pacienti values('1640104658356','Gigi Netoiu','Bucuresti') insert into pacienti values('15507061457365','Netoiu George','Calafat') insert into pacienti values('2760102258365','Popescu Jon','Rast') insert into pacienti values('2690405248365','Gheorghe Marius','Orastie') --inserari in tabelul boli insert into boli values('474786399','gripa') insert into boli values('04658356','gingivita') insert into boli values('61457365','BPOC') insert into boli values('02258365','HTA') insert into boli values('05248365','hepatita') insert into boli values('75448365','sinuzita') insert into boli values('05257865','cistita') --inserari in tabelul diagnostic

insert into diagnostic values('174020474786399','474786399','452152') insert into diagnostic values('174020474786399','474786399','452152') insert into diagnostic values('174020474786399','474786399','452152') insert into diagnostic values('1640104658356','04658356','124615') insert into diagnostic values('15507061457365','61457365','148789') insert into diagnostic values('15507061457365','61457365','148789') insert into diagnostic values('15507061457365','61457365','148789') insert into diagnostic values('15507061457365','61457365','148789') insert into diagnostic values('15507061457365','61457365','148789') insert into diagnostic values('15507061457365','61457365','148789') insert into diagnostic values('2760102258365','05248365','987546') insert into diagnostic values('2690405248365','75448365','487858') insert into diagnostic values('15507061457365','61457365','148789')

--determinati cat costa medicam pe fiecare pacient select nume,pret_unitar, cantit, pret_unitar*cantit as cost_pe_pacient from pacienti p, reteta r where p.CNP=r.CNP

--procedura care determina costul medicamentelor pentru bolnavi create procedure cost_medic as select nume, denumire_medicament,r.cantit,pret_unitar, pret_unitar*r.cantit as cost_medic
6

from pacienti p , reteta r, medicament m where p.CNP=r.CNP and r.cod_medicament=m.cod_medicament --executare procedura exec cost_medic --stergere procedura drop procedure cost_medic

--bolnavi cu cel putin 3 medicamente create procedure medic_3 as select nume, r.cantit from pacienti p, reteta r where p.CNP=r.CNP and r.cantit>=3 --executare procedura execute medic_3 --stergere procedura drop procedure medic_3

--determinati numarul de medicamente pe fiecare bolnav create procedure nr_medic as select nume, r.cantit from pacienti p, reteta r where p.CNP=r.CNP --executare procedura execute nr_medic --stergere procedura drop procedure nr_medic

--determinati frecveta bolilor print'frecventa bolilor' if exists(select name from sysobjects where name='frecventaBoli' and type='Q') drop procedure frecventaBoli go --creare procedura de determinarea frecventei boli create procedure frecventaBoli as select p.CNP, nume, b.denumire_boala from boli b,pacienti p,reteta r where p.cnp=r.cnp and nume in( select p.nume from pacienti) and denumire_boala in( select b.denumire_boala from boli ) go --executarea procedurii execute frecventaBoli

--determinmati bolile cele mai scumpe create procedure cost_boala as select distinct denumire_boala, r.pret_unitar*r.cantit as cost_boala from boli b, diagnostic d, reteta r where d.cod_boala=b.cod_boala and d.cod_medicament=r.cod_medicament --executare procedura exec cost_boala --stergere procedura drop procedure cost_boala

/*procedura de adaugare a unui bolnav*/ print'adaugam un bolnav in tabelul pacienti' if exists(select name from sysobjects where name='adaugare_pacienti' and type='Q') drop proc adaugare_pacienti go --creare procedura cu parametri create procedure adaugare_pacienti (@CNP nvarchar(30), @nume nvarchar(30), @adresa nvarchar(20)) as insert pacienti values(@CNP, @nume, @adresa) go --executarea procedurii execute adaugare_pacienti '2801478549856','Andreea Mihaela','Maglavit' select * from pacienti

Diagrama de stare

10

You might also like