18.04.2013 Views

CIG an 1 Baze de date - NORMALIZARE.pdf

CIG an 1 Baze de date - NORMALIZARE.pdf

CIG an 1 Baze de date - NORMALIZARE.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Teoria generală<br />

a bazelor <strong>de</strong> <strong>date</strong><br />

Baza <strong>de</strong> <strong>date</strong> este:<br />

Un <strong>an</strong>samblu <strong>de</strong> <strong>date</strong> structurate<br />

Legate funcţional<br />

Stocate pe suporturi tehnice adresabile<br />

Accesate <strong>de</strong> mai mulţi utilizatori <strong>de</strong> o m<strong>an</strong>ieră<br />

selectivă şi într-un timp oportun<br />

1


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date :<br />

Formele normale 1, 2, 3<br />

Dicţionar <strong>de</strong> <strong>date</strong> şi Reguli <strong>de</strong><br />

gestiune<br />

Potrivit regulilor <strong>de</strong> gestiune coroborate<br />

cu <strong>an</strong>aliza informaţională referitoare la<br />

aplicaţia <strong>de</strong> informatizat se <strong>de</strong>clară într-un<br />

tablou toate atributele disponibile<br />

(I<strong>de</strong>ntificatorul + Denumirea în clar)<br />

1 FN<br />

<strong>de</strong>pen<strong>de</strong>nţă funcţională între atributele 2 non-cheie)<br />

DD+RG<br />

1FN<br />

2FN<br />

3FN<br />

O relaţie R este în 1FN atunci când atributele sale nu pot fi<br />

<strong>de</strong>scompuse în unităţi mai mici<br />

2 FN<br />

O relaţie R este în 2FN, dacă este în 1FN şi toate <strong>de</strong>pen<strong>de</strong>nţele<br />

între cheia primară a lui R şi celelalte atribute a lui R sunt<br />

elementare (atributele nu <strong>de</strong>pind <strong>de</strong> o parte din cheie)<br />

3 FN<br />

O relaţie R este în 3FN, dacă este în 2FN şi dacă sunt eliminate<br />

toate <strong>de</strong>pen<strong>de</strong>nţele funcţionale tr<strong>an</strong>zitive (dacă nu există nici o


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date :<br />

1 FN<br />

O relaţie R este în 1FN dacă toate<br />

atributele sale conţin numai valori<br />

(realizări) atomice (elementare sau<br />

indivizibile);<br />

În general, o valoare este consi<strong>de</strong>rată elementară,<br />

atunci când <strong>de</strong>scompunerea ei nu mai prezintă<br />

interes pentru utilizatorii finali.<br />

Fiecare relaţie trebuie să conţină un i<strong>de</strong>ntificator<br />

care să o caracterizeze <strong>de</strong> o m<strong>an</strong>ieră unică<br />

O relaţie R este în 1FN dacă conţine valori<br />

nerepetitive. În acest sens, o listă <strong>de</strong> valori<br />

repetitive trebuie înlocuită cu un singur<br />

atribut.<br />

Atributele <strong>de</strong>scompuse trebuie să fie<br />

stabile în timp (<strong>de</strong> exemplu, este preferabil<br />

a se utiliza „data naşterii”, <strong>de</strong>cât „vîrsta”).<br />

3<br />

DD+RG<br />

1FN


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date :<br />

Pentru aducerea relaţiei în 1FN<br />

atributele compuse sunt<br />

înlocuite cu atribute<br />

elementare<br />

Perso<strong>an</strong>a(CNP, Nume, Domiciliu)<br />

4<br />

DD+RG<br />

1FN<br />

Perso<strong>an</strong>a(CNP, Nume, Localitate, AdresaDomiciliu)<br />

Perso<strong>an</strong>a(CNP, Nume, Localitate, Strada, …..)


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date :<br />

1 FN<br />

De asemenea, FN1 exclu<strong>de</strong><br />

apariţia atributelor sau grupurilor<br />

<strong>de</strong> atribute repetitive în cadrul<br />

unei relaţii.<br />

5<br />

DD+RG<br />

1FN<br />

De exemplu, relaţia :<br />

Comenzi(NumărCom<strong>an</strong>dă, Data, Material1, Material2)<br />

nu respectă FN1, <strong>de</strong>oarece conţine atribute repetitive.<br />

Numar<br />

Com<strong>an</strong>dă<br />

Data Material1 Material2<br />

11 01/01/2008 Ciment Var<br />

12 02/01/2008 Ciment Balastru<br />

13 02/01/2008 Var Nisip


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date :<br />

Pentru aducerea relaţiei în FN1,<br />

se parcurg următoarele etape:<br />

Pentru grupul <strong>de</strong> atribute<br />

repetitive, se formează o altă<br />

relaţie<br />

Cheia primară din noua relaţie, va<br />

fi în vechea relaţie, cheie externă.<br />

Materiale (CodMaterial, DenumireMaterial)<br />

6<br />

DD+RG<br />

1FN<br />

Comenzi(NumărCom<strong>an</strong>da, Data, Material1, Material2)<br />

Com<strong>an</strong>dă(NumărCom<strong>an</strong>da, Data, CodMaterial)


2 FN<br />

Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date :<br />

O relaţie R este în 2FN, dacă este în 1FN şi<br />

dacă orice atribut noncheie se află în<br />

<strong>de</strong>pen<strong>de</strong>nţă funcţională completă faţă <strong>de</strong> cheia<br />

primară a relaţiei.<br />

FN2 interzice existenţa <strong>de</strong>pen<strong>de</strong>nţelor<br />

funcţionale parţiale între atributele cu rol <strong>de</strong><br />

cheie primară şi celelalte atribute<br />

DD+RG<br />

1FN<br />

2FN<br />

Relaţia PieseCom<strong>an</strong><strong>date</strong>(NumărCom<strong>an</strong>dă, CodPiesă,<br />

C<strong>an</strong>titate, PreţUnitar, DenumirePiesă)<br />

nu se află în FN2 pentru că între (NumărCom<strong>an</strong>dă,<br />

CodPiesă) şi DenumirePiesă există o <strong>de</strong>pen<strong>de</strong>nţă<br />

parţială:<br />

(NumărCom<strong>an</strong>dă, CodPiesă) → DenumirePiesă<br />

CodPiesă → DenumirePiesă Număr<br />

Com<strong>an</strong>dă<br />

CodPiesă C<strong>an</strong>titate Pret<br />

Unitar<br />

Denumire<br />

Piesă<br />

1 01 100 20 P1<br />

1 02 150 25 P2<br />

2 7 01 200 20 P1


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date :<br />

2 FN : Pentru aducerea relaţiilor din FN1 în FN2, se parcurg<br />

următoarele etape:<br />

Se i<strong>de</strong>ntifică eventualele <strong>de</strong>pen<strong>de</strong>nţe funcţionale<br />

parţiale<br />

Fiecare <strong>de</strong>pen<strong>de</strong>nţă funcţională parţială va genera<br />

câte o relaţie nouă. O relaţie nou formată va avea<br />

ca structură atributele particip<strong>an</strong>te în <strong>de</strong>pen<strong>de</strong>nţa<br />

funcţională parţială.<br />

Atributele <strong>de</strong>termin<strong>an</strong>te <strong>de</strong>vin chei externe în<br />

relaţiile iniţiale şi chei primare în relaţiile nou<br />

formate<br />

Piese(CodPiesă, DenumirePiesă, PreţUnitar)<br />

8<br />

DD+RG<br />

1FN<br />

2FN<br />

PieseCom<strong>an</strong><strong>date</strong>(NumărCom<strong>an</strong>dă, CodPiesă,<br />

C<strong>an</strong>titate, PreţUnitar, DenumirePiesă)<br />

PieseCom<strong>an</strong><strong>date</strong>(NumărCom<strong>an</strong>dă, CodPiesă, C<strong>an</strong>titate)


3 FN<br />

Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date :<br />

O relaţie verifică FN3 dacă se află în<br />

FN2 şi dacă toate atributele<br />

noncheie sunt <strong>de</strong>pen<strong>de</strong>nte<br />

funcţional netr<strong>an</strong>zitiv <strong>de</strong> cheia<br />

primară a relaţiei (toate atributele<br />

care nu aparţin cheii primare să nu<br />

<strong>de</strong>pindă funcţional <strong>de</strong> un alt atribut.<br />

DD+RG<br />

1FN<br />

2FN<br />

3FN<br />

De exemplu, relaţia :<br />

Com<strong>an</strong>dă(NumărCom<strong>an</strong>dă, Data, CodClient,<br />

DenumireClient) nu respectă FN3, pentru că între<br />

NumărCom<strong>an</strong>dă şi DenumireClient există o <strong>de</strong>pen<strong>de</strong>nţă<br />

funcţională tr<strong>an</strong>zitivă:<br />

NumărCom<strong>an</strong>dă Data CodClient DenumireClient<br />

1 01/01/2009 01 Ionescu<br />

2 02/01/2009 02 Popescu<br />

3 03/02/2009 02 Popescu<br />

9


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date :<br />

Pentru aducerea unei relaţii din FN2 în FN3:<br />

Se i<strong>de</strong>ntifică eventualele <strong>de</strong>pen<strong>de</strong>nţe<br />

funcţionale tr<strong>an</strong>zitive<br />

Determin<strong>an</strong>tul noncheie împreună cu<br />

atributul sau atributele <strong>de</strong>terminate<br />

funcţional <strong>de</strong> către acesta, vor forma o nouă<br />

relaţie<br />

Determin<strong>an</strong>tul noncheie <strong>de</strong>vine cheie<br />

primară în relaţia nou formată şi cheie<br />

externă în relaţia iniţială<br />

Client(CodClient, DenumireClient)<br />

Com<strong>an</strong>dă(NumărCom<strong>an</strong>dă, Data, CodClient)<br />

10<br />

DD+RG<br />

1FN<br />

2FN<br />

3FN<br />

Com<strong>an</strong>dă(NumărCom<strong>an</strong>dă, Data, CodClient, DenumireClient)


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date:<br />

Etapele procesului <strong>de</strong> <strong>NORMALIZARE</strong><br />

Inventarierea atributelor (se vor selecta toate atributele referitoare la<br />

facturile primite)<br />

Număr factură<br />

Dată factură<br />

Cod furnizor<br />

Denumire furnizor<br />

Adresa, etc.<br />

Se specifică regulile <strong>de</strong> gestiune şi algoritmii <strong>de</strong> calcul asociaţi (se vor<br />

specifica diversele restricţii şi condiţii impuse <strong>date</strong>lor)<br />

O factură este emisă <strong>de</strong> un singur furnizor<br />

Codul materialului este unic<br />

O factură conţine mai multe produse aprovizionate<br />

Furnizorii pot fi numai perso<strong>an</strong>e juridice<br />

Algoritmii <strong>de</strong> calcul: (Val_mat_fact=C<strong>an</strong>t_facturată*Preţ_unitar)<br />

11


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date:<br />

Etapele procesului <strong>de</strong> <strong>NORMALIZARE</strong><br />

Se întocmeşte dicţionarul <strong>date</strong>lor<br />

Un atribut poate fi înscris o singură dată în dicţionar<br />

Se elimină atributele sinonime (<strong>de</strong> ex. Cod furnizor = Simbol<br />

furnizor)<br />

Dicţionarul <strong>date</strong>lor nu admite atribute <strong>de</strong>rivate sau calculate<br />

(Valoare, TVA)<br />

Nr.crt Atribut În clar<br />

1 CodFz Cod Furnizor<br />

2 DenFz Denumire Furnizor<br />

3 AdrFz Adresă Furnizor<br />

4 NrFact Număr Factură<br />

5 DataFact Dată Factură<br />

12


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date:<br />

Etapele procesului <strong>de</strong> <strong>NORMALIZARE</strong><br />

Se stabilesc <strong>de</strong>pen<strong>de</strong>nţele funcţionale între atribute prin<br />

MDF<br />

Toate atributele sau grupurile <strong>de</strong> atribute <strong>de</strong>termin<strong>an</strong>te,<br />

<strong>de</strong>vin CHEI CANDIDATE (posibile chei ale relaţiei). Cheile<br />

c<strong>an</strong>di<strong>date</strong> aparţinând aceleiaşi relaţii sunt caracterizate prin<br />

<strong>de</strong>pen<strong>de</strong>nţe funcţionale reciproce.<br />

Se stabilesc CHEILE PRIMARE dintre cheile c<strong>an</strong>di<strong>date</strong><br />

CodFz DenFz AdrFz NrFact DataFact<br />

CodFz NU 1 1<br />

DenFz NU<br />

AdrFz NU<br />

NrFact 1 1 T 1 T NU 1<br />

DataFact NU<br />

13


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date:<br />

Etapele procesului <strong>de</strong> <strong>NORMALIZARE</strong><br />

Pentru atributele izolate se vor căuta grupuri <strong>de</strong><br />

atribute ce pot constitui <strong>de</strong>termin<strong>an</strong>ţi ai acestora. Se<br />

vor căuta mai întâi grupuri <strong>de</strong> chei primare, apoi<br />

grupuri <strong>de</strong> atribute non-cheie, iar în final, dacă va fi<br />

cazul, se vor adăuga chei surogat.<br />

Cu fiecare cheie primară şi cu atributele <strong>de</strong>terminate<br />

direct (fără tr<strong>an</strong>zitivitate) se formează o nouă relaţie.<br />

Se stabilesc CHEILE EXTERNE<br />

14


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date:<br />

Etapele procesului <strong>de</strong> <strong>NORMALIZARE</strong><br />

Dacă între două chei primare există o <strong>de</strong>pen<strong>de</strong>nţă<br />

multiplă (reciprocă), atunci, această <strong>de</strong>pen<strong>de</strong>nţă<br />

va genera o relaţie.<br />

Cheia primară a acestei relaţii va fi formată din<br />

cele două atribute, care, individual vor avea şi rol<br />

<strong>de</strong> chei externe (in alte realtii).<br />

FURNIZOR(CodFz, DenFz, AdrFz)<br />

FACTURĂ(NrFact, DataFact, CodFz)<br />

15


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date:<br />

EXEMPLUL II: Evi<strong>de</strong>nţa facturilor emise<br />

NrFact,<br />

DataFact<br />

FACTURI<br />

PRODUSE<br />

CLIENTI CodCli,<br />

Nume,<br />

Adresa,<br />

Tel<br />

CodProd,<br />

DenProd,<br />

C<strong>an</strong>tFact,<br />

Pret<br />

16


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date:<br />

EXEMPLUL II: Evi<strong>de</strong>nţa facturilor emise<br />

NrFact, DataFact, CodCli, Nume, Telefon, Adresa,<br />

CodProd, DenProd, C<strong>an</strong>tFact, Pret<br />

FN1<br />

Descompunerea atributelor compuse ale<br />

dicţionarului <strong>de</strong> <strong>date</strong> în atribute simple<br />

Precizarea i<strong>de</strong>ntificatorului.<br />

Dicţionarul <strong>date</strong>lor<br />

(NrFact, DataFact,<br />

CodCli, Nume, Telefon, Adresa, Localitate, CodPostal,<br />

CodProd, DenProd, C<strong>an</strong>tFact, PretRef, PretFact)<br />

17


FN2<br />

Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date:<br />

EXEMPLUL II: Evi<strong>de</strong>nţa facturilor emise<br />

Fiecare atribut non-cheie să<br />

<strong>de</strong>pindă <strong>de</strong> întreaga cheie<br />

primară (<strong>de</strong>pen<strong>de</strong>nţe<br />

elementare).<br />

CLIENTI (CodCli, Nume,<br />

Telefon, Adresa, CodPostal,<br />

Localitate)<br />

FACTURI(NrFact, DataFact, CodCli)<br />

PRODUSE(CodProd, DenProd, PretRef)<br />

18<br />

FACTURI<br />

FACTURAT<br />

PRODUSE<br />

FACTURAT(NrFact, CodProd, C<strong>an</strong>tFact, PretFact)<br />

CLIENTI


Normalizarea <strong>Baze</strong>lor <strong>de</strong> Date:<br />

EXEMPLUL II: Evi<strong>de</strong>nţa facturilor emise<br />

• FN3<br />

Eliminarea <strong>de</strong>pen<strong>de</strong>nţelor tr<strong>an</strong>zitive<br />

CLIENT (CodCli, Nume, Telefon, Fax, Adresa, CodPostal)<br />

FACTURA(NrFact, DataFact, CodCli)<br />

PRODUS(CodProd, DenProd, PretRef)<br />

FACTURAT(NrFact, CodProd, C<strong>an</strong>tFact, PretFact)<br />

LOCALIZARE(CodPostal, Localitate)<br />

19


EXEMPLUL III: Enunţ + RG<br />

O editură doreşte informatizarea activităţii legate <strong>de</strong> evi<strong>de</strong>nţa<br />

stocurilor <strong>de</strong> carte produse, a autorilor şi a facturilor către clienţi.<br />

Reguli <strong>de</strong> gestiune:<br />

a. Editura produce mai multe cărţi <strong>an</strong>ual;<br />

b. O carte primeşte un Cod ISBN la fiecare retipărire;<br />

c. Cărţile sunt scrise <strong>de</strong> către autori. Un autor poate scrie mai<br />

multe cărţi;<br />

d. Clienţii editurii sunt numai perso<strong>an</strong>e juridice;<br />

e. O factură conţine cel puţin o carte şi o carte poate figura pe<br />

mai multe facturi;<br />

f. Preţul <strong>de</strong> vânzare se stabileşte în momentul producerii unei<br />

cărţi, acesta fiind un preţ orientativ, rămânând neschimbat<br />

până la epuizarea tirajului, preţul efectiv <strong>de</strong> vânzare fiind<br />

negociat cu fiecare client;<br />

g. Cărţile sunt facturate clienţilor (distribuitorilor en-gros, şi<br />

comerci<strong>an</strong>ţilor individuali). 20 Numărul unei facturi şi codul


Din studiul activităţii<br />

editurii au rezultat<br />

următoarele atribute:<br />

Se elimină “atributele”<br />

sinonime şi calculate<br />

CĂRŢI<br />

Cod ISBN<br />

.........<br />

CLIENŢI<br />

CF client<br />

.........<br />

EXEMPLUL III – D.A.<br />

?<br />

?<br />

AUTORI<br />

CNP autor<br />

.........<br />

FACTURI<br />

Nr Factură<br />

.........<br />

21<br />

1<br />

2<br />

3<br />

4<br />

5<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

13<br />

14<br />

15<br />

16<br />

17<br />

18<br />

19<br />

20<br />

21<br />

Cod ISBN<br />

Denumire carte<br />

Data apariţiei<br />

Stocul tipărit<br />

Preţul <strong>de</strong> bază<br />

Număr factură<br />

Data factură<br />

C<strong>an</strong>titatea facturată<br />

Denumire Carte facturată<br />

Pret Carte factură<br />

Valoare Carte factură<br />

Total factură<br />

Cod Fiscal Client<br />

Denumire Client<br />

Adresa client<br />

Telefon<br />

CNP autor<br />

Nume Prenume<br />

Data naşterii<br />

Adresa autor


CĂRŢI<br />

Cod ISBN<br />

.........<br />

CĂRŢI<br />

Cod ISBN<br />

.........<br />

?<br />

EXEMPLUL III – D.A.<br />

FACTURI<br />

Nr Factură<br />

.........<br />

CONŢINUT FACTURĂ<br />

Nr Factură, Cod ISBN<br />

.........<br />

22<br />

FACTURI<br />

Nr Factură<br />

.........


CĂRŢI<br />

Cod ISBN<br />

.........<br />

EXEMPLUL III – D.A.<br />

CĂRŢI<br />

Cod ISBN<br />

.........<br />

?<br />

23<br />

AUTORI<br />

CNP autor<br />

.........<br />

AUTORI CĂRTI<br />

Cod ISBN, CNP autor<br />

AUTORI<br />

CNP autor<br />

.........


Cod ISBN<br />

Denumire<br />

carte<br />

Data<br />

aparitiei<br />

Stocul<br />

tiparit<br />

Pret <strong>de</strong><br />

baza<br />

Cod ISBN 1 1 1 1<br />

Den. carte<br />

Data aparitiei<br />

Stocul tiparit<br />

Pret <strong>de</strong> baza<br />

Numar<br />

factura<br />

Data factura<br />

Numar factura 1 1 1 T<br />

1 T<br />

1 T<br />

Data factura<br />

C<strong>an</strong>titate<br />

facturata<br />

Pret carte<br />

factura<br />

Cod fiscal<br />

client<br />

Denumire<br />

1 1 1<br />

client<br />

Adresa client<br />

Telefon<br />

1 1 1<br />

CNP autor 1 1 1<br />

Nume prenume<br />

Data nasterii<br />

Adresa autor<br />

Cod ISBN +<br />

Numar factura 1 T<br />

CNP +<br />

Cod ISBN<br />

1 T<br />

1 T<br />

Matricea <strong>de</strong>pen<strong>de</strong>ntelor functionale<br />

1 T<br />

1 T<br />

C<strong>an</strong>titate<br />

facturata<br />

24<br />

Pret carte<br />

factura<br />

Cod fiscal<br />

client<br />

1 1 1 T<br />

Denumire<br />

client<br />

1 T<br />

Adresa<br />

client<br />

1 T<br />

Telefon<br />

1 T<br />

CNP autor<br />

Nume<br />

prenume<br />

Data<br />

nasterii<br />

Adresa<br />

autor


Cod ISBN<br />

Denumire<br />

carte<br />

Data<br />

aparitiei<br />

Stocul<br />

tiparit<br />

Pret <strong>de</strong><br />

baza<br />

Cod ISBN 1 1 1 1<br />

Matricea <strong>de</strong>pen<strong>de</strong>ntelor functionale<br />

Numar<br />

factura<br />

(NumarFactura, SerieFactură, CodISBN)→ 25 PretCarteFactura<br />

Data factura<br />

C<strong>an</strong>titate<br />

facturata<br />

Pret carte<br />

factura<br />

Cod fiscal<br />

client<br />

Numar factura 1 1 1 T<br />

C<strong>an</strong>titate<br />

facturata<br />

Pret carte<br />

factura<br />

Cod fiscal client 1 1 1<br />

CNP autor<br />

Cod ISBN +<br />

1 1 1<br />

Numar factura 1 T<br />

1 T<br />

1 T<br />

1 T<br />

1 T<br />

1 1 1 T<br />

1 T<br />

1 T<br />

1 T<br />

CNP +<br />

Cod ISBN<br />

Se observă din matrice, că PretCarteFactura şi C<strong>an</strong>titateFacturată sunt atribute<br />

izolate şi că nu există un grup <strong>de</strong> chei primare sau grup <strong>de</strong> atribute noncheie care<br />

să le <strong>de</strong>termine funcţional.<br />

Astfel, se i<strong>de</strong>ntifică grupul <strong>de</strong> atribute SerieFactură, NumarFactura si CodISBN,<br />

vor <strong>de</strong>termina funcţional cele două câmpuri izolate. Noua tabela va fi<br />

ContinutFactura<br />

(NumarFactura, SerieFactura, CodISBN) → C<strong>an</strong>titateFacturată<br />

Denumire<br />

client<br />

Adresa<br />

client<br />

1 T<br />

Telefon<br />

1 T<br />

CNP autor<br />

Nume<br />

prenume<br />

Data<br />

nasterii<br />

Adresa<br />

autor


AUTORI<br />

Nume camp<br />

CNP<br />

Nume prenume<br />

Adresa<br />

Data nasterii<br />

CĂRŢI<br />

Nume camp<br />

Cod ISBN<br />

Denumire carte<br />

Data aparitiei<br />

Tip <strong>date</strong><br />

Number,LI<br />

Text, 50<br />

Text, 100<br />

Date/Time<br />

Tip <strong>date</strong><br />

Text,<br />

13,M<br />

Text, 50<br />

Date/Time<br />

Obligatoriu<br />

Da<br />

Da<br />

Da<br />

Obligatoriu<br />

Da<br />

Da<br />

Da<br />

Da<br />

AUTORI-CĂRŢI<br />

Nume camp<br />

CNP<br />

Cod ISBN<br />

Tip <strong>date</strong><br />

Unic<br />

Integritate<br />

Referentiala<br />

Stocul tiparit Currency Da<br />

>0<br />

Pret baza Currency Da 26<br />

>0<br />

Da<br />

Unic<br />

Da<br />

Number,LI Da<br />

Text,13,M<br />

Integritate<br />

Referentiala<br />

Obligatoriu<br />

Da<br />

Unic<br />

Reguli <strong>de</strong><br />

validare<br />


FACTURI<br />

Nume camp<br />

Serie factura<br />

Numar factura<br />

Cod Fiscal<br />

Tip <strong>date</strong><br />

Text,5,M<br />

Obligatoriu<br />

Da<br />

Number, LI Da<br />

Number , LI<br />

CONŢINUT FACTURĂ<br />

Nume camp<br />

Tip <strong>date</strong><br />

Serie factura<br />

Numar factura<br />

Cod ISBN<br />

C<strong>an</strong>titate fact<br />

Pret factura<br />

CLIENŢI<br />

Nume camp<br />

Cod fiscal<br />

Denumire client<br />

Text,5,M<br />

Da<br />

Obligatoriu<br />

Da<br />

Number, LI Da<br />

Text, 13,M<br />

Da<br />

Number, Int Da<br />

Currency<br />

Tip <strong>date</strong><br />

Da<br />

Number, LI Da<br />

Text,50<br />

Obligatoriu<br />

Da<br />

Adresa Text,100 Da<br />

Telefon Text,20<br />

27<br />

Unic<br />

Da<br />

Unic<br />

Da<br />

Unic<br />

Da<br />

Da<br />

Integritate<br />

Referentiala<br />

Da<br />

Integritate<br />

Referentiala<br />

Da<br />

Da<br />

Da<br />

Integritate<br />

Referentiala<br />

Reguli <strong>de</strong> validare<br />

Reguli <strong>de</strong> validare<br />

>0<br />

>0<br />

Reguli <strong>de</strong> validare

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!