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

Gestiunea unui magazin de calculatoare

Embed Size (px)

Citation preview

Page 1: Gestiunea unui magazin de calculatoare

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

Page 2: Gestiunea unui magazin de calculatoare

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

Page 3: Gestiunea unui magazin de calculatoare

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.

Page 4: Gestiunea unui magazin de calculatoare

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.

Page 5: Gestiunea unui magazin de calculatoare

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) .

Page 6: Gestiunea unui magazin de calculatoare

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).

Page 7: Gestiunea unui magazin de calculatoare

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 .

Page 8: Gestiunea unui magazin de calculatoare

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.

Page 9: Gestiunea unui magazin de calculatoare

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 .

Page 10: Gestiunea unui magazin de calculatoare

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.

Page 11: Gestiunea unui magazin de calculatoare

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:

Page 12: Gestiunea unui magazin de calculatoare

Relatia este in a doua forma normala .

Nu exista dependente tranzitive (cu alte cuvinte, toate atributele

non-cheie depind numai de indenficatorul unic) .

Page 13: Gestiunea unui magazin de calculatoare

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”

Page 14: Gestiunea unui magazin de calculatoare

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

Page 15: Gestiunea unui magazin de calculatoare

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 .

Page 16: Gestiunea unui magazin de calculatoare

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 .

Page 17: Gestiunea unui magazin de calculatoare

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 .

Page 18: Gestiunea unui magazin de calculatoare

ERD INITIAL

FURNIZOR

#id_furnizor

*Denumire

*Adresa

*Telefon

*Email

*Contact

PRODUS

#id_produs

*Produs

*Model

*Pret

*Tip

*Stoc

*Observatii

PRODUCATOR

#id_producator

*Website

*Telefon

*Locatie

*Email

ANGAJAT

#id_angajat

*Angajat

*Data_nasterii

*Data_angajarii

*Adresa

*Telefon

*Gen

*Comision

*Bonus

CONTRACT

#id_contract

*Data

*Pret

°Observatii

SERVICIU

#id_serviciu

*Denumire

*Descriere

*Pret

°Observatii

CLIENT

#id_client

*Client

*CNP

*Adresa

*Email

°Reducere

Tehnician

*Salariu_baza

Vanzator

*Salariu_baza

COMANDA

#id_comanda

*Data

*Nr_buc

are

apar

tine

produce

este produs

exis

ta

contine

contine se afla fa

ce

este facuta

pre

ia

est

e p

relu

ata

realizeaza

este realizat

cere

est

e c

eru

t

Page 19: Gestiunea unui magazin de calculatoare

Rezolvarea relatiilor M : M

Produs - Contract

PRODUS

#id_produs

*Produs

*Model

*Pret

*Tip

*Stoc

*Observatii

CONTRACT

#id_contract

*Data

*Pret

°Observatii

FURNIZARE

#id_furnizare

*Data_plasare

*Data_livrare

*Cantitate

apar

e

furnizeaza

contine

apartine

Page 20: Gestiunea unui magazin de calculatoare

PRODUS

#id_produs

*Produs

*Model

*Pret

*Tip

*Stoc

*Observatii

COMANDA

#id_comanda

*Data

*Nr_buc

FACTURA

#id_factura

*Data

°Observatii

se a

fla

contine apartine

are

Rezolvarea relatiilor M : M

Produs - Comanda

Page 21: Gestiunea unui magazin de calculatoare

SERVICIU

#id_serviciu

*Denumire

*Descriere

*Pret

°Observatii

CLIENT

#id_client

*Client

*CNP

*Adresa

*Email

°Reducere

Rezolvarea relatiilor M : M

Client - Serviciu

PRESTARE

#id_prestare

*Data

cere

este oferita

apar

tine

contine

Page 22: Gestiunea unui magazin de calculatoare

ERD Final FURNIZOR

#id_furnizor

*Denumire

*Adresa

*Telefon

*Email

*Contact

CONTRACT

#id_contract

*Data

*Pret

°Observatii

FURNIZARE

#id_furnizare

*Data_plasare

*Data_livrare

*Cantitate PRODUS

#id_produs

*Produs

*Model

*Pret

*Tip

*Stoc

*Observatii

PRODUCATOR

#id_producator

*Website

*Telefon

*Locatie

*Email

ANGAJAT

#id_angajat

*Angajat

*Data_nasterii

*Data_angajarii

*Adresa

*Telefon

*Gen

*Comision

*Bonus

Tehnician

*Salariu_baza

Vanzator

*Salariu_baza

SERVICIU

#id_serviciu

*Denumire

*Descriere

*Pret

°Observatii

CLIENT

#id_client

*Client

*CNP

*Adresa

*Email

°Reducere

PRESTARE

#id_prestare

*Data

COMANDA

#id_comanda

*Data

*Nr_buc

FACTURA

#id_factura

*Data

°Observatii

are

apartine contine

apar

tine

apare

furnizeaza

produce

este produs

se afla

contine ap

artine

are face

este facuta

cere

est

e o

feri

ta

contine

apartine

realizeaza

este realizat

preia este preluata

Page 23: Gestiunea unui magazin de calculatoare

Tabele in Oracle

Angajati

Page 24: Gestiunea unui magazin de calculatoare

Tabele in Oracle

Servicii

Page 25: Gestiunea unui magazin de calculatoare

Tabele in Oracle

Prestari

Page 26: Gestiunea unui magazin de calculatoare

Tabele in Oracle

Clienti

Page 27: Gestiunea unui magazin de calculatoare

Tabele in Oracle

Comenzi

Page 28: Gestiunea unui magazin de calculatoare

Tabele in Oracle

Facturi

Page 29: Gestiunea unui magazin de calculatoare

Tabele in Oracle

Producatori

Page 30: Gestiunea unui magazin de calculatoare

Tabele in Oracle

Furnizori

Page 31: Gestiunea unui magazin de calculatoare

Tabele in Oracle

Contracte

Page 32: Gestiunea unui magazin de calculatoare

Tabele in Oracle

Furnizari

Page 33: Gestiunea unui magazin de calculatoare

Tabele in Oracle

Produse

Page 34: Gestiunea unui magazin de calculatoare
Page 35: Gestiunea unui magazin de calculatoare
Page 36: Gestiunea unui magazin de calculatoare
Page 37: Gestiunea unui magazin de calculatoare
Page 38: Gestiunea unui magazin de calculatoare
Page 39: Gestiunea unui magazin de calculatoare
Page 40: Gestiunea unui magazin de calculatoare
Page 41: Gestiunea unui magazin de calculatoare
Page 42: Gestiunea unui magazin de calculatoare
Page 43: Gestiunea unui magazin de calculatoare
Page 44: Gestiunea unui magazin de calculatoare
Page 45: Gestiunea unui magazin de calculatoare

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