Sunteți pe pagina 1din 5

Aplicaţie rezolvată

Pentru informatizarea activităţii unei societăți comerciale, se cunosc următoarele:


 Compania comercializează produse fabricate sub marca proprie WXYZ;
 În rețeaua sa comercială, compania dispune de mai multe magazine, evidențiate prin
cod, nume, adresă, telefon, email;
 Produsele sunt caracterizate prin cod, denumire, tip produs, caracteristici, descriere;
 Clienții companiei sunt persoane fizice sau juridice, caracterizate prin CNP/CUI,
nume/denumire, adresa, email, telefon mobil de contact;
 Vânzarea se face pe bază de factură, care cuprinde: număr, data, data scadentă, datele
furnizorului, datele beneficiarului, magazinul emitent, produsele vândute, cantități,
prețuri unitare, cote de TVA (distincte după tipul de produs), valoare fără TVA pe linie
factură, valoare totală fără TVA, valoare TVA, valoare factură cu TVA.
 Plata se poate realiza prin ordin de plată sau numerar (pe bază de chitanță). Documentul
de plată include: număr, data, detalii plată (referințe la factura plătită), suma plătită. Se
acceptă plata în tranșe, iar un document poate deconta sume în contul mai multor facturi.

Cerinţe: să se elaboreze modelul conceptual al datelor şi modelul logic al datelor

1. Elaborarea modelului conceptual al datelor


Pentru elaborarea modelului conceptual, vom utiliza următorul algoritm:
Etapa I. Reprezentarea entităţilor
Entităţile se utilizează pentru abstractizarea:
- persoanelor fizice/juridice;
- documentelor;
- bunurilor.
Drept urmare, entităţile modelului nostru sunt:
- MAGAZINE
- PRODUSE
- CLIENȚI
- FACTURI
- DOCUMENTE PLATĂ
Observaţie 1: nu se va reprezenta o entitate pentru persoana fizică sau juridică a cărei
activitate face obiectul modelului (în cazul nostru compania și nici pentru marca proprie,
aceste date sunt constante și nu intră în categoria atribute). De asemenea, crearea unei atare
entități va provoca dificultăți atât în etapa a treia (asocieri), dar și la construirea modelului
logic de date, ceea ce conduce la denaturarea structurii bazei de date.
Observaţie 1’: deși putem vorbi de două tipuri de documente de plată, acestea pot fi
agregate într-o singură entitate, DOCUMENTE PLATĂ, prin generalizare. Pentru a marca
aplicarea generalizării, este obligatoriu cel puțin un atribut care să diferențieze între
realizările de diferite tipuri (OP vs. Chitanțe). Un astfel de atribut se poate denumi tip
document. Alternativ, se poate presupune, în acest stadiu, al modelului conceptual și logic, că
numărul documentului de plată poate fi utilizat în rolul menționat: numerele de chitanțe încep
cu prefixul CH, numerele ordinelor de plată încep cu OP.
Similar, observația se aplică pentru clienți. Fie se introduce un atribut tip client, fie
presupunem că diferențierea se face prin CNP/CUI, având în vedere structura valorilor
acestui atribut (CNP are 13 caractere, CUI mai puține, acest număr de caractere poate fi
verificat cu o funcție dedicată, de exemplu LEN din MS ACCESS®).

Etapa II. Reprezentarea atributelor şi identificatorilor


Observaţie 2: nu se reprezintă, într-o entitate, atribute referitoare la altă entitate din
acelaşi model. În schimb, se vor reprezenta asocieri între entităţile aflate în această situaţie.

1
Observaţie 2’: nu se vor reprezenta, în model, atribute ale căror valori pot fi calculate
pe baza valorilor altor atribute din același model.
Observaţie 2’’: în entitățile de tip document, se va acorda o atenție deosebită
oportunității de a înscrie alte atribute decât cele referitoare la numărul și data documentului.
Nu se vor defini într-o astfel de entitate atribute referitoare la persoane implicate în circulația
documentului, nici atribute care descriu bunurile tranzacționate pe baza documentului.

Atributele și identificatorii entităţilor sunt următoarele:


- MAGAZINE: Cod magazin, nume, adresă, telefon, email;
- PRODUSE: Cod, denumire, tip produs, caracteristici, descriere;
- CLIENȚI: CNP/CUI, nume/denumire, adresa, email, telefon mobil de contact;
- FACTURI: Număr factura, data, data scadentă;
- DOCUMENTE: Număr document, data.
Atributele subliniate reprezintă identificatorii.

Etapa III. Reprezentarea asocierilor


În primul rând se vor trata situaţiile corespunzătoare observaţiei nr. 2.
 FACTURI - MAGAZINE
 FACTURI - PRODUSE
 FACTURI - DOCUMENTE
 FACTURI - CLIENȚI.

Observaţie 3: nu se reprezintă asocieri între entităţi ce descriu persoane şi entităţi care


descriu bunuri pe care persoanele le pot cumpăra, vinde, închiria, împrumuta etc. Ambele
entităţi în schimb vor fi conectate prin asocieri cu documentul justificativ al operaţiunii
economice. Astfel, nu se poate asocia CLIENȚI cu PRODUSE, ambele se vor asocia cu
FACTURI.

Înainte de a se trece la etapa IV, se verifică trei chei de control:


a) fiecare entitate participă la cel puţin o asociere;
b) modelul nu este segmentat în mai multe submodele care să fie ne-conectate;
c) toate atributele și acţiunile (corelaţiile) din enunţ sunt reflectate în model.

În acest stadiu, primele două chei de control se verifică. În schimb, entităţile şi asocierile nu
reflectă atributele cantitate, preț, cota TVA, suma plătită.
Observaţie 3’: atributele cu semnificație cantitativ-valorică sau de cotă de
taxare/impozit, care descriu o tranzacție, se înscriu în asocierea care descrie acea tranzacție,
stabilită între documentul justificativ al tranzacției și bunul tranzacționat. La alegerea
utilizatorului, cota de impozitare poate fi omisă, ea putând fi tratată prin alte instrumente.
Ca generalizare, întotdeauna atributele a căror realizare coincide cu realizarea unei
asocieri, vor fi înscrise în asocierea respectivă

În cazul aplicației de față, cantitatea, prețul și cota TVA se înscriu în asocierea dintre
entitățile FACTURI și PRODUSE.

Observaţie 3’’: reprezentarea operațiunii de plată comportă mai multe variante, în


funcție de regulile comerciale stabilite între parteneri. Distingem următoarele cazuri:
- se acceptă doar plata integrală, un document de plată se referă la o singură
factură:
o atributul suma se înscrie în entitatea DOCUMENTE
- se acceptă plata în tranșe, un document de plată se referă la o singură factură:
o atributul suma se înscrie în entitatea DOCUMENTE

2
- cazul aplicației de față. se acceptă plata în tranșe, iar un document poate deconta
sume în contul mai multor facturi:
o atributul suma se înscrie în asocierea FACTURI - DOCUMENTE.
Dacă nu se precizează nimic în acest sens, recomandăm utilizarea soluției din această
aplicație, respectiv cea mai acoperitoare.

Etapa IV. Reprezentarea cardinalităţilor


Pentru reprezentarea cardinalităţilor, în fiecare asociere se analizează situaţia fiecărei
entităţi, determinând numărul realizărilor celeilalte entităţi şi stabilind cardinalităţile
corespunzătoare.
 Asocierea FACTURI - MAGAZINE
i. o FACTURĂ este emisă de un singur MAGAZIN (cardinalitate 1,1)
ii. un MAGAZIN poate emite mai multe FACTURI (cardinalitate 1,n)
 Asocierea FACTURI - PRODUSE
i. o FACTURĂ include mai multe PRODUSE (cardinalitate 1,n)
ii. un PRODUS poate apare pe mai multe facturi (cardinalitate 1,n sau 0,n)
 Asocierea FACTURI - PLĂȚI
i. o FACTURĂ poate fi plătită integral sau în tranșe (cardinalitate 1,n)
ii. un DOCUMENT poate deconta sume în contul mai multor FACTURI
(cardinalitate 1,n).
 Asocierea FACTURI - CLIENȚI
i. o FACTURĂ este emisă către un singur CLIENT (cardinalitate 1,1)
ii. un CLIENT poate primi mai multe FACTURI (cardinalitate 1,n)

3
MAGAZINE FACTURI PRODUSE CLIENȚI DOCUMENTE

Cod Cod CNP/CUI Numărd


Nume Numărf Denumire Nume/denumire Data
Adresă Data Tip produs Adresa
Telefon Data scadentă Caracteristici Email
Email Descriere Telefon mobil

1,n 1,n
FACTURARE 1,n

Cant, Pret, Cota


TVA

1,1 1,n
VANZARE

1,n
1,n
DECONT

Suma platita

1,n

EMITE 1,1

4
2. Elaborarea modelului logic
Etapa I. Se aplică mai întâi regula R1, se reprezintă tabelele, atributele şi cheile primare.

Etapa II. Se analizează fiecare asociere, şi se aplică regula R2, R3 sau R4..
 Asocierea FACTURI-PRODUSE (FACTURARE)
Cardinalităţile maxime sunt n şi n.
- Asocierea se transformă în tabel (Vezi tabelul FACTURARE de mai sus)
- În noul tabel se înscriu cele trei atribute ale asocierii: Cant, Pret, Cota TVA;
- Tabelul preia și identificatorii entităților participante la asociere, respectiv Numar de la
FACTURI si Cod de la PRODUSE, cu rol de chei externe
 Asocierea FACTURI-CLIENTI (VANZARE)
Cardinalităţile maxime sunt 1 şi n. Asocierea NU se transformă în tabel. Tabelul provenit
din entitatea FACTURI preia identificatorul de la CLIENTI, CNP/CUI, cu rol de cheie
externă
 Asocierea FACTURI-DOCUMENTE (DECONT)
Cardinalităţile maxime sunt n şi n.
- Asocierea se transformă în tabel (Vezi tabelul DECONT de mai sus)
- În noul tabel se înscrie atributul asocierii: Suma platita
- Tabelul preia și identificatorii entităților participante la asociere, respectiv Numar de la
FACTURI si Numar de la DOCUMENTE, cu rol de chei externe
 Asocierea FACTURI-MAGAZINE (EMITE)
Cardinalităţile maxime sunt 1 şi n. Asocierea NU se transformă în tabel, Tabelul provenit
din entitatea FACTURI preia identificatorul de la MAGAZINE, Cod, cu rol de cheie
externă.

Rezultatul aplicării regulilor de trecere este prezentat în continuare (elementele cu italic


corespund regulii nr. 2, cele cu bold regulii nr. 3):

MAGAZINE (Cod, Nume, Adresa, Telefon, Email)


FACTURI (Numarf, Data, Data scadenta, CNP/CUI, Cod)
PRODUSE (Cod, Denumire, Tip produs, Caracteristici, Descriere)
CLIENTI (CNP/CUI, Nume/denumire, Adresa, Email, Telefon mobil)
DOCUMENTE (Numard, Data)
FACTURARE (Cant, Pret, Cota TVA, Numarf, Cod)
DECONT(Suma platita, Numarf, Numard)

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