Sunteți pe pagina 1din 45

Colegiul Naional DINICU GOLESCU Cmpulung

Gestiunea unui magazin de calculatoare

Lucrare pentru atestarea competenelor profesionale

Elev: Scrlet Emanuel


Clasa: 12c
Profesor coordonator: Ttulea 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

Un furnizor are unul sau mai multe contracte .

Un contract apartine unui singur furnizor .

Contract Furnizare

Un contract deruleaza una sau mai multe furnizari .

O furnizare apare intr-un singur contract .

Furnizare Produs

O furnizare contine un singur produs .

Un produs apare pe unul sau mai multe furnizari .

Producator Produs

Un producator produce unul sau mai multe produse .

Un produs este produs de un singur producator .

Factura Produs

O factura contine unul sau mai multe produse .

Un produs apare pe o singura factura .

Comanda Factura

O factura apartine unei singure comenzi .

O comanda are o singura factura .

Comanda Client

O comanda este facuta de un client .

Un client face una sau mai multe comenzi .

Comanda Angajat

O comanda este realizata de un angajat .

Un angajat realizeaza una sau mai multe comenzi .

Angajat Serviciu

Un angajat realizeaza unul sau mai multe servicii .

Un serviciu este facut de un singur angajat .

Serviciu Prestari

Un serviciu apare intr-una sau mai multe liste de prestari servicii .

O lista de prestari servicii contine un singur serviciu .

Prestari Clienti

O lista de prestari servicii are un singur client .

Un client apare in una sau mai multe liste de prestari servicii .

exista

CONTRACT
#id_contract
*Data
*Pret
Observatii

contine
se afla
este produs
produce

Vanzator
*Salariu_baza

PRODUCATOR
#id_producator
contine
*Website
*Telefon
*Locatie
*Email

este preluata

PRODUS
#id_produs
*Produs
*Model
*Pret
*Tip
*Stoc
*Observatii

Tehnician
*Salariu_baza

COMANDA
#id_comanda
*Data
*Nr_buc

cere

CLIENT
#id_client
*Client
*CNP
*Adresa
*Email
Reducere

face

preia

are

apartine

FURNIZOR
#id_furnizor
*Denumire
*Adresa
*Telefon
*Email
*Contact

ANGAJAT
#id_angajat
realizeaza
*Angajat
*Data_nasterii
este realizat
*Data_angajarii
*Adresa
*Telefon
*Gen
*Comision
*Bonus

SERVICIU
#id_serviciu
*Denumire
*Descriere
*Pret
Observatii
este cerut

ERD INITIAL

este facuta

Rezolvarea relatiilor M : M
Produs - Contract
CONTRACT
#id_contract
*Data
*Pret
Observatii

apare

contine

PRODUS
#id_produs
*Produs
*Model
*Pret
*Tip
*Stoc
*Observatii

furnizeaza

FURNIZARE
#id_furnizare
*Data_plasare
*Data_livrare
*Cantitate

apartine

Rezolvarea relatiilor M : M
Produs - Comanda

se afla

COMANDA
#id_comanda
*Data
*Nr_buc
are

PRODUS
#id_produs
*Produs
*Model
*Pret
*Tip
*Stoc
*Observatii

contine

FACTURA
#id_factura
*Data
Observatii

apartine

Rezolvarea relatiilor M : M
Client - Serviciu

CLIENT
#id_client
*Client
*CNP
*Adresa
*Email
Reducere

PRESTARE
#id_prestare
*Data

contine

apartine

cere

este oferita

SERVICIU
#id_serviciu
*Denumire
*Descriere
*Pret
Observatii

apartine

are

apare

contine

se afla

produce
este produs

FURNIZARE
#id_furnizare
*Data_plasare
*Data_livrare
*Cantitate

PRODUCATOR
#id_producator
*Website
*Telefon
*Locatie
*Email

FACTURA
#id_factura
*Data
Observatii

are

ANGAJAT
#id_angajat
*Angajat
*Data_nasterii
*Data_angajarii
*Adresa
*Telefon
*Gen
*Comision
*Bonus
Tehnician
*Salariu_baza

apartine
contine
PRESTARE
#id_prestare
*Data
este oferita

apartine

CONTRACT
#id_contract
contine
*Data
*Pret
Observatii

furnizeaza

PRODUS
#id_produs
*Produs
*Model
*Pret
*Tip
*Stoc
*Observatii

SERVICIU
#id_serviciu
*Denumire
*Descriere
*Pret
Observatii

realizeaza

apartine

FURNIZOR
#id_furnizor
*Denumire
*Adresa
*Telefon
*Email
*Contact

este realizat

Vanzator
*Salariu_baza
preia

este preluata

COMANDA
#id_comanda
*Data
*Nr_buc

este facuta
face

cere

ERD Final

CLIENT
#id_client
*Client
*CNP
*Adresa
*Email
Reducere

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


Bucureti, 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