Sie sind auf Seite 1von 22

Cuprins

1. Descrierea modelului real.................................................................................... 2


2. Contrangeri.......................................................................................................... 2
3. Descrierea entitatilor, relatiilor si atributelor.......................................................3
3.1 Entitati........................................................................................................... 3
3.2 Relatii............................................................................................................. 4
3.3 Atribute.......................................................................................................... 8
4. Schemele relationale.......................................................................................... 15
5. Normalizare........................................................................................................ 16
5.1 Forma normala 1.......................................................................................... 16
5.2 Forma normala 2.......................................................................................... 17
5.3 Forma normala 3.......................................................................................... 18
6. Denormalizare.................................................................................................... 18
7. Crearea bazei de date........................................................................................ 19
8. Ce se doreste de la model..................................................................................20

1
1. Descrierea modelului real

Modelul real descrie modul in care se poate organiza un eveniment caritabil.


Evenimentul are ca scop strangerea de fonduri pentru diverse case de copii sau
case de batrani. Pentru o buna organizare se formeaza echipe care se ocupa de
contactarea fie a caselor de copii, fie a caselor de batrani. Dintr-o echipa de
organizare fac parte personae voluntare care au un rol stabilit in cadrul desfasurarii
evenimentului. Aceste roluri sunt:
- PR : persoanele care se ocupa de mediatizarea evenimentului
- Prezentaror
- Team LeaderPentru o buna desfasurare a evenimentului sunt angajate diverse
firme:
- Care sa se ocupe de sunet
- De catering
- Care se ocupa de amenajarea locatiei
Fiecare din aceste firme vor trimite reprezentati.
Organizatorii vor contacta diversi artisti pentru a-i bucura pe invitatii evenimentului.
De asemenea, se vor trimite invitatii si unor persoane importante din mass-
media/sport care vor aduce obiecte spre a fi licitate. Cumparatorii pot fi alti invitati
sau alte persoane, numite donatori.
Exista doua tipuri de donatori:-
- Participant fizic: vor sa participle la eveniment pot cumpara un bilet de
intrare si apoi pot sa doneze o suma de bani sau sa cumpere suveniruri
create de copii/batrani din centrele care vor fi ajutate.
- Participant virtual: vor sa doneze prin apel telefonic o anumita suma stabilita
de o companie telefonica
Evenimentul se va desfasura intr-o locatie care sa beneficieze de o parcare, fiecare
loc de parcare fiind rezervat invitatilor speciali.

2. Contrangeri

Modelul de date trebuie sa respecte urmatoarele reguli de functionare:

Fiecare echipa are un singur team leader


Echipa trebuie sa aiba cel putin un PR, dar este posibil sa nu aiba persoane
care sa prezinte evenimentul
Fiecare membru al echipei se ocupa de o singura activitate
Evenimentul se realizeaza intr-o singura locatie
Locatia are mai multe locuri de parcare
Un loc de parcare este asignat unui singur invitat

2
Fiecare invitata are un loc de parcare
Un donator cu participare fizica poate cumpara un singur bilet
Un donator cu participare fizica poate cumpara mai multe obiecte
Un donator cu participare virtuala poate face mai multe apeluri telefonice
La eveniment trebuie sa participle cel putin un donator
Toate obiectele licitate trebuie vandute
Un echipaj mass-media este format din mai multi angajati
La eveniment este angajata o singura firma de catering, sunet, amenajare a
salii
Organizatorul trebuie sa angajeze cel putin o firma

3. Descrierea entitatilor, relatiilor si atributelor

3.1 Entitati

ORGANIZATOR: reprezinta firme, institutii sau ONG care se vor ocupa de


organizarea evenimentului. Cheia primara: id.

ECHIPA DE ORGANIZARE: reprezinta echipa desemnata de organizator care


are rolul de a planui detaliile evenimentului. Cheia primara: id.

MEMBRU: entitate care insumeaza rolurile pe care pot sa le aiba persoanele


din echipa de organizare si date personale. Cheia primara: id.

EVENIMENT: entitatea care reprezinta datele despre eveniment. Cheia


primara: id.

DONATOR: persoanele care doneaza o anumita suma de bani. Cheia primara:


id.

Participant fizic: subentitate a entitatii DONATOR persoana care participa fizic


la eveniment. Cheia primara: id.

Participant virtual: subentitate a entitatii DONATOR persoana care doneaza


bani prin intermediul apelului telefonic. Cheia primara: id.

LOCATIE: locul in care se desfasoara eveimentul. Cheia primara: id.

LOC PARCARE: contine date despre locurile de parcare. Cheia primara: id.

FIRMA: entitate care contine informatii despre firmele care vor fi angajate
pentru a se ocupa de anumite detalii. Cheia primara: id.

3
ANGAJATI FIRME: entitate care contine informatii despre angajatii unei firme.
Cheia primara: id.

BILET: contine date despre biletele vandute la eveniment. Cheia primara: id.

CATEGORIE: contine pretul din categoria din care face parte un bilet. Cheia
primara: categorie.

APEL TELEFONIC: contine date despre persoanele virtuali care doneaza o


suma de bani. Cheia primara: id.

CASE: entitate care contine informatii despre organizatiile care vor primii
ajutor in urma evenimentului. Cheia primara: id.

INVITATI: entitate care inglobeaza tipurile de invitati din cadrul evenimentului.


Cheia primara: id.

Artisti: subentitate a entitatii INVITATI care contine informatii despre artistii


care vor participa la eveniment. Cheia primara: id.

Donatori obiecte: subentitate a entitatii INVITATI care contine informatii


despre invitati care vor aduce obiecte pentru a fi cumparate de participantii
la eveniment. Cheia primara: id.

OBIECTE: entitate care contine informatii despre obiectele donate sau


confectionate. Cheia primara: id.

ECHIPE MASS-MEDIA: entitate care contine informati despre echipele care


mediatizeaza evenimentul. Cheia primara: id.

ANGAJATI: entitate care contine infoamtii despre angajatii care fac parte din
echipele mass-media. Cheia primara: id.

3.2 Relatii

1. ORGANIZATOR_are_ECHIPA DE ORGANIZARE: relatie care leaga entitatea


ORGANIZATOR de entitatea ECHIPA DE ORGANIZARE, reflectand relatia dintre
acestea (care este echipa care se ocupa de organizarea evenimentului).
Relatia are cardinalitatea minima 1:1 ( un organizator trebuie sa numeasca o
echipa care sa se ocupe de organizare si o echipa trebuie sa lucreze la un
organizator), iar cea maxima 1:1( un organizator are o singura echipa de
organizare a evenimentului, iar o echipa de organizare lucreaza numai la un
organizator)

4
2. ORGANIZATOR_organizeaza_EVENIMENT: relatie care leaga entitatea
ORGANIZATOR de entitatea EVENIMENT, reflectand relatia dintre acestea (ce
eveniment organizeaza fiecare organizator). Relatia are cardinalitatea minima
1:1 ( un organizator trebuie sa organizeze un eveniment si un eveniment
trebuie organizat de catre un organizator), iar cea maxima 1:n( un
organizator poate organiza mai multe evenimente, dar un eveniment poate fi
organizat de un singur organizator)

3. ECHIPA DE ORGANIZARE_are_MEMBRI: relatie care leaga entitatea ECHIPA DE


ORGANIZATORE de entitatea MEMBRI, reflectand relatia dintre acestea (care
sunt membruu echipei). Relatia are cardinalitatea minima 1:1 ( o echipa
trebuie sa aiba un membru si un memebru trebuie sa faca parte dintr-o
echipa), iar cea maxima 1:n ( o echipa are mai multi membrii si un memebru
poate sa faca parte dintr-o singura echipa)

4. ECHIPA DE ORGANIZARE_contacteaza_CASE: relatie care leaga entitatea


ECHIPA DE ORGANIZATORE de entitatea CASE, reflectand relatia dintre
acestea (care sunt membruu echipei). Relatia are cardinalitatea minima 1:1
( o echipa trebuie sa contacteze o casa si o casa trebuie sa fie contactata de
o echipa), iar cea maxima 1:n ( o echipa poate sa contacteze mai multe case,
dar o casa poate fi contactata numai de o echipa)

5. MEMBRI_contacteaza_INVITATI: relatie care leaga entitatea MEMBRI de


entitatea INVITATI, reflectand relatia dintre acestea (care invitati sunt
contactati de membri). Relatia are cardinalitatea minima 1:0 ( un invitat
trebuie sa fie contactat de un membru, dar un membru poate sa nu
contacteze niciun artist), iar cea maxima 1:n ( un invitat poate fi contactat de
un singur memebru, dar un membru poate contacta mai multi artisti)

6. INVITATI_participa_la_EVENIMENT: relatie care leaga entitatea INVITATI de


entitatea EVENIMENT, reflectand relatia dintre acestea (care invitati participa
la eveniment). Relatia are cardinalitatea minima 1:1 ( un invitat trebuie sa
participe la eveniment si evenimentul trebuie sa aiba un invitat), iar cea
maxima 1:n ( un invitat poate sa participle la un eveniment si un eveniment
poate sa aiba mai multi invitati)

7. ECHIPE MASS-MEDIA_mediatizeaza_EVENIMENT: relatie care leaga entitatea


ECHIPA MASS-MEDIA de entitatea EVENIMENT, reflectand relatia dintre
acestea (care echipe mass-media mediatizeaza evenimentul). Relatia are
cardinalitatea minima 1:1 ( o echipa trebuie sa mediatizeze un eveniment, iar
un eveniment trebuie sa fie mediatizat de o echipa), iar cea maxima 1:n ( un
eveniment poate fi mediatizat de mai multe echipe, dar o echipa poate
mediatize un singur eveniment)

8. ECHIPE MASS-MEDIA_are_ANGAJATI MASS-MEDIA: relatie care leaga entitatea


ECHIPA MASS-MEDIA de entitatea ANGAJATI MASS-MEDIA, reflectand relatia

5
dintre acestea (ce angajati fac parte dintr-o echipa mass-media). Relatia are
cardinalitatea minima 1:1 ( o echipa trebuie sa aiba cel putin un angajat si un
angajat trebuie sa faca parte din cel putin o echipa), iar cea maxima 1:n ( o
echipa poate contine mai multi angajati, dar un angajat poate face parte
dintr-o singura echipa)

9. DONATORI_prezenti_la_EVENIMENT: relatie care leaga entitatea DONATORI de


entitatea EVENIMENT, reflectand relatia dintre acestea (ce donator participa
la eveniment). Relatia are cardinalitatea minima 1:1 ( un donator trebuie sa
participe la eveniment, dar un eveniment trebuie sa aiba cel putin un donator
), iar cea maxima n:n ( un eveniment poate avea mai multi donator si un
donator poate participa la mai multe evenimente)

10.PARTICIPANT FIZIC_cumpara_BILET: relatie care leaga entitatea PARTICIPANT


FIZIC de entitatea BILET, reflectand relatia dintre acestea ( care sunt biletele
cumparate). Relatia are cardinalitatea minima 1:0 (un participant fizic trebuie
sa cumpere un bilet si un bilet poate sa nu fie cumparat), iar cea maxima 1:1
( un participant poate cumpara un singur bilet si un bilet poate fi cumparat de
un singur participant)

11.BILET_face_parte_din_CATEGORIE: relatie care leaga entitatea BILET de


entitatea CATEGORIE, reflectand relatia dintre acestea ( din ce categorie face
parte un bilet). Relatia are cardinalitatea minima 1:1 ( biletul trebuie sa faca
parte dintr-o categorie si o categorie trebuie sa aiba un bilet), iar cea maxima
1:n ( un bilet face parte dintr-o singura categorie si o categorie poate avea
mai multe bilete)

12.PARTICIPANT FIZIC_cumpara_OBIEC: relatie care leaga entitatea PARTICIPANT


FIZIC de entitatea OBIECT, reflectand relatia dintre acestea ( care sunt
obiectele cumparate de participantii la eveniment). Relatia are cardinalitatea
minima 1:0 (un participant fizic nu trebuie sa cumpere un obiect si un obiect
trebuie cumparat de un participant), iar cea maxima 1:n ( un participant
poate cumpara mai multe bilete, dar un obiect poate fi cumparat de un
singur participant)

13.OBIECT_confectionat_de_CASE: relatie care leaga entitatea OBIECT de


entitatea CASE, reflectand relatia dintre acestea ( care sunt obiectele
confectionate de persoanele din casele de copii/batrani). Relatia are
cardinalitatea minima 1:0 ( o casa poate sa nu confectioneze obiecte, dar un
obiect trebuie sa fie confectionat de o casa), iar cea maxima 1:n ( o casa
poate confectiona mai multe obiecte, dar un obiect poate fi confectionat de o
singura casa)

14.OBIECT_donat_de_INVITATI CU OBIECTE: relatie care leaga entitatea OBIECT


de entitatea INVITATI, reflectand relatia dintre acestea ( care sunt obiectele
care au fost donate de invitati). Relatia are cardinalitatea minima 1:1 ( un

6
obiect trebuie sa fie donat de un invitat si un invitat trebuie sa doneze un
obiect ), iar cea maxima 1:n ( un obiect este donat de un singur invitta si un
invitat poate sa doneze mai multe obiecte)

15.PARTICIPANT VIRTUAL_face_APEL TELEFONIC: relatie care leaga entitatea


PARTICIPANT VIRTUAL de entitatea APEL TELEFONIC, reflectand relatia dintre
acestea ( care sunt participantii virtuali care fac apeluri telefonica). Relatia
are cardinalitatea minima 1:0 (un participant virtual trebuie sa fac un apel
telefonic, dar un apel poate sa nu fie facut de un participant virtual), iar cea
maxima 1:n ( un participant poate sa faca mai multe apeluri telefonica, dar
un apel este facut de un singur participant)

16.FIRMA_participa_la_EVENIMENT: relatie care leaga entitatea FIRMA de


entitatea EVENIMENT, reflectand relatia dintre acestea (ce firme participa la
eveniment). Relatia are cardinalitatea minima 1:0 ( la eveniment trebuie sa
participle cel putin o firma, dar o firma poate sa nu participle la un
eveniment), iar cea maxima n:n ( o firma poate sa participle la mai multe
evenimente si un eveniment poate sa aiba mai multe firme )

17.ANGAJATI FIRME_are_FIRMA: relatie care leaga entitatea ANGAJATI de


entitatea FIRMA, reflectand relatia dintre acestea (ce angajati lucreaza la
firme). Relatia are cardinalitatea minima 1:1( o firma trebuie sa aiba cel putin
un angajat si un angajat trebuie sa lucreze la o firma), iar cea maxima 1:n ( o
firma poate avea mai multi angajati, dar angajatul lucreaza la o singura
firma)

18.EVENIMENT_organizat_la_LOCATIE: relatie care leaga entitatea EVENIMENT de


entitatea LOCATIE, reflectand relatia dintre acestea ( unde se organizeaza
evenimentul). Relatia are cardinalitatea minima 1:0( evenimentul trebuie
organizat intr-o locatie, iar intr-o locatie poate sa nu se organizeze
evenimente), iar cea maxima 1:n ( o locatie poate organia mai multe
evenimente si un eveniment poate fi organizat intr-o singura locatie)

19.LOCATIE_detine_LOC DE PARCARE: relatie care leaga entitatea LOCATIE de


entitatea LOC DE PARCARE, reflectand relatia dintre acestea ( care sunt
locurile de parcare care apartin locatiei). Relatia are cardinalitatea minima
1:0( o locatie trebuie sa detina locuri de parcare, dar un loc de parcare poate
sa nu apartina locatiei ), iar cea maxima 1:n ( o locatie poate avea mai multe
locuri de parcare, dar un loc de parcare apartine unei singure locatii)

20.LOC DE PARCARE_rezervat_INVITATI: relatie care leaga entitatea LOC DE


PARCARE de entitatea INVITATI, reflectand relatia dintre acestea ( care sunt
locurile de parcare rezervate invitatilor). Relatia are cardinalitatea minima
1:0( un loc de parcare poate sa nu fie rezervat, dar fiecare invitat trebuie sa
aiba un loc de parcare rezervat ), iar cea maxima 1:1 ( un loc de parcare

7
poate fie rezervat unui singur invitat si un invitat poate ocupa un singur loc
de parcare)

21.LOC DE PARCARE_ocupat_PARTICIPANT FIZIC: relatie care leaga entitatea LOC


DE PARCARE de entitatea PARTICIPANT FIZIC, reflectand relatia dintre acestea
( care sunt locurile de parcare ocupate de participanti). Relatia are
cardinalitatea minima 0:0( un loc de parcare poate sa nu fie ocupat si un
participant poate sa nu ocupe loc de parcare), iar cea maxima 1:1 ( un loc de
parcare poate fie ocupat unui singur participant si un participant poate ocupa
un singur loc de parcare)

3.3 Atribute

1) ORGANIZATOR

Nume Tip Descriere


Id NUMBER (3) ID-ul este completat in
ordine creacatoare
incepand de la numarul 1
Nume VARCHAR(20) Numele organizatorului
Tip VARCHAR(20) Se completeaza cu tipul
organizatorului: firma,
organizatie
Site VARCHAR2(30) Adresa web a
organizatorului
Fax VARCHAR2(30) Adresa fax a
organizatorului
Informatii VARCHAR2(100) Informatii suplimentare
ale organizatorului

2) ECHIPA DE ORGANIZARE

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma EO-
*, unde * este un numar.
Numerotarea se face
incepand de la 1
crescator.
cod_team_leader VARCHAR(20) Codul coordonatorului de
echipa
cod_organizator VARCHAR2(5) Codul organizatorului

8
3) MEMBRI

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma
MEM-*, unde * este un
numar. Numerotarea se
face incepand de la 1
crescator.
Nume VARCHAR(20) Numele de familie al
membrului
Prenume VARCHAR(20) Prenumele membrului
Numar de telefon VARCHAR(20) Numarul de telefon al
membrului
Rol VARCHAR(20) Rolul persoanei in echipa:
team-leader, promovator,
prezentator eveniment
Cod_echipa NUMBER (3) Id-ul echipei din care face
parte

4) ECHIPAJ MASS-MEDIA

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma
EMM-*, unde * este un
numar. Numerotarea se
face incepand de la 1
crescator.
Tip VARCHAR(20) Desemneaza unul dintre
tipurile de echipaj:
jurnalisti, ziaristi
Nr membrii NUMBER(2) Numarul de membrii din
echipaj
Aparatura VARCHAR(20) Detalii privind aparatura
echipajului
Cod_eveniment VARCHAR2(5) Id-ul evenimentului la
care participa echipajul

5) ANGAJAT MASS-MEDIA

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma
AEMM-*, unde * este un
numar. Numerotarea se
face incepand de la 1
crescator.
Nume VARCHAR(20) Numele angajatului din

9
echipajul mass-media
Prenume VARCHAR2(20) Prenumele angajatului din
echipajul mass-media
E-mail VARCHAR(20) E-mail-ul angajatului din
echipajul mass-media
Numar de telefon NUMBER(10) Numarul de telefon al
angajatului din echipajul
mass-media
Salariu NUMBER(5) Salariul angajatului din
echipajul mass-media
Rol VARCHAR2(20) Rolul angajatului
Cod_echipa VARCHAR2(5) Codul echipei din care
face parte angajatul

6) FIRMA

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma FM-
*, unde * este un numar.
Numerotarea se face
incepand de la 1
crescator.
Nume VARCHAR(20) Numele firmei
Nume _pers_contact VARCHAR2(20) Numele unei persoane de
contact a firmei
E-mail VARCHAR(20) E-mail-ul firmei

7) EVENIMENT-FIRMA

Nume Tip Descriere


Cod_eveniment VARCHAR2 (5) Codul evenimentului
Cod_firma VARCHAR(20) Codul firmei

8) ANGAJAT FIRMA

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma AFM-
*, unde * este un numar.
Numerotarea se face
incepand de la 1
crescator.
Nume VARCHAR(20) Numele angajatului din
firma
Prenume VARCHAR2(20) Prenumele angajatului din
firma
E-mail VARCHAR(20) E-mail-ul angajatului din
echipajul mass-media

10
Numar de telefon NUMBER(10) Numarul de telefon al
angajatului din firma
Salariu NUMBER(5) Salariul angajatului din
firma
Rol VARCHAR(20) Rolul angajatului
Cod_firma VARCHAR2(5) Codul firmei la care este
angajat

9) EVENIMENT

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma EV-
*, unde * este un numar.
Numerotarea se face
incepand de la 1
crescator.
Data de organizare date Data in care se
organizeaza evenimentul
Ora de inceput datetime Ora de inceput a
evenimentului
Nr de bilete NUMBER(4) Numar de bilete
disponibile
Informatii NUMBER(20) Detalii ale evenimentului
Cod_locatie VARCHAR2(5) Codul locatiei la care se
organizeaza evenimentul
Cod_organizator VARCHAR2(5) Codul organizatorului
evenimentului

10) LOCATIE

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma LOC-
*, unde * este un numar.
Numerotarea se face
incepand de la 1
crescator.
Nume VARCHAR2(20) Numele restaurantului,
salii
Capacitate NUMBER(4) Numarul de locuri ale
locatiei
Nr_locuri_parcare NUMBER(4) Numarul de locuri de
parcare ale locatiei
Nume_pers_contact VARCHAR2(20) Numele persoanei de
contact a locatiei
Site VARCHAR2(20) Adresa web a locatiei
E-mail VARCHAR2(20) Adresa e-mail a locatiei
Adresa VARCHAR2(20) Adresa locatiei

11
11) LOC PARCARE

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma
LOCP-*, unde * este un
numar. Numerotarea se
face incepand de la 1
crescator.
Rezervat VARCHAR2(2) Atributul a avea valoare Y
daca locul a fost rezervat
si N daca nua fost
rezervat
Cod_locatie VARCHAR(5) Codul locatiei din care
face parte locul de
parcare

12) DONATORI

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma DON-
*, unde * este un numar.
Numerotarea se face
incepand de la 1
crescator.
Nume VARCHAR(20) Numele donatorului
Prenume VARCHAR2(20) Prenumele donatorului
E-mail VARCHAR(20) E-mail-ul donatorului
Numar de telefon NUMBER(10) Numarul de telefon al
donatorului

13) EVENIMENT-DONATORI

Nume Tip Descriere


Cod_eveniment VARCHAR2 (5) Codul evenimentului
Cod_donator VARCHAR(20) Codul donatorului

14) PARTICIPANT FIZIC

Nume Tip Descriere


Cod_donator VARCHAR2 (5) Codul importat de la
tabelul de baza
Cod_loc_parcare VARCHAR(5) Codul locului de parcare
pe care il ocupa
participantul
Cod_bilet VARCHAR2(5) Codul biletului cumparat

12
15) PARTICIPANT VIRTUAL

Nume Tip Descriere


Cod_donator VARCHAR2 (5) Codul importat de la
tabelul de baza
Retea_telefonica VARCHAR(5) Reteaua din care se
apeleaza

16) BILET

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma BIL-
*, unde * este un numar.
Numerotarea se face
incepand de la 1
crescator.
Pret NUMBER(5) Pretul biletului
Categorie NUMBER(1) Categoria din care face
parte biletul: 1,2,3,4,5. In
functie de categorie este
stabilit pretul
Cod_eveniment VARCHAR(5) Codul evenimentului
asignat biletului

17) CATEGORIE

Nume Tip Descriere


categorie VARCHAR2 (5) ID-ul este de forma CAT-
*, unde * este un numar.
Numerotarea se face
incepand de la 1
crescator. Si este cheia
primara
Pret NUMBER(5) Pretul biletului din
categorie

18) APEL TELEFONIC

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma AT-*,
unde * este un numar.
Numerotarea se face
incepand de la 1
crescator.
Pret NUMBER(5) Pretul apelului telefonic

13
Reteaua VARCHAR2(20) Reteaua apelului telefonic
Cod_donator VARCHAR2(5) Codul participantului
virtual care face apelul
telefonic

19) OBIECTE

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma OD-
*, unde * este un numar.
Numerotarea se face
incepand de la 1
crescator.
Pret initial NUMBER(5) Pretul de inceput al
obiectului la licitatie
Pret final NUMBER(5) Pretul obiectului la finalul
licitatiei
Confectionat VARCHAR(1) Se va completa cu Y,
daca obiectul a fost
confectionat de
persoanele de la case,
sau cu N daca obiectul a
fost primit de la un invitat
Cod_invitat VARCHAR(5) Codul invitatului care
doneaza un obiect pentru
licitatie
Cod_casa VARCHAR2(5) Codul casei de
copii/batrani in cazul in
care obiectul a fost
confectionat
Cod_donator VARCHAR2(5) Codul donatorului care a
cumparat obiectul

20) INVITATI

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma INV-
*, unde * este un numar.
Numerotarea se face
incepand de la 1
crescator.
Nume VARCHAR(20) Numele invitat
Prenume VARCHAR2(20) Prenumele invitat
E-mail VARCHAR(20) E-mail-ul invitat
Numar de telefon NUMBER(10) Numarul de telefon al
invitatului
Cod_membru VARCHAR2(5) Codul membrului care a

14
contactat invitatul
Cod_eveniment VARCHAR2(5) Codul evenimentului la
care a fost invitat

21) ARTISTI

Nume Tip Descriere


Cod_invitat VARCHAR2 (5) Codul invitatului
important din tabelul
parinte
Tip VARCHAR(20) Tipul artistului: musician,
comedian
Suma NUMBER(4) Suma de bani pe care
organizatorul trebuie sa o
plateasca invitatului
Suma donata NUMBER(4) Suma de bani pe care
artistul poate sa o doneze

22) INVITATI CU OBIECTE

Nume Tip Descriere


Cod_invitat VARCHAR2 (5) Codul invitatului
important din tabelul
parinte
Ocupatie VARCHAR(20) Ocupatia invitatului:
sportive, musician

23) CASE

Nume Tip Descriere


Id VARCHAR2 (5) ID-ul este de forma
CASA-*, unde * este un
numar. Numerotarea se
face incepand de la 1
crescator.
Nume VARCHAR(20) Numele casei
Tip VARCHAR2(20) Tipul persoanelor care
locuiesc acolo: copii,
batrani
Nr angajati NUMBER(3) Numarul de angajati care
lucreaza acolo
Nr de locuitori NUMBER(4) Numarul de locuitori din
casa
Nume_pers_contact VARCHAR2(20) Numele persoanei de
contact
Site VARCHAR2(20) Adresa web a casei
E-mail VARCHAR2(20) Adresa de e-mail a casei

15
Nr_telefon NUMBER(10) Numarul de telefon al
casei
cod_echipa VARCHAR2(5) Codul echipei care a
contactat casa
Nume_organizator VARCHAR2(20) Numele organizatorului
care organizeaza
evenimentul
Suma_primita NUMBER(5) Suma primita de casa de
orfani

4. Schemele relationale

ORGANIZATOR ( #id, nume, tip, site, fax, informatii )


ECHIPA DE ORGANIZARE ( #id, cod_team_leader, cod_organizator )
MEMBRI ( #id, nume, prenume, numar_de_telefon, rol, cod_echipa)
ECHIPAJ MASS-MEDIA ( #id, tip, nr_membrii, aparatura, cod_eveniment)
ANGAJAT MASS-MEDIA (#id, nume, prenume, e-mail, numar_de_telefon, salariu,
rol, cod_echipa)
FIRMA ( #id, nume, nume _pers_contact, e-mail)
EVENIMENT-FIRMA(#cod_eveniment, #cod_firma)
ANGAJAT FIRMA ( #id, nume, prenume, e-mail, numar_de_telefon, salariu, rol,
cod_firma)
EVENIMENT ( #id, data_de_organizare, ora_de_inceput, nr_de_bilete, informatii,
cod_locatie, cod_organizator)
LOCATIE (#id, nume, capacitate, nr_locuri_parcare, nume_pers_contact, site, e-
mail, adresa)
LOC PARCARE (#id, rezervat, cod_locatie)
DONATORI (#id, nume, prenume, e-mail, numar_de_telefon)
EVENIMENT(#cod_eveniment, #cod_donator)
PARTICIPANT FIZIC ( #cod_donator, cod_loc_parcare, cod_bilet)

16
PARTICIPANT VIRTUAL (#cod_donator, retea_telefonica)
BILET ( #id, pret, categorie, cod_eveniment)
CATEGORIE(#categorie, pret)
APEL TELEFONIC ( #id, pret, reteaua, cod_donator)
OBIECTE DONATE (#id, pret_initial, pret_final, confectionat, cod_invitat, cod_casa,
cod_donator)
INVITATI ( #id, nume, prenume, e-mail, numar de telefon, cod_membru,
cod_eveniment, cod_loc_parcare)
ARTISTI (#cod_invitat, tip, suma, suma donate)
INVITATI CU OBIECTE (#cod_invitat, ocupatie)
CASE ( #id, nume, tip, nr_angajati, nr_de_locuitori, nume_pers_contact, site, e-mail,
nr_telefon, cod_echipa, nume_organizator, suma_primita)

5. Normalizare

Formele normale ale entitatilor din baza de date relationala sunt definite in raport
cu anomaliile care pot aparea in lucrul cu acele tabele, deci in functie de
dependentele nedorite ce se pot manifesta in cadrul entitatilor.
Inainte de afi oferite exemple pentru trei tipuri de forme normale (FN1, FN2, FN3)
trebuie mentionat faptul ca baza de date create pentru modelul ales respecta
cerintele tuturor celor trei forme normale
De aceea, pentru exeplificare, vor fi considerate anumite tabele cu structura
modificata, astefel invat sa nu mai apartina unei forme normale anume.

5.1 Forma normala 1

Fie tabelul ECHIPA ORGANIZARE cu atributele:


ECHIPA ORGANIZARE

PK id

cod_team_leader

case_contactate

17
A fost adaugat atributul case_contactate ce indica casele care au fost contactate de
echipa pentru a participa la strangerea de fonduri. Se observa ca acesta este un
atribut repetitive, deoarce o echipa poate contacta mai multe case.
Pentru a aduce entitatea ECHIPA ORGANIZARE in FN1 va fi creata entitatea CASE
care va specifica casa contactata de o echipa de organizare (determinate de cheia
externa cod_echipa).

CASE
ECHIPA ORGANIZARE
PK id
nume
PK id
tip
cod_team_leader nr_de_angajati
nr_locuitori
nume_pers_contact
site
e-mail
nr_telefon
cod_echipa

5.2 Forma normala 2

Fie urmatorul tabel:

EVENIMENT-FIRMA
cod_eveniment
PK
cod_firma
ora_inceput

data

e-mail 18

nume
Atributele ora_inceput si data depind doar de cheia primara cod_eveniment, iar e-
mail si nume depind doar de cheia primara cod_firma. Prin urmare entitatea
EVENIMENT-FIRMA nu repecta regula FN2( un atribut care nu este cheie primara
trebuie sa depinda de intreaga cheie).
Asadar, se vor obtine doua proiectii ale tabelului EVENIMENT-FIRMA:
EVENIMENT-FIRMA-1(#cod_eveniment, #cod_firma, ora_inceput,data)
EVENIMENT-FIRMA-2(#cod_firma, e-mail, nume)

5.3 Forma normala 3

Fie urmatorul tabel cu atributele:

BILET

PK id

pret

categorie

cod_eveniment

cod_donator

Tabelul de mai sus este in FN2, dar nu este in FN3, deoarece atributul pret nu
depinde in mod direct de cheia primara, acesta depinde prin intermediul atributului
categorie.
Pentru a obtine o entitate in FN3 se aplica regula Casey-Denobel si tabelul BILET se
proiecteaza in doua tabele, prin eliminarea dependentelor functionale transitive.
Se vor obtine entitatile BILET si CATEGORIE.

19
BILET (#id, pret, categorie, cod_eveniment_cod_donator)
CATEGORIE(#categorie, pret)

6. Denormalizare

Obiectivul denormalizarii este Acela de a reduce numarul de join-uri care trebuie


efectuate pentru rezolvarea unei interogari, prin realizarea unora dintre ele in
avans, ca facand parte din proiectarea bazei de date.
Se poate afirma ca, daca performantele unei cereri nu sunt satisfacatoare si tabelul
pe care se executa cererea are o rata de reactualizare scazuta, dar o rata a
interogarilor foarte ridicata, denormalizare poate constitui o optiune viabila.
Avand in vedere cele expuse, pentru a ilustra un exemplu de denormalizare, fie
considerata diagrama:

ORGANIZATOR

Id
nume
Tip ECHIPA
Site ORGANIZARE
Fax
Informatii Id
Cod_team_leader
Cod_organizator

CASE

Id
Nume
Nr_angajati
Nr_locuitori
Nume_pers_contact
Site
e-mail
nr_telefon
cod_echipa

20
Pentru o eventuala vizualizare definite asupra tabelelor ORGANIZATOR si CASE vor
aparea doua attribute ce vor contine aceeasi informatie: nume_organizator . Astefl
se va imbunatatii performanta executiei interogarii (se va face SELECT direct, pe un
singur tabel, fara sa fie nevoie de doua join-uri).

7. Crearea bazei de date

CREATE TABLE CASE(


id VARCHAR2(5),
nume VARCHAR2(20) NOT NULL,
nr_angajati NUMBER(3),
nr_locuitori NUMBER(4),
nume_pers_contact NOT NULL,
site VARCHAR2(20),
nr_telefon NUMBER(10),
cod_echipa VARCHAR2(5),
nume_organizator VARCHAR2(20),
suma_primita NUMBER(5),
CONSTRAINT PK_CASE PRIMARY KEY (id),
CONSTRAINT FK_CASE_ECHIPA FOREIGN KEY (cod_echipa REFERENCES id)
);

CREATE TABLE LOCATIE(


id VARCHAR2(5),
nume VARCHAR2(20) NOT NULL,
capacitate NUMBER(3),
nr_locuri_parcare NUMBER(4),
nume_pers_contact NOT NULL,
site VARCHAR2(20),
e-mail VARCHAR2(20),

21
adresa VARCHAR2(20),
CONSTRAINT PK_CASE PRIMARY KEY (id),
CONSTRAINT CC1_LOCATIE CHECK (capacitate > 100)
);

8. Ce se doreste de la model

Avand in vedere numarul de tabele si relatiile dintre tabele, utilizatorul aplicatiei


care utilizeaza modelul bazei de date prezentat are posibilitatea de a afla:
Cine sunt organizatorii evenimentului de caritate
Care sunt ehipele de organizare care se vor ocupa de eveniment
Care sunt membrii echipelor si ce rol are fiecare in cadrul evenimentului
Detalii despre eveniment
Informatii generale despre locatia in care se desfasoara evenimentul, precum
si locurile de parcare asociate
Informatii despre posibilii donator: cine sunt donatorii care vor participa fizic
la eveniment, cine sunt cei care vor dona prin apel telefonic
Informatii despre biletele cumparate, categoria din care fac parte, precum si
suma obtinuta din vanzarea biletelor
Suma obtinuta din apelurile telefonice efectuate
Informatii despre echipele mass-media la eveniment
Informatii despre invitati: cine ia contactat, ce obiecte ofera spre licitatie,
ocupatia lor
Ce obiecte au fost confectionate de casele de batrani/copii
Ce suma s-a obtinut din vanzare obiectelor confectionate sau din vanzarea
celor licitate
Tipul caselor contactate: copii, batrani,
Suma primita de fiecare casa de orfani

22

Das könnte Ihnen auch gefallen