Sunteți pe pagina 1din 45

Colegiul Național “DINICU GOLESCU” Câmpulung

Gestiunea unui magazin de calculatoare

Lucrare pentru atestarea competențelor profesionale

Elev: Scîrlet Emanuel


Clasa: 12c
Profesor coordonator: Tătulea Maria
Cuprins
 Introducere baze de date
 Descrierea afacerii
 Necesitatea crearii bazei de date
 Obiective operationale
 Reguli de integritate
 Reguli structurale
 Reguli procedurale
 ERD initial
 Rezolvarea relatiilor Many to Many
 ERD final
 Tabele in Oracle
 Implementarea aplicatiei in Oracle
 Concluzii
 Bibliogafie
Baze de date
 Din dorinta de a lucra mai usor, oamenii tind sa-si informatizeze toate
activitatile. Una dintre aceste activitati este si « Depozitul de
Calculatoare »
 Pentru aceasta s-a folosit o baza de date in Oracle.
 O baza de date este o colectie de informatii corelate, referitoare la un
anumit subiect sau colectate, organizate si memorate intr-un anumit
scop. Sistemul care permite colectarea, organizarea, memorarea si
regasirea informatiilor dintr-o baza de date se numeste sistem de
gestiune al bazelor de date (SGBD). Acesta poate fi conventional, in
care infomatiile sunt stocate pe foi de hartie si computerizat, in care
informatiile sunt pastrate in volume. Oracle este un astfel de sistem
interactiv, computerizat pentru gestionarea bazelor de date relationale.
 Cel mai raspandit tip de baze de date este cel relational, in care datele
sunt memorate in tabele. Pe langa tabele, o baza de date relationala
mai poate contine: indecsi, proceduri stocate, declansatori, utilizatori
si grupuri de utilizatori, tipuri de date, mecanisme de securitate si de
gestiune a tranzactiilor etc.
Descrierea afacerii
 Trebuie sa se proiecteze o baza de date a unui depozit de calculatoare.
Baza de date trebuie sa contina informatii despre firma, despre
serviciile pe care le ofera, produsele pe care le comercializeaza dar si
despre angajatii si clientii sai.
 Se doreste o evidenta clara a angajatilor depozitului cu ajutorul datelor
personale (nume, prenume, data angajarii, adresa, telefon, salariu
precum si departamentul in care acestia lucreaza) .
 De asemenea, firma isi propune sa pastreze si o evidenta a clientilor
(nume, prenume, CNP, adresa, e-mail tipul acestuia precum si
reducerea de care acesta se bucura prin prisma fidelitatii sale)
deoarece depozitul deruleaza programe de fidelizare a acestora.
 Depozitul poate colabora cu importatori si/sau distribuitori (pot exista
mai multe firme care distribuie acelasi produs), in acest caz
informatiile despre aceste firme trebuie inregistrate in baza de date.
 Deoarece este un depozit de calculatoare, firma este specializata in
comercializarea produselor si serviciilor IT. Pentru aceasta are nevoie
sa stocheze in baza sa de date informatii referitoare la produse
(numele produsului, model, pret, tipul licentei si numarul de utilizatori
daca acesta este de tip software sau o descriere amanuntita daca
acesta este de tip hardware, garantie), cat si informatii referitoare la
servicii (denumire, descriere, cost si unde este necesar si observatii).
 Deoarece depozitul de calculatoare ofera garantie tuturor produselor
sale are nevoie sa cunoasca si date despre producatorii acestora in
vederea contactarii lor in cazul in care exista probleme cu produsele
lor ( producator, website, locatie, telefon, e-mail) .
 De asemenea, firma trebuie sa ai o evidenta clara a produselor care se
afla pe stoc sau care sunt in curs de aprovizionare. Pentru aceasta are
nevoie sa deruleze contracte de furnizare cu furnizorii sai, informatie
care trebuie stocata in baza de date (este necesar sa se cunoasca data
incheierii contractului, cand a fost plasata o comanda, cand a fost
livrata, costul contractului precum si eventualele observatii) .
 Firma trebuie sa tina si o evidenta asupra veniturilor si a cheltuielilor,
obtinuta cu ajutorul facturilor.
 Angajatii depozitului pot oferi atat servicii clientilor cat si produsele
existente in stoc, in functie de specializarea fiecarui angajat. Fiecare
angajat are un salariu de baza, la care se adauga diferite bonusuri in
functie de performantele acestuia.
 Clientii, la randul lor, pot solicita atat servicii cat si produse,
depozitului. Evidenta produselor se tine prin comenzile pe care clientii
le fac depozitului (se memoreaza informatii referitoare la data
comenzii, numarul de bucati, factura, produs si angajatul care i-a
preluat comanda) .
 Evidenta serviciilor se memoreaza prin prestarile de servicii pe care
angajatii depozitului le ofera clientilor (se memoreaza date referitoare
la serviciu, angajat si client).
Reguli de integritate
 Regulile de integritate sunt asertiuni pe care datele continute in baza
de date trebuie sa le satisfaca.
 Exista trei tipuri de constrangeri structurale (de cheie, de referinta,
de entitate) ce constituie multimea minimala de reguli de integritate
pe care trebuie sa le respecte un SGBD relational. Restrictiile de
integritate minimale sunt definite in raport cu notiunea de cheie a unei
relatii.
 O multime minimala de atribute ale caror valori indentifica unic un
tuplu intr-o relatie reprezinta o cheie pentru relatia respectiva.
 Feicare relatie are cel putin o cheie. Una dintre cheile candidat va fi
aleasa pentru a indentifica tupluri si ea va primi numele de cheie
primara. Cheia primara nu poate fi reactualizata. Atributele care
reprezinta cheia primara sunt fie subliniate, fie urmate de semnul #.
 O cheie indentifica linii si este diferita de un index care localizeaza
liniile. O cheie secundara este folosita ca index pentru a accesa
tupluri. Un grup de atribute din cadrul unei relatii care contine o cheie
a relatiei poarta numele de supercheie .
 Modelul relational respecta trei reguli de integritate structurala .
 Regula 1: Unicitatea cheii. Cheia primara trebuie sa fie unica si
minimala .
 Regula 2: Integritatea entitatii. Atributele cheii primare trebuie sa fie
diferite de valoarea null .
 Regula 3: Integritatea referirii. O cheie externa trebuie sa fie ori null in
intregime, ori sa corespunda unei valori a cheii primare asociate .
 Transformarea relatiilor
 Relatiile 1:1 si 1:n devin chei externe (chei straine) .
 Relatia m:n devine un tabel special, numit tabel asociativ, care are
doua chei externe pentru cele doua tabele asociate. Cheia primara
este compunerea acestor doua chei externe plus eventuale coloane
aditionale. Tabelul se deseneaza punctat .
 Relatiile de tip trei devin tabele asociative. Cheia primara este
compunerea a trei chei externe plus eventuale coloane aditionale.
 Transformarea atributelor
 Un atribut singular devine o coloana.
 In anul 1985, E.F. Codd a publicat un set de 13 reguli in raport cu care un
sistem de gestiune a bazelor de date poate fi apreciat ca relational .
 O restrictie este o regula specificata pentru un obiect al bazei de date (de
obicei un tabel sau o coloana), avand rolul de a limita intr-un mod oarecare
domeniul de valori permise pentru obiectul respectiv al bazei de date.
Exista mai multe tipuri de restrictii pentru bazele de date:
 Restrictia NOT NULL poate fi plasata pe o coloana pentru a impedica
folosirea valorilor nule .
 Restrictia cheie primara (primary key) definita pe coloana (coloanele)
cheie primara ale unui tabel pentru a garanta ca valorile cheie primara sunt
intotdeauna unice in intreg tabelul .
 Restrictia de unicitate (unique) definite pe o coloana sau un set de coloane
care trebuie sa contina valori unice ale tabelului .
 Restrictia referentiala (numita uneori restrictie de integritate referentiala)
este o restrictie care impune o relatie intre doua tabele dintr-o baza de
date relationala .
 Restrictia CHECK foloseste o instructiune logica simpla (scrisa in SQL)
pentru a valida valoarea unei coloane .
 Un index reprezinta o cale rapida de localizare si sortare a inregistrarilor
dintr-o tabela prin gruparea tuturor inregistrarilor pentru un anumit
atribut sau grup de atribute .
 Indexarea este utilizată in două scopuri principale :
 - accelerarea cautarilor in baza de date
 - asigurarea unicitatii inregistrarilor
 Anomalia de inserare se refera la o situatie in care nu puteti insera
date in baza de date din cauza unei dependente artificiale dintre
coloanele unui tabel .
 Anomalia de stergere este inversul anomaliei de inserare. Se refera la
situatia in care stergerea unor date duce la pierderea neintentionata a
altor date .
 Anomalia de actualizare se refera la o situatie in care actualizarea unei
singure valori necesita actualizarea mai multor randuri.
 Scopul procesului de normalizare este eliminarea anomaliilor de
inserare, actualizare si stergere .
 Primul pas al procesului de normalizare consta in alegerea unui
identificator unic (unique identifier), care este un atribut (o coloana)
sau un set de atribute care identifica in mod unic fiecare rand de date
dintr-o relatie. Identificatorul unic va deveni ulterior cheia primara a
tabelului creat.
 Prima forma normala: eliminarea datelor repetate
 O relatie este in prima forma normala atunci cand nu contine atribute
cu valori multiple (atribute multi valoare), adica atribute care au mai
multe valori pentru acelasi rand de date.
 A doua forma normala: eliminarea dependentelor partiale
 Se spune ca o relatie este in a doua forma normala daca indeplineste
urmatoarele criterii:
 -Relatia este in prima forma normala
 -Toate atributele non-cheie sunt dependente functional de
indentificatorul unic (cheia primara), luat ca intreg.
 A doua forma normala se aplica numai relatiilor care au
indentificatoare unice concatenate (adica formate din atribute
multiple).
 A treia forma normala: eliminarea dependentelor tranzitive
 Un atribut care depinde de un atribut care nu este indentificator unic
(cheie primara) a relatiei se spune ca este dependent tranzitiv. Se
spune ca o relatie este in a treia forma normala daca indeplineste
urmatoarele doua criterii:
 Relatia este in a doua forma normala .
 Nu exista dependente tranzitive (cu alte cuvinte, toate atributele
non-cheie depind numai de indenficatorul unic) .
Regulile procedurale
 Sa se afiseze numele, prenumele, numarul de telefon, adresa tuturor
angajatilor
select angajat, telefon, adresa
from angajati
 Sa se afiseze adresa si numarul de telefon al clientului “Popescu Ion”
select adresa, telefon
from clienti
where client = “Popescu Ion”
 Sa se afiseze toate produsele care se afla in stoc
select produs, model
from produse
where stoc = “DA”
 Sa se afiseze producatorii care au locatia in Bucuresti
select producator, website, telefon, email
from producatori
where locatie = “Bucuresti”
 Sa se afiseze angajatii din departamentul de vanzari
select angajat
from angajati
where departament = “Vanzari”
 Sa se afiseze comenzile care contin mai mult de 3 produse de acelasi
tip
select id_comanda, data
from comenzi
where nr_buc >=3
 Sa se afiseze produsele care au fost cumparate de mai mult de 5 ori
select produs
from produse
where id_factura>=5
Reguli structurale
 Furnizor – Contract
o Un furnizor are unul sau mai multe contracte .
o Un contract apartine unui singur furnizor .
 Contract – Furnizare
o Un contract deruleaza una sau mai multe furnizari .
o O furnizare apare intr-un singur contract .
 Furnizare – Produs
o O furnizare contine un singur produs .
o Un produs apare pe unul sau mai multe furnizari .
 Producator – Produs
o Un producator produce unul sau mai multe produse .
o Un produs este produs de un singur producator .
 Factura – Produs
o O factura contine unul sau mai multe produse .
o Un produs apare pe o singura factura .
 Comanda – Factura
o O factura apartine unei singure comenzi .
o O comanda are o singura factura .
 Comanda – Client
o O comanda este facuta de un client .
o Un client face una sau mai multe comenzi .
 Comanda – Angajat
o O comanda este realizata de un angajat .
o Un angajat realizeaza una sau mai multe comenzi .
 Angajat – Serviciu
o Un angajat realizeaza unul sau mai multe servicii .
o Un serviciu este facut de un singur angajat .
 Serviciu – Prestari
o Un serviciu apare intr-una sau mai multe liste de prestari servicii .
o O lista de prestari servicii contine un singur serviciu .
 Prestari – Clienti
o O lista de prestari servicii are un singur client .
o Un client apare in una sau mai multe liste de prestari servicii .
ERD INITIAL SERVICIU
#id_serviciu
ANGAJAT
*Denumire
FURNIZOR #id_angajat
realizeaza *Descriere
#id_furnizor *Angajat
*Pret
*Denumire *Data_nasterii este realizat °Observatii
*Adresa are *Data_angajarii
*Telefon *Adresa

este cerut
*Email *Telefon
*Contact *Gen

preia
*Comision

cere
apartine
*Bonus
Tehnician
*Salariu_baza CLIENT
#id_client

este preluata
CONTRACT *Client
#id_contract Vanzator
*Salariu_baza *CNP
*Data *Adresa
PRODUS
*Pret *Email
#id_produs
°Observatii °Reducere
exista

*Produs
*Model COMANDA
contine PRODUCATOR

face
*Pret #id_comanda
*Tip se afla #id_producator *Data
*Stoc este produs *Website contine este facuta
*Nr_buc
*Observatii produce *Telefon
*Locatie
*Email
Rezolvarea relatiilor M : M
Produs - Contract
PRODUS CONTRACT
#id_produs #id_contract
*Produs *Data
*Model *Pret
*Pret °Observatii
*Tip
*Stoc

contine
*Observatii
apare

FURNIZARE
furnizeaza #id_furnizare apartine
*Data_plasare
*Data_livrare
*Cantitate
Rezolvarea relatiilor M : M
Produs - Comanda
PRODUS COMANDA
#id_produs #id_comanda
*Produs *Data
*Model *Nr_buc
*Pret
*Tip

are
*Stoc
*Observatii
se afla

FACTURA
contine #id_factura apartine
*Data
°Observatii
Rezolvarea relatiilor M : M
Client - Serviciu
este oferita PRESTARE contine
#id_prestare
*Data

apartine
cere

CLIENT SERVICIU
#id_client #id_serviciu
*Client *Denumire
*CNP *Descriere
*Adresa *Pret
*Email °Observatii
°Reducere
ERD Final realizeaza
este realizat
SERVICIU
FURNIZOR #id_serviciu
#id_furnizor *Denumire
CONTRACT ANGAJAT
*Denumire *Descriere
apartine #id_contract #id_angajat
*Adresa contine *Pret
*Data *Angajat
*Telefon are °Observatii
*Pret

apartine
*Data_nasterii
*Email °Observatii *Data_angajarii apartine
*Contact *Adresa contine
*Telefon
FURNIZARE *Gen PRESTARE
furnizeaza #id_furnizare *Comision #id_prestare
*Data_plasare *Bonus *Data
*Data_livrare Tehnician
*Cantitate

este oferita
PRODUS *Salariu_baza
#id_produs
*Produs FACTURA Vanzator
apare #id_factura *Salariu_baza

cere
*Model contine
*Pret *Data preia
*Tip se afla °Observatii CLIENT
este preluata
*Stoc #id_client
PRODUCATOR este facuta *Client
apartine

*Observatii
#id_producator COMANDA
*CNP
produce *Website #id_comanda face
*Adresa
*Telefon are *Data
este produs *Email
*Locatie *Nr_buc
°Reducere
*Email
Tabele in Oracle
Angajati
Tabele in Oracle
Servicii
Tabele in Oracle
Prestari
Tabele in Oracle
Clienti
Tabele in Oracle
Comenzi
Tabele in Oracle
Facturi
Tabele in Oracle
Producatori
Tabele in Oracle
Furnizori
Tabele in Oracle
Contracte
Tabele in Oracle
Furnizari
Tabele in Oracle
Produse
Bibliografie
 Alan Shalloway, James Trott – Design Patterns Explained: A New
Perspective on Object-Oriented Design, 2nd Edition, Addison Wesley
Professional, 2005
 Avornicului C., Tomai N, Avornicului M. – Proiectarea obiectuala si
UML, Editura RISOPRINT, Cluj-Napoca, 2004
 Pantiru Mariana, Pantiru Ionut – Baze de date, Editura L&S Informat
Bucureşti, 1999
 Doina Narcisa Merlan – Aplicatii ORACLE - SQL si PL/SQL pentru
elevii claselor a XII-a, matematica-informatica, Else, 2011
 Constantin Lupsoiu – Sisteme de baze de date - fundamente teoretice,
Sitech, 2011
 www.en.wikipedia.org

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