CIG an 1 Baze de date - NORMALIZARE.pdf
CIG an 1 Baze de date - NORMALIZARE.pdf
CIG an 1 Baze de date - NORMALIZARE.pdf
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