Documente Academic
Documente Profesional
Documente Cultură
Proiect Baze de Date
Proiect Baze de Date
Descriere
Am ales s creez o baz de date cu informaii referitoare la un adpost
pentru animale. Acest adpost este locuina mai multor tipuri de animale: cini,
pisici, psri, porcuori de guineea, hamsteri, pn i reptile. Am stocat date n 6
tabele care sunt conectate prin relaii. Datele stocate n aceast baz de date
sunt referitoare la animalele aflate in adpost (tabela animale), la modul de
hrnire al fiecrui tip de animal (tabela hran), la persoanele care aduc animalele
la adpost prin donaii (tabela donatori), la persoanele care adopt animalele
(tabela adoptani), la veterinarii ce se ocup de animalele bolnave din adpost
(tabela veterinari) si la consultaiile pe care acetia le realizeaz n momentul n
care un animal se mbolnvete (tabela consultaii)
Reguli i structura tabelelor
La nceput, ntre tabela animale i tabela veterinari exista o relaie de tip
M:M. Pentru a asigura integritatea bazei de date, am creat o tabela nou numit
consultaii, care se leag de cele dou tabele prin dou relaii de tip 1:M.
n acest adpost:
-
Un donator poate dona unul sau mai multe animale, un animal trebuie sa
fie donat de catre un singur donator.
Un adoptant poate adopta unul sau mai multe animale, un animal poate fi
adoptat de catre un singur adoptant.
Un animal trebuie sa consume un singur tip de hrana, un tip de hrana
poate fi consumat de mai multe animale.
La o consultatie trebuie sa participe un singur animal, un animal poate fi
consultat de mai multe ori.
Un veterinar poate sa realizeze mai multe consultatii, la o consultatie
poate participa un singur veterinar.
Animalele pot fi adoptate sau nu la un moment dat; acest lucru se verifica
prin campul cod_adoptant. Daca acesta este Null, inseamna ca animalul nu
este adoptat.
Emailul trebuie intotdeauna sa fie de forma: %@%.%
Pe tot parcursul timpului in care animalele traiesc in adapostul pentru
animale, din motive nutritionale, fiecare animal va consuma un singur tip
de hrana si nu mai multe.
Cmp
cod_animal
tip_animal
greutate
Tip
NUMBER(5)
VARCHAR2(
10)
NUMBER(6,
2)
TABELA ANIMALE
Restricii
Primary Key
Not Null
Comentarii
sex
descriere
data_nasterii
cod_donator
VARCHAR2(
1)
VARCHAR2(
50)
DATE
NUMBER(5)
cod_adopta
nt
NUMBER(5)
cod_hrana
NUMBER(5)
Cmp
cod_donator
nume_d
prenume_d
adresa_d
email_d
telefon_d
Cmp
cod_adoptan
t
nume_a
prenume_a
adresa_a
email_a
telefon_a
Cmp
cod_hrana
tip_hrana
pret
Tip
NUMBER(5)
VARCHAR2(
15)
VARCHAR2(
20)
VARCHAR2(
50)
VARCHAR2(
30)
VARCHAR2(
15)
Tip
NUMBER(5)
VARCHAR2(
15)
VARCHAR2(
20)
VARCHAR2(
50)
VARCHAR2(
30)
VARCHAR2(
15)
Tip
NUMBER(5)
VARCHAR2(
20)
NUMBER(6,
2)
Foreign Key,
Not Null
Check
Not Null
TABELA ADOPTANTI
Restricii
Primary Key
Comentarii
Not Null
Not Null
Check
Not Null
TABELA HRANA
Restricii
Primary Key
Not Null
Comentarii
brand
Cmp
cod_veterina
r
nume_v
prenume_v
adresa_v
email_v
telefon_v
VARCHAR2(
15)
Tip
NUMBER(5)
VARCHAR2(
15)
VARCHAR2(
20)
VARCHAR2(
50)
VARCHAR2(
30)
VARCHAR2(
15)
Cmp
cod_consultat
ie
data_consulta
tie
diagnostic
cod_animal
cod_veterinar
TABELA VETERINARI
Restricii
Primary Key
Not Null
Not Null
Check
Tip
NUMBER(5)
TABELA CONSULTATII
Restricii
Primary Key
DATE
Not Null
VARCHAR2(
30)
NUMBER(5)
NUMBER(5)
Comentarii
Foreign Key,
Not Null
Foreign Key,
Not Null
Comentarii
CREAREA TABELELOR
2. Tabela ADOPTANTI
INSERT INTO ADOPTANTI VALUES (3000, 'Stoica', 'Marian', 'Strada Trandafirilor nr
45 Bucuresti','stoicam@yahoo.com','0765872234')
INSERT INTO ADOPTANTI VALUES (3001, 'Birsan', 'Alexandru',NULL,
'alex.birsan@yahoo.com', '0765432190)
INSERT INTO ADOPTANTI VALUES (3002, 'Andritoiu', 'Catalin', NULL,
'acatalin@yahoo.com', '0723120986')
INSERT INTO ADOPTANTI VALUES (3003, 'Suman', 'Andreea', NULL,
'sumanandreea@yahoo.com', '0762098765')
INSERT INTO ADOPTANTI VALUES (3004, 'Stoica', 'Andrei', 'Strada Papadiilor nr 43
Bucuresti', 'stoicaandrei@yahoo.com','0765850999')
INSERT INTO ADOPTANTI VALUES (3005, 'Sandu', 'Cezara', 'Strada Maracineanu nr
7 Brasov', 'cezarasandu@gmail.com', '0756239871')
INSERT INTO ADOPTANTI VALUES (3006, 'Dorobat', 'Alexandru', 'Bvd Dacia nr 38
Bucuresti', 'dorobat@yahoo.com','0720009008')
INSERT INTO ADOPTANTI VALUES (3007, 'Constantinescu', 'Adina', NULL,
'adinaconst@gmail.com', '0757503519')
INSERT INTO ADOPTANTI VALUES (3008, 'Coles', 'Andrei', 'Strada Mihail Moxa nr 1
Brasov', 'coles_andrei@gmail.com', '0720598264')
INSERT INTO ADOPTANTI VALUES (3009, 'Popescu', 'Marius', 'Strada Saturn nr 10
Bucuresti', 'popescumarius@yahoo.com', '0741112113')
3. Tabela VETERINARI
INSERT INTO VETERINARI VALUES(4000, 'Abusan', 'Alexandru', NULL,
'abusanandrei@gmail.com','0765654391')
INSERT INTO VETERINARI VALUES(4001, 'Borcea', 'Cristian', 'Bvd
Independentei nr 12 Sibiu', 'borcea_cris@gmail.com','0762652000')
INSERT INTO VETERINARI VALUES(4002, 'Cristea', 'Andrei', 'Bvd Magheru nr 2
Sibiu', 'cristea_andrei@gmail.com' ,'0726700901')
5. Tabela ANIMALE
INSERT INTO ANIMALE VALUES (1000, 'caine', 5.6, 'm', 'negru', 2010, NULL, 5007)
INSERT INTO ANIMALE VALUES (1001, 'pisica', 2.3, 'f', 'alba', 2010, NULL, 5006)
INSERT INTO ANIMALE VALUES (1002, 'caine', 9.2, 'm', NULL, 2001, 3014, 5004)
INSERT INTO ANIMALE VALUES (1003, 'canar', 0.5, 'f', 'culori: galben si verde',
2003, NULL, 5009)
INSERT INTO ANIMALE VALUES (1004, 'hamster', 0.6, 'm', NULL, 2010, NULL,
5008)
INSERT INTO ANIMALE VALUES (1005, 'papagal', 0.4, 'm', 'culori:rosu si verde',
2010, NULL, 5007)
INSERT INTO ANIMALE VALUES (1006, 'caine', 4.5, 'f', NULL, 2000,3014,5002)
INSERT INTO ANIMALE VALUES (1007, 'pisica', 3.6, 'm', 'neagra', 2002, 3014,
5000)
INSERT INTO ANIMALE VALUES (1008, 'broasca', 1.6, 'f', NULL, 2004, 3008, 5001)
INSERT INTO ANIMALE VALUES (1009, 'hamster', 0.4, 'f', NULL, 2006, 3003, 5005)
INSERT INTO ANIMALE VALUES (1010, 'veverita', 2.2, 'm', NULL, 2012, 3010,
5004)
INSERT INTO ANIMALE VALUES (1011, 'caine', 7.6, 'f', 'alb, de talie inalta ', 2005,
3004, 5003)
INSERT INTO ANIMALE VALUES (1012, 'sarpe', 1.6, 'm', 'maro, cu pete galbene',
2007, 3000, 5005)
INSERT INTO ANIMALE VALUES (1013, 'veverita', 1.6, 'f', NULL, 2014, 3006, 5004)
INSERT INTO ANIMALE VALUES (1014, 'caine', 8.6, 'm', 'alb, latos', 2011, 3001,
5003)
INSERT INTO ANIMALE VALUES (1015, 'broasca', 1.3, 'f', NULL, 2009, 3002, 5001)
INSERT INTO ANIMALE VALUES (1016, 'sarpe', 1.1, 'f', 'negru, cu dungi gri', 2008,
3005, 5006)
INSERT INTO ANIMALE VALUES (1017, 'pisica', 10.1, 'm', 'gri inchis, cu ochii negri',
2013, 3007, 5006)
INSERT INTO ANIMALE VALUES (1018, 'canar', 0.3, 'f', 'maro deschis cu dungi
galbene', 2004, 3011, 5009)
INSERT INTO ANIMALE VALUES (1019, 'papagal', 0.7, 'm', 'are dungi rosii', 2004,
3009, 5009)
INSERT INTO ANIMALE VALUES (1020, 'hamster', 0.25, 'm', 'alb', 2007, 3013,
5000)
INSERT INTO ANIMALE VALUES (1021, 'sarpe', 1.12, 'f', 'negru cu dungi albe',
2000, 3012, 5001)
INSERT INTO ANIMALE VALUES (1022, 'pisica', 6.6, 'f', 'alba', 2000, 3005, 5000)
6. Tabela CONSULTATII
INSERT INTO CONSULTATII VALUES (6000,TO_DATE('15-NOI-2011','DD-MONYYYY') ,'leziune', 1001,4006)
INSERT INTO CONSULTATII VALUES (6001,TO_DATE('14-OCT-2011','DD-MONYYYY'),'plaga deschisa',1002,4003)
INSERT INTO CONSULTATII VALUES (6002,TO_DATE('01-NOI-2011','DD-MONYYYY'),'raie', 1010,4006)
INSERT INTO CONSULTATII VALUES (6003,TO_DATE('19-SEP-2011','DD-MONYYYY'),'leziune la aripa dreapta', 1005,4006)
INSERT INTO CONSULTATII VALUES (6004,TO_DATE('30-DEC-2011','DD-MONYYYY'),'arsura',1021,4003)
INSERT INTO CONSULTATII VALUES (6005, TO_DATE('05-SEP-2011','DD-MONYYYY'),'intoxicatie',1001,4000)
INSERT INTO CONSULTATII VALUES (6006, TO_DATE('27-AUG-2011','DD-MONYYYY'),'indigestie',1002,4006)
INSERT INTO CONSULTATII VALUES (6007, TO_DATE('20-SEP-2011','DD-MONYYYY'),'probleme cu vederea',1007,4009)
MODIFICAREA DATELOR
Fig.24 Modificarea unui pre cu cel mai mic pre din tabela
INTEROGRI VARIATE
1. Cerina: S se afieze numele veterinarilor care au consultat animale,
codul consultaiilor asociate, precum i veterinarii care nu au participat la
nici o consultaie.
select v.nume_v, c.cod_consultatie
from veterinari v, consultatii c
where v.cod_veterinar=c.cod_veterinar(+)
Rezultat:
INDECI
1. Cerina: S se creeze un index pentru facilitarea accesului la preturile
hranei.
CREATE INDEX index1 on HRANA(pret)
Rezultatul scriptului:
SINONIME
1. Cerina: S se creeze un sinonim anim pentru tabela ANIMALE, s se
interogheze aceast tabel utiliznd sinonimul creat i apoi s se tearg
sinonimul anim.
CREATE SYNONYM anim FOR ANIMALE
SELECT cod_animal, tip_animal
FROM anim