Beruflich Dokumente
Kultur Dokumente
1
1. Descrierea modelului real
2. Contrangeri
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.1 Entitati
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.
CASE: entitate care contine informatii despre organizatiile care vor primii
ajutor in urma evenimentului. Cheia primara: id.
ANGAJATI: entitate care contine infoamtii despre angajatii care fac parte din
echipele mass-media. Cheia primara: id.
3.2 Relatii
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)
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)
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)
7
poate fie rezervat unui singur invitat si un invitat poate ocupa un singur loc
de parcare)
3.3 Atribute
1) ORGANIZATOR
2) ECHIPA DE ORGANIZARE
8
3) MEMBRI
4) ECHIPAJ MASS-MEDIA
5) ANGAJAT MASS-MEDIA
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
7) EVENIMENT-FIRMA
8) ANGAJAT FIRMA
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
10) LOCATIE
11
11) LOC PARCARE
12) DONATORI
13) EVENIMENT-DONATORI
12
15) PARTICIPANT VIRTUAL
16) BILET
17) CATEGORIE
13
Reteaua VARCHAR2(20) Reteaua apelului telefonic
Cod_donator VARCHAR2(5) Codul participantului
virtual care face apelul
telefonic
19) OBIECTE
20) INVITATI
14
contactat invitatul
Cod_eveniment VARCHAR2(5) Codul evenimentului la
care a fost invitat
21) ARTISTI
23) CASE
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
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.
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
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)
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
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).
21
adresa VARCHAR2(20),
CONSTRAINT PK_CASE PRIMARY KEY (id),
CONSTRAINT CC1_LOCATIE CHECK (capacitate > 100)
);
8. Ce se doreste de la model
22