Brag Ionela-Cristiana
Seria A - Grupa 1033
Reguli structurale
Intrucat spitalul din Marea Britanie are mai multe secii,
unde la rndul lor, au mai muli medici, trebuie reinute
informaii despre medici si sectii.
1
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
regaseam o relatie M:M intre pacienti si medici, insa aceasta a
disparut prin entitatea fise_medici, iar acum avem relatii 1:M.
Pentru o intelegere mai exacta, am explicitat legaturile dintre
entitati:
Fiecare secie trebuie s aib unul sau mai muli medici.
Fiecare medic trebuie s apartin unei singure secii.
Fiecare medic trebuie s aib unul sau mai muli pacieni.
Fiecare pacient trebuie s apartin unuia sau mai multor medici.
Fiecare medic trebuie s aib una sau mai multe fie.
Fiecare fi trebuie s apartin unui singur medic.
Fiecare fi trebuie s realizeze una sau mai multe investigaii.
Fiecare investigaie trebuie s apartin unei singure fie.
Fiecare investigaie necesit unul sau mai multe medicamente.
Fiecare medicament trebuie s apartin uneia sau mai multor investigaii.
2
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
Tratamente (detine informatii despre tratamentul, pe care un
pacient trebuie sa-l urmeze, rezultat din investigatie, unde s-
au prescris medicamente): id_tratament(PK), doza,
id_medicament(FK), id_investigatie(FK).
FISE_MEDICI
ID_FISA
realizeaza
NUMBER(5)PK
DATA_INTERNARII DATE
apartine
DATA_EXTERNARII DATE
ID_MEDIC
NUMBER(5)FK
ID_PACIENT
MEDICAMENTE
ID_MEDICAMENT INVESTIGATII
NUMBER(5)PK
DENUMIRE
VARCHAR2(25)
3
PROSPECT
VARCHAR2(25)
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
are ID_INVESTIGATIE
NUMBER(5)PK
este realizata
REZULTAT
VARCHAR2(25)
apartine ID_FISA
NUMBER(5)FK
TRATAMENTE
ID_TRATAMENT
necesita NUMBER(5)PK
apartine DOZA
VARCHAR2(25)
ID_MEDICAMENT
NUMBER(5)FK
ID_INVESTIGATII
III. CREAREA TABELELOR
NUMBER(5)FK- restrictii de integritate-
1. SECTII
2. MEDICI
4
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
3. PACIENTI
5
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
PRENUME_PACIENT VARCHAR2(25),
ADRESA VARCHAR2(25)
);
4. FISE_MEDICI
5. INVESTIGATII
6
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
6. MEDICAMENTE
7. TRATAMENT
7
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
create table TRATAMENTE
(
ID_TRATAMENT NUMBER(5),
DOZA VARCHAR2(25),
ID_INVESTIGATIE NUMBER(5),
ID_MEDICAMENT NUMBER(5)
);
alter table TRATAMENTE
add constraint ID_TRATAMENT_PK primary key (ID_TRATAMENT);
alter table TRATAMENTE
add constraint ID_INVESTIGATIE_FK foreign key (ID_INVESTIGATIE)
references INVESTIGATII (ID_INVESTIGATIE);
alter table TRATAMENTE
add constraint ID_MEDICAMENT_FK foreign key (ID_MEDICAMENT)
references MEDICAMENTE (ID_MEDICAMENT);
8
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
9
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
10
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
11
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
12
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
INSERT INTO MEDICAMENTE VALUES (53,'Moldamin','1 injectabila/12h');
INSERT INTO MEDICAMENTE VALUES (54,'Ocunet','3 picaturi/zi');
INSERT INTO MEDICAMENTE VALUES (55,'Entamoeba','1 capsula/6h');
V. ACTUALIZAREA INREGISTRARILOR
-INSERT,UPDATE,DELETE-
UPDATE PACIENTI
SET NUME_PACIENT='Braga'
WHERE ID_PACIENT=101;
UPDATE MEDICI
SET SPECIALIZARE='Expert'
13
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
WHERE EXTRACT(YEAR FROM DATA_NSTERII)<1970;
UPDATE INVESTIGATII
SET REZULTAT='CAZ URGENT-CONTAGIOS'
WHERE ID_INVESTIGATIE=11023;
14
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
15
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
from medici m, pacienti p, fise_medici f
where m.id_medic=f.id_medic and p.id_pacient=f.id_pacient;
16
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
17
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
select s.id_sectie, s.nume_sectie
from medici m, sectii s
where m.id_sectie=s.id_sectie
group by s.id_sectie,s.nume_sectie
having count(*)=(select max(count(*))
from medici group by id_sectie)
18
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
19
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
select *
from medicamente
where length(DENUMIRE)>10 and length(PROSPECT)>8;
20
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
15. Sa se afiseze data cand a parasite spitalul, dar si id fisei sale, pacientul
ce locuieste pe bulevardul Iuliu Maniu. (subcerere)
select id_fisa,data_externarii
from fise_medici
where id_pacient=(select id_pacient from pacienti where adresa like
'%Iuliu Maniu%');
16. Pentru pacientii in stare grava, care au stat un numar mare de zile
spitalizati, aplicati o reducere la plata taxelor in acest fel: cel mai grav
pacient va primi o reducere de 0.5, si in continuare urmatorul pacient
va primi o reducere cu 0.1 mai putin fata de anterorul. Rezolvarea se va
face cu expresia DECODE.
21
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
17. Sa se afiseze numele sectiilor care au id-ul intre 1 si 8 fara cei care au
id-ul 5 si 6.
22
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
23
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
24
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
from fise_medici f, pacienti p
where p.id_pacient=f.id_pacient;
II. Indecsi- Permit accesul rapid la date prin sortarea logica a nregistrrilor si
creaz automat la introducerea unei restricii de cheie primar sau de unicitate
sau manual de ctre utilizator.
25
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
reducerea costului!!!
reducerea costului!!!
26
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
(dupa 2 inserari)
27
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
CREATE SEQUENCE seq_pacienti
start with 105 increment by 5
maxvalue 1000 nocycle;
(1 insert)
IV. Sinonimele - Sunt nume alternative utilizate pentru referirea
obiectelor unei baze de date, pot fi sinonime publice (accesibile tuturor
utilizatorilor) sau private, sinonimele publice pot fi create numai de
administratorul bazei de date.
Sa se creeze un sinonim pentru tabela Sectii:
CREATE SYNONYM sc FOR SECTII;
28
Informatic-Economic
Brag Ionela-Cristiana
Seria A - Grupa 1033
DROP SYNONYM sc;
29