Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Informatica


Index » educatie » Informatica
» INFORMATICA - BAZA DE DATE AL LANTULUI DE MAGAZINE ALIMENTARE "PROTI"


INFORMATICA - BAZA DE DATE AL LANTULUI DE MAGAZINE ALIMENTARE "PROTI"


 



 

 

CUPRINS

1. Formularea problemei

2. Notiuni introductive

3. Diagrama ERD

4. Maparea diagramei(Relatii entitati-atribute)

5. Regulile afacerii

6. Analiza CRUD

7. Structuri de date folosite

8. Detalii tehnice de implementare

9. Bibliografie

I. Formularea problemei

Lantul de magazine alimentare "PROTI" doreste realizarea unei baze de date in care sa retina datele despre vanzarile realizate de fiecare angajat al magazinului, precum si amanuntele(detaliile)produselor vandute.

Fiecare punct de desfacere al acestei firme va avea un numar de produse in gestiune, dar si un numar de comenzi catre distribuitori.

In urma datelor colectate se va realiza o clasificare al tipului de produs cel mai bine vandut, realizandu-se astfel un studiu de piata in vederea preferintelor consumatorilor.

Rezolvarea propusa de mine se refera la o baza de date in care se poate tine evidenta atat a produselor vandute, cat si a angajatilor. Astfel se poate face o clasificare a angajatilor in functie de vanzari, o clasificare a intervalului de timp in care anumite produse se vand cel mai bine, precum si o clasificare a producatorilor cu cele mai multe produse vandute pe piata.

II. Notiuni introductive

CE ESTE ORACLE?

Oracle consta dintr-un set complet de constructori de aplicatii si produse pentru utilizatori, cautand sa asigure solutii complete in tehnologia informatiei.

Aplicatiile Oracle sunt portabile peste un numar mare de statii de lucru si sisteme de operare, de la calculatoare personale la procesoare paralele.

Oracle este inzestrat cu un flexibil Sistem de Management al Bazelor de Date(DBMS)-Serverul Oracle-pentru stocarea si managementul informatiei utilizate de aplicatii.

Ultimul server Oracle, ORACLE 7, conduce o baza de date cu toate avantajele unei structuri relationale, avand in plus capacitatea de a stoca si executa obiecte de tip baza de date precum proceduri si mecanisme de siguranta.

Despre Serverul ORACLE

Serverul Oracle cuprinde un DBMS care controleaza:

Stocarea de date in sfera bazelor de date dedicate

Recuperarea de date pentru aplicatii utilizand tehnici de optimizare adecvate

Securitatea bazelor de date si a taskurilor permise pentru anumiti utilizatori

Consistenta si protectia datelor, incluzand arhivarea taskurilor si mecanisme de cautare

Comunicarea si integritatea informatiilor, cand bazele de date sunt distribuite intr-o retea.

Aplicatiile Oracle trebuie rulate pe acelasi computer la fel ca si Serverul Oracle.

Alternativ, aplicatiile si utilitarele utilizate de ele pot sa fie rulate pe un sistem local pentru utilizator (sistemul 'client'), in timp ce Oracle DBMS ruleaza pe un altul (sistemul 'server').

In acest mediu 'client-server', un numar mare de resurse de calcul pot fi rulate. De exemplu, o aplicatie 'Oracle Forms' poate rula pe un computer personal client, in timp ce accesarea datelor este condusa conventional de un Server Oracle pe un computer central

SQL, SQL*PLUS si PL/SQL

SQL, SQL*PLUS si PL/SQL sunt facilitatile Oracle care vor fi discutate in acest curs. Este important de inteles in fiecare caz diferentele lor, rolul si locul lor in familia Oracle.

*SQL

este limbajul utilizat pentru a accesa o baza de date relationala, inclusiv Oracle.

poate fi utilizat de fiecare instrument Oracle, cand accesul la baza de date este necesar.

*PL/SQL

este limbajul Procedural al lui Oracle pentru scrierea aplicatiilor si pentru manipularea datelor in afara bazei de date.

poate include un subset al comenzilor SQL, cand accesul la baza de date este cerut

este accesibil in fiecare din produsele CDE. De asemenea in insusi serverul Oracle(daca optiunea procedurala este instalata).

*SQL*Plus

este un produs Oracle in care limbajele SQL si PL/SQL pot fi utilizate.

de asemenea are propriul limbaj de comanda pentru controlul comportarii produsului si pentru formatarea rezultatelor interogarilor SQL.

In concluzie, SQL si PL/SQL sunt limbaje care sunt utilizate intr-un numar de produse Oracle . SQL*PluS este unul din produsele pe care acestea se afla. Noi vom discuta acum principiile de baza ale bazelor de date relationale, pentru care Oracle este un exemplu.

Abordarea relationala

Principiile modelului relational au fost pentru prima data expuse de Dr. E. F. Codd, care in iunie 1970 a publicat un articol numit 'Un model relational de date pentru marile banci de date'. In acest articol Dr. Codd a propus modelul 'relational' pentru sistemele de baze de date.

Baza de date relationala este perceputa de utilizatorii sai ca o colectie de tabele bidimensionale care sunt usor de inteles. Sunt doar patru concepte de inteles:

  • tabele
  • coloane
  • randuri
  • campuri

Modelul relational imita procesele unei ramuri a algebrei cunoscuts sub numele de 'Algebra relationala'. Aceste procese implica:

  • colectie de obiecte cunoscute sub numele de RELATII
  • multime de operatori ce actioneza asupra relatiilor pentru a produce noi relatii.

O Relatie poate fi inteleasa ca o Tabela. Modificarea datelor este realizata prin operatiile relationale aplicate asupre tabelelor.

Operatori relationali

Operatorii relationali sunt definiti mai jos:

Relatia/Descrierea


Selectia

este o operatie care preia si afiseaza datele din relatie. Este posibil sa se afiseze toate randurile sau doar randurile care indeplinesc o conditie sau mai multe conditii . Aceasta este de multe ori numita 'submultime orizontala'

Proiectia

este operatia care afiseaza anumite coloane din relatie si de aceea este numita 'submultime verticala'.

Produs

este rezultatul obtinut cand randurile a doua multimi de date sunt concatenate conform conditiilor specificate.

Join

este rezultatul obtinut cand randurile a doua multimi de date sunt concatenate conform conditiilor specificate.

Reuniunea

afiseaza toate randurile care apar in una, in cealalta sau in ambele din cele doua relatii.

Intersectia

afiseaza toate randurile care apar in ambele din cele doua relatii.

Diferenta

afiseaza randurile care apar numai intr-o singura relatie (SQL utilizeaza operatorul minus ).

Proprietati ale bazelor de date relationale

O baza de date relationala apare ca o colectie de relatii(tabele) catre utilizator.

Formatul coloanei/randului este familiar si usor pentru vizualizarea datelor .

Exista o multime de operatori pentru partitionarea si combinarea relatiilor(selectia, proiectia, produsul, joinul, uniunea, intersectia, diferenta).

Nu sunt pointeri expliciti;conexiunile sunt facute numai pe baza datelor.

Limbajul utilizat pentru interogarea bazei de date este non-procedural si similar limbii engleze.

Utilizatorul nu specifica calea de acces si nu are nevoie sa stie cum este informatia aranjata fizic.

Comenzile pentru refacerea datelor si acelea pentru realizarea schimbarilor in baza de date sunt incluse intr-un singur limbaj SQL.

Exista o independenta totala a datelor.

Proprietatile relatiilor tabelare

O singura tabela are urmatoarele proprietati:

Nu exista randuri duplicate

Nu exista nume de coloana duplicate

Ordinea randurilor este neimportanta

Ordinea coloanalor este neimportanta

Valorile sunt atomice(nedecompozabile).

IV. Relatiile entitati-atribute

PRODUS:#cod_produs, *nume_produs, *pretul, *tipul_produsului, sdata_expirarii,    

s data_fabricatiei;

ANGAJAT:#id_angajat, *nume, *prenume, *program, s adresa, s data_angajarii,

s salariul;

FACTURA:#id_factura, *nume_produs, *numar_produse, *data_facturarii, *valoarea_facturii, s mod_plata

CLIENT id_client, *nume_firma, soras

STOC:#id_stoc, *numar_de_produse, *maximul_stocului, s data_stocarii;

DEPOZIT:#id_depozit, *nume, s adresa, soras, s tara, scod_postal

DISTRIBUITOR:#id_distribuitor, *nume, s adresa, s oras, s tara;

REGIUNE:#id_regiune, *nume;

1. Fiecare angajat poate facturauna sau mai multe facturi.

Fiecare factura poate fi data de un singur angajat.

2. Fiecare client poate plati una sau mai multe facturi.

Fiecare factura este platita de un singur client.

3. Fiecare client isi are sediul intr-o singura regiune.

Fiecare regiune are unul sau mai multi clienti.

4. Fiecare produs poate fi vandut de un singur angajat.

Fiecare angajat poate vinde unul sau mai multe produse.

6. Fiecare stoc poate contine unul sau mai multe produse.

Fiecare produs poate fi pe un singur stoc.

7. Fiecare stoc poate fi pe un singur depozit.

Fiecare depozit poate avea unul sau mai multe stocuri.

8. Fiecare distribuitor poate preia comenzi pentru unul sau mai multe produse.

Fiecare produs poate fi distribuit de un singur distribuitor.

9. Fiecare depozit poate fi intr-o singura regiune.

Fiecare regiune poate avea unul sau mai multe depozite.

10. Fiecare distribuitor poate fi intr-o singura regiune.

Fiecare regiune poate avea unul sau mai multi distribuitori.

PRODUSUL

NUME COLOANA

TIP COLOANA

TIP CHEIE

OPTIONALITATE

cod_produs

NUMBER

Pk

*

nume_produs

VARCHAR 2

*

pretul

NUMBER

*

tip_produs

VARCHAR 2

*

data_expirarii

DATE

s

data_fabricarii

DATE

s

FACTURA

NUME COLOANA

TIP COLOANA

TIP CHEIE

OPTIONALITATE

id_factura

NUMBER

Pk

*

nume_produse

VARCHAR 2

*

numar_produse

NUMBER

*

data_facturarii

DATE

*

valoarea_facturii

NUMBER

*

mod_plata

VARCHAR 2

s

client_id

NUMBER

FK

*

ANGAJAT

NUME COLOANA

TIP COLOANA

TIP CHEIE

OPTIONALITATE

id_angajat

NUMBER

Pk

*

nume

VARCHAR 2

*

prenume

VARCHAR 2

*

program

DATE

*

data_angajarii

DATE

s

adresa

VARCHAR 2

s

salariul

NUMBER

*

CLIENT

NUME COLOANA

TIP COLOANA

TIP CHEIE

OPTIONALITATE

id_client

NUMBER

PK

*

nume_client(firma)

VARCHAR 2

*

oras

VARCHAR 2

s

STOC

NUME COLOANA

TIP COLOANA

TIP CHEIE

OPTIONALITATE

id_stoc

NUMBER

Pk

*

numarul-de_produse

NUMBER

*

maximul_de_produse

NUMBER

*

data_stocarii

DATE

s

produs_id

NUMBER

FK

*

DEPOZIT

NUME COLOANA

TIP COLOANA

TIP CHEIE

OPTIONALITATE

id_depozit

NUMBER

Pk

*

nume

VARCHAR 2

*

adresa

VARCHAR 2

s

oras

VARCHAR 2

s

tara

VARCHAR 2

s

cod_postal

NUMBER

s

DISTRIBUITOR

NUME COLOANA

TIP COLOANA

TIP CHEIE

OPTIONALITATE

id_distribuitor

NUMBER

Pk

*

nume

VARCHAR 2

*

adresa

VARCHAR 2

s

oras

VARCHAR 2

s

tara

VARCHAR 2

s

REGIUNE

NUME COLOANA

TIP COLOANA

TIP CHEIE

OPTIONALITATE

id_regiune

NUMBER

Pk

*

nume

VARCHAR 2

*

V. Regulile afacerii

Firma " PROTI" trebuie sa aiba pentru fiecare depozit aflat intr-o anumita regiune, un anumit stoc al produselor existente intr-un anumit moment.

Fiecare angajat trebuie sa verifice daca in magazin este sau nu produsul respectiv.

In cazul in care un anumit produs nu se afla in stoc, angajatii vor inainta o comanda la distribuitor.

VI. Analiza CRUD

CREARE=se creaza un stoc de produse ce serveste drept inventar, se

creaza fisa angajatului;

RETRIEVE=trebuie sa avem un stoc pentru a sti daca avem sau nu

un anumit produs;

UPDATE=se poate updata fisa angajatului, daca acesta isi schimba

adresa, numele, starea matrimoniala, etc;

DELETE=se poate sterge un produs de pe lista de inventar sau o comanda

pentru distribuitori.

VII. Structuri de date folosite

In structura bazei de date, am folosit 8 tabele corespunzatoare fiecarei entitati din ERD. Felul in care sunt definite relatiile dintre entitati se vor face prin intermediul cheilor straine reprezentate de id-urile entitatilor.

VIII. Detalii tehnice de implementare

CREATE TABLE produs( cod_produsNUMBER(4) PRIMARY KEY NOT NULL,

nume_produs VARCHAR 2(20),

pretul NUMBER(3),

tipul_produsului VARCHAR 2(25),

data_expirarii DATE,

data_fabricarii DATE);

cod_produs

nume_produs

pretul

tipul_produsului

data_expirarii

data_fabricarii

VIVA

1, 5 lei

alimentar

PEPSI

3, 5 lei

bauturi racotitoare

DANONINO

2 lei

alimentar

PANTENE

10 lei

diverse

CAMEY

1, 5 lei

diverse

CREATE TABLE factura(id_factura NUMBER(3)PRIMARY KEY NOT NULL,

nume_produse VARCHAR 2(20),

numar_produse NUMBER(45),

data_facturari DATE,

valoarea_facturii NUMBER(18),

mod_plata VARCHAR 2(6),

client_id NUMBER(12) FOREIGN KEY);

id_factura

nume_produs

numar_produse

data_facturarii

valoarea

mod_plata

Client_id

7DAYS

cash

PALLETE

567 lei

cash

GIUSTO

1000 lei

card

ORBIT

100 lei

card

TEMPO

300 lei

card

COCA-COLA

450 lei

card

CREATE TABLE client(id_client VARCHAR 2(20) PRIMARY KEY NOT NULL,

nume_client VARCHAR 2(15),

oras VARCHAR 2(20)

factura_id NUMBER(4) FOREIGN KEY);

id_client

nume_client

oras

Jucanut

Botosani

Janir

Harlau

Patrusa

iasi

CREATE TABLE angajat(id_angajat NUMBER(3) PRIMARY KEY NOT NULL,

nume VARCHAR 2(45),

prenume VARCHAR 2(50),

program DATE,

data_angajarii DATE,

adresa VARCHAR 2(45),

salariul NUMBER(4)

);

id_angajat

nume

prenume

program

data_agajarii

adresa

salariul

Ionescu

Ion

Iasi

700 lei

Rusu

Maria

Tomesti

450 lei

Neamtu

Ionela

Iasi

800lei

Rucar

Marcica

Iasi

670 lei

CREATE TABLE stoc(id_stoc NUMBER(4) PRIMARY KEY NOT NULL,

numarul_de_produseNUMBER(67),

maximul_stocului NUMBER(100),

data_stocarii DATE,

produs_id NUMBER (4) FOREIGN KEY

);

id_stoc

numarul_de_produse

maximul_stocului

data_stocarii

produs_id

CREATE TABLE depozit(id_depozit NUMBER(3)PRIMARY KEY NOT NULL,

nume VARCHAR 2(45),

adresa VARCHAR 2(56),

orasul VARCHAR 2(67),

tara VARCHAR 2(78),

cod_postal NUMBER(10)

);

id_depozit

nume

adresa

orasul

tara

cod_postal

Vinnom

str, albinelor, nr. . 6

Tg. mures

Romania

Adrio

str. petru pavel, nr. 45

Iasi

Romania

CREATE TABLE distribuitor(id_distribuitor NUMBER(5)PRIMARY KEY

NOT NULL,

nume VARCHAR 2(56),

adresa VARCHAR 2(67),

oras VARCHAR 2(23),

tara VARCHAR 2(34)

);

id_depozit

nume

adresa

orasul

tara

cod_postal

Vinnom

str, albinelor, nr. . 6

Tg. mures

Romania

Adrio

str. petru pavel, nr. 45

Iasi

Romania

CREATE TABLE regiune(id_regiune NUMBER(3) PRIMARY KEY NOT NULL,

nume VARCHAR 2(56)

);

id_depozit

nume

adresa

orasul

tara

cod_postal

Vinnom

str, albinelor, nr. . 6

Tg. mures

Romania

Adrio

str. petru pavel, nr. 45

Iasi

Romania

1. SELECT *FROM Angajat

ORDER BY salariul and oras!='Iasi'

id_angajat

nume

prenume

program

data_agajarii

adresa

salariul

Rusu

Maria

Tomesti

450 lei

2. SELECT *FROM Factura

WHERE mod_plata='card' and ORDER BY id_factura DESC

id_factura

nume_produs

numar_produse

data_facturarii

valoarea

mod_plata

Client_id

ORBIT

100 lei

card

TEMPO

300 lei

card

COCA-COLA

450 lei

card

GIUSTO

1000 lei

card

3. SEELCT *FROM Clienti

WHERE nume_client LIKE '-J%' and oras='Harlau'

id_client

nume_client

oras

Janir

Harlau

IX. BIBIOGRAFIE

https://academy. oracle. com
https://iacademy. oracle. com


0. 03 seconds





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate