Prezent Are

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

description

mnb

Transcript of Prezent Are

  • 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

    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

    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 f

    ace

    este facuta

    pre

    ia

    est

    e p

    relu

    ata

    realizeaza

    este realizat

    cere

    est

    e c

    eru

    t

  • 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

  • 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

  • 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

  • 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

  • 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