Sunteți pe pagina 1din 27

MINISTERUL EDUCATIEI SI

CERCETARII
COLEGIUL NATIONAL
ION MINULESCU
SLATINA,2011

CUPRINS
I) Scenariu
II) ERD
1)Entitati si attribute
2)Diagrama initiala
3)Depistarea greselilor si
corectarea lor
4)Discutarea relatiilor
5)Rezolvarea relatiilor manyto-many
6)Diagrama finala
III) Bibliografie

I)Scenariu

Traim intr-o lume moderna in care oamenii au nevoie de


mijloace de transport pentru deplasa diferite marfuri in
diferite locatii. In acest moment intervine firma de
transporturi care la cererea clientului, pune la dispozitie
diferite mjloace de transport.
Mereu am fost curios sa aflu cum functioneaza o astfel de
firma si ce presupune lucrul intr-o astfel de firma, din
momentul primirii unei cereri pana in stadiul final.
Din punctul de vedere al clientului lucrurile stau relative
simplu. El doreste sa transporte diferite materiale intr-o
anumita locatie. Hotarat fiind de ceea ce isi doreste apeleaza
la serviciile unei firme de constructii care din momentul
primirii cererii se ii pune la dispozitie un mijloc de transport
care se potriveste cererii acestuia.
In schimb, din punctul de vedere al firmei de transporturi
lucrurile stau altfel. Din momentul primirii cererii angajatii
firmei se pun pe treaba si lucreaza intens pentru a intocmi
un proiect care sa corespunda dorintelor clientului.

II)ERD
Entitati si attribute
ENTITATE

ATRIBUTE

PUNCT FIRMA PROIECTARE

cod, nume, adresa

ORAS

cod_postal, nume

DEPARTAMENT

cod_dep

ANGAJAT

cnp,nume,prenume, adresa, e-mail

SALARIU

luna,nr_ore_lucrate, sal_baza, comision

TRANSPORT

nr_inregistr, nume

COST TRANSPORT

data, pret, curs_valutar

BENEFICIAR

nume, adresa

MIJLOC TRANSPORT

cod_mijloc

MARFA

cod_marfa

DOCUMENTARE

cod_doc

SUBENTITATI

ATRIBUTE

SECRETARIAT
SOFERI

INTRETINERE

INFORMATICA

EDITARE

PERSOANA_FIZICA

cnp

PERS_JURIDICA

cnp

2)Diagrama Initiala
DEPARTAMENT

PUNCT FIRMA
TRANSPORTUR
I
#cod
*nume
*adresa

ANGAJAT

#cod_dep
are

#CNP
*nume
*prenume
*data_naste
rii
*adresa
e-mail

are
apar
tine

SECRETARIAT

lucrea
za

SOFERI
INTRETINERE

aparti
ne

contin
e
ORAS
#cod_postal
*nume

EDITARE

MIJLOC
TRANSPORT
#cod_mijloc
MARFA
#cod_marfa

DOCUMENTARE
#cod_doc

primes
te

aparti
ne

este

BENEFICIAR

est
e

TRANSPORT
este

est
e

#luna
*nr_ore_lucrate
*sal_baza
comision

realizea
za

INFORMATICAA

SALARIU

este

#nr_inregistr
*nume

prime
ste

PERS_FIZICA
#CNP
PERS_JURIDIC
A
#CNP

are

apartin
e
COST_TRANSPORT
#data
*pret
*curs_valutar

ajun
ge

*nume
*adresa

3) Depistarea greselilor si corectarea lor


Normalizarea este o tehnica de proiectare a bazelor de date
prin care se elimina( sau se evita) anumite anomalii si
inconsistente ale datelor. O baza de date bine proiectata
nu permite ca datele sa fie redundante, adica aceeasi
informatie sa se gaseasca in locuri diferite sau sa se
memorize in baza de date informatii care se pot deduce pe
baza altor informatii memorate in baza de date.
Anomaliile care pot sa apara la o baza de date
nenormalizata sunt urmatoarele:
-anomalii la actualizarea datelor;
-anomalii de inserare;
-anomalii de stergere.

Conceptul de normalizare a bazelor de date a


fost pentru prima data introdus de catre Edgar
Frank Codd.
Edgar Codd a definit primele trei forme normale
1NF, 2NF si 3NF.

Prima forma normala(1NF)


O entitate se gaseste in prima forma normala daca si numai daca:
-nu exista attribute cu valori multiple;
-nu exista attribute sau grupuri de attribute care se repeat.
Cu alte cuvinte, toate atributele trebuie sa fie atomice, adica sa
contina o singura informatie.
Daca un atribut are valori multiple sau un grup de attribute se repeat,
atunci trebuie sa create o entitate suplimentara pe care o legati de
entitatea originala printr-o relatie 1:m . In noua entitate vor fi
introduce atributele sau grupurile de attribute care se repeat.
A doua forma normala (2NF)
O entitate se gaseste in a doua forma normala daca si numai daca:
-se gaseste in prima forma normala;
-orice atribut care nu face parte din UID ( Unique Identifier) va
depinde de intregul UID, nu doar de o parte a acestuia.

DEPARTAMENT
#cod_dep
#cod_angajat
*data_nasterii
*adresa

Se observa ca data_nasterii si adresa


sunt doua attribute care depind doar
de cod_angajat, nu de intregul UID
care este combinatia dintre atributele
cod_dep si cod_angajat. Aceasta
situatie se rezolva prin crearea unei
noi entitati ANGAJAT pe care o
legam de entitatea DEPARTAMENT
printr-o relatie 1:m.
O situatie mai speeciala este in cazul
relatiilor barate, cand trebuie tinut
seama ca UID-ul unei entitati este
compus din attribute din entitatea
respectiva, plus un atribut sau mai
multe provenite din relatia barata.

DEPARTAMENT
#cod_dep

ANGAJAT
#CNP
*nume
*prenume
*data_nasterii
*adresa

A treia forma normala (3NF)


O entitate se gaseste in a treia forma normala daca si
numai daca:
-se gaseste in a doua forma normala;
-nici un atribut care nu este parte a UID-ului nu depinde
de un alt atribut non-UID.
Cu alte cuvinte nu se accepta dependente tranzitive,
adica un atribut sa depinda de UID in mod indirect.

4) Discutarea relatiilor
ORAS - PUNCT FIRMA TRANSPORTURI : relatie one-to-many
Un ORAS poate contine una sau mai multe FIRME DE
TRANSPORTURI.
O FIRMA DE TRANSPORTURI apartine unui ORAS.

ORAS
#cod_postal
*nume

PUNCT FIRMA
TRANSP
#cod
*nume
*adresa

PUNCT FIRMA TRANSPORTURI DEPARTAMENT : relatie one-tomany


O FIRMA DE TRANSPORTURI unu sau mai multe DEPARTAMENTE.
Un DEPARTAMENT apartine unei FIRME DE TRANSPORTURI

DEPARTAMENT
PUNCT FIRMA
TRANSPORTURI
#cod
*nume
*adresa

#cod_dep
SECRETARIAT
SOFERI
INTRETINERE
INFORMATICA
EDITARE

DEPARTAMENT ANGAJAT : relatie one-to-many


Un DEPARTAMENT are unul sau mai multi ANGAJATI.
Un ANGAJAT lucreaza intr-un anumit DEPARTAMENT.

DEPARTAMENT
#cod_dep
SECRETARIAT
SOFERI

INTRETINERE
INFORMATICA
EDITARE

ANGAJAT
#cnp
*nume
*prenume
*data_naste
rii
*adresa
e-mail

ANGAJAT - SALARIU : relatie one-to-many


Un ANGAJAT primeste unul sau mai multe SALARII.
Un SALARIU apartine unui ANGAJAT.

ANGAJAT
#cnp
*nume
*prenume
*data_nasterii
*adresa
e-mail

SALARIU
#luna
*nr_ore_lucrate
*sal_baza
comision

ANGAJAT TRANSPORT : relatie one-to-many


Un ANGAJAT realizeaza unul sau mai multe TRANSPORTURI.

UN TRANSPORT este realizata de un ANGAJAT

ANGAJAT
TRANSPORT
#cnp
*nume
*prenume
*data_nasterii
*adresa
e-mail

#nr_inregistr
*nume

TRANSPORT MIJLOC TRANSPORT


TRANSPORT MARFA
relatie de tip arc
TRANSPORT DOCUMENTARE
UN TRANSPORT este fie MIJLOC DE TRANSPORT, fie MARFA,
fie DOCUMENTARE.
UN MIJLOC reprezinta unul sau mai multe TRANSPORTURI.
O MARFA reprezinta una sau mai multe TRANSPORTURI.
O DOCUMENTARE reprezinta una sau mai multe TRANSPORTURI.
MIJLOC DE TRANS
#cod_mijloc
TRANSPORT
MARFA
#nr_inregistr
*nume

#cod_marfa

DOCUMENTARE
#cod_doc

TRANSPORT COST TRANSPORT : relatie one-tomany


UN TRANSPORT are una sau mai multe COSTURI.
COSTUL apartine unui TRANSPORT.

TRANSPORT
# nr_inregistr
*nume

COST_TRANSP
#data
*pret
*curs_valutar

TRANSPORT BENEFICIAR : relatie many-to-many


Unul sau mai multe TRANSPORTURI ajung la un
BENEFICIAR.
Unul sau mai multi BENEFICIARI primesc un TRANSPORT.

BENEFICIAR

TRANSPORT

*nume
*adresa
PERS_FIZICA

#nr_inregistr
*nume

#cnp
PERS_JURIDICA
#cnp

5) Rezolvarea relatiilor many-to-many


Relatiile many-to-many pot aparea intr-o prima faza a proiectarii
bazei de date, insa ele nu au voie sa apara in schema finala.
Rezolvarea unei relatii many-to-many consta in introducerea unei
noi entitati numita entitate de intersectie , pe care o legam de
entitatile originale prin cate o relatie one-to-many.

Pasul 1:
-se gaseste entitatea de intersectie-pt cazul nostru, vom introduce
entitatea EVIDENTA_TRANSPORT

Pasul 2: se creaza noile relatii


optionalitatea - relatiile care pleaca din entitatea de
intersectie sunt intotdeauna obligatorii in aceasta parte. In
partea dinspre entitatile originale, relatiile vor pastra
optionalitatea relatiilor initiale.
cardinalitatea- ambele relatii sunt de tip one-to-many,
iar partea cu many va fi intotdeauna inspre entitatea de
intersectie.
numele noilor relatii

TRANSPORT
#nr_inregistr
*nume

BENEFICIAR
are

primeste

*nume
*adresa

PERS_FIZICA
#cnp

apartin
e

EVIDENTA_TRANSPORT

ajunge

PERS_JURIDICA
#cnp

Pasul 3: -adaugarea de attribute in cadrul entitatii


daca acestea exista
Pasul 4: -stabilirea identificatorului unic pentru entitatea
de intersectie; daca entitatea de intersectie nu are un
identificator unic propriu, atunci acesta se poate
forma din identificatorii unici ai entitatilor initiale,
la care putem adauga attribute ale entitatii de
intersectie.

BENEFICIAR

TRANSPORT
#nr_inregistr
*nume

are

primest
e

*nume
*adresa

PERS_FIZICA
#cnp

PERS_JURIDICA
#cnp

aparti
ne

ajunge

EVIDENTA_TRANSPORT
#data inceput
#data sfarsit

Faptul ca identificatorul unic (UID) al unei entitati preia


identificatorul unic din alta entitate cu care este legata
este reprezentat graphic prin bararea relatiei respective,
inspre entitatea care preia UID-ul celeilalte entitati
BENEFICIAR
TRANSPORT
are

#nr_inregistr
*nume

primest
e

*nume
*adresa
PERS_FIZICA
#cnp

PERS_JURIDICA
#cnp
aparti
ne

ajung
e

EVIDENTA_TRANS
#data_inceput
#data_sf

PUNCT FIRMA
TRANSPORTUR
I
#cod
*nume
*adresa

ANGAJAT

DEPARTAMENT
#cod_dep

are

SECRETARIAT

aparti
ne

are

SOFERI

lucrea
za

#CNP
*nume
*prenume
*adresa
e-mail

SALARIU
primes
te
obtinut

# luna
*nr_ore_lucrate
*sal_baza
comision

INTRETINERE

aparti
ne

tine

INFORMATICA

contin
e
MIJLOC
ORAS
TRANS
#cod_postal
#cod_mijloc
*nume
MARFA
#cod_marfa
DOCUMENTARE
#cod_doc

tinuta

EDITARE

FACTU

EVID_TRANSPORT
este
est
e

TRANSPORT
est
e

#nr_inregistr
*nume

est
e

are
apartin
e

#data_inceput
#data_sf
ajung
e

are

aparti
ne
COST_TRANSPOR
T
#data
*pret
*curs_valutar

primest
e
BENEFICIAR
#nume
*adresa
PERS_FIZICA
#CNP
PERS_JURIDICA
#CNP

genere
aza
reiese

*sume_p
#data

III) Bibliografie

- Manual de Informatica Intensiv pentru


clasa a XII-a
( Autori: Vlad Tudor Hutanu si Carmen
Popescu)
- site-ul Oracle Academy:
https://academy.oracle.com

S-ar putea să vă placă și