Documente Academic
Documente Profesional
Documente Cultură
Proiect Fox
Proiect Fox
CUPRINS
CUPRINS........................................................................................................................................................................................1
FORMULAREA PROBLEMEI I A REGULILOR DE GESTIUNE.....................................................................................2
STOC=Cantitatea de intrare-Cantitatea de ieire.....................................................................................................2
ANALIZA APLICAIEI ELABORAREA MODELULUI CONCEPTUAL I TRANSPUNEREA LUI N MODEL
RELAIONAL ..............................................................................................................................................................................2
ANALIZA STRUCTURAL ...............................................................................................................................................3
1.Identificarea entitilor............................................................................................................................................................... 3
2.Identificarea atributelor aferente entitatilor................................................................................................................................3
Codul produsului
Codp....................................................................................................................................................3
PRODUCIE
........................................................................................................................................................................ 4
Cod produs
Codp..........................................................................................................................................4
Cod reeta
Codr...........................................................................................................................................4
Cantitatea unitar
Cantunit................................................................................................................................................4
Cod produs
Codp....................................................................................................................................................... 4
PRODUCTIE.......................................................................................................................................................7
Aplicarea algebrei relaionale asupra bazei de date..............................................................................................................8
TRANDAFIR LUMINIA
(Cantitatea de intrare)
FIA MAGAZIE
( Stoc )
REETAR
( cantitatea unitar)
TRANDAFIR LUMINIA
ANALIZA STRUCTURAL
1.Identificarea entitilor
Pentru aceast aplicaie pot fi puse n eviden urmtoarele entiti :
PRODUSE
FURNIZOR
RECEPIE
PRODUCTIE
REETE
STOC
PRODUSE
Codul produsului
Codp
Denumirea produsului
Denp
Unitatea de masura
UM
Cod furnizor
FURNIZOR
Codf
Adresa furnizor
Adr
Denumire furnizor
Denf
Numarul facturii
NRfact
Data facturii
DATAfact
Cod produs
Codp
Denumire produs
Denp
Cantitatea de intrare
Canti
Pre unitar
PRETunit
RECEPIE
T.V.A
Adaos comercial
TRANDAFIR LUMINIA
TVA
ADcom
Cod reet
Codr
Denumire reet
Denr
PRODUCIE
Numr de buci
RETETE
STOC
NRbuc
Cod produs
Codp
Cod reeta
Codr
Denumire reet
Denr
Cantitatea unitar
Cantunit
Cod produs
Codp
Denumire produs
Denp
Cantitatea de intrare
Canti
Cantitatea de ieire
Cante
Stoc
Stoc
TRANDAFIR LUMINIA
O tabel este n forma normal 1 dac toate cmpurile sunt la nivel elementar i nu exist cmpuri
repetitive(la intersecia dintre un rnd i o coloan se gsete o valoare i numai una ).
n cazul aplicaiei analizate relatia (tabela) de la care se pornete-n forma nenormalizat-arat astfel
:
R(#Codp,Denp,Um,Codf,Denf,Adrf,#Nrfact,Datafact,Canti,Pretunit,TVA,ADcom,#Codr,Denr
Cantunit,NRbuc)
Cheia primar a relaiei R este o cheie compus din Codp ,Nrfact i Codr
Pentru a normaliza BDR se separ datele repetitive mpreun cu un cmp comun- cheia extern;
ntr-o relaie separat .
Denp
Um
Codf
Denf
#Codp
#Codr
Denr
Cantunit
NRbuc
Adrf
#Nrfact
Datafact
Canti
Pretunit
TVA
ADcom
TRANDAFIR LUMINIA
Denr ;Cantiunit
Um ; Denp
Nrfact
Pretunit ;TVA ; Adcom
TRANDAFIR LUMINIA
#Codp
Denp
#Codp
Um
#Nrfact
#Codp
#Codr
NRbuc
#Codr
Codf
Denr
Datafact
Denf
Adrf
Canti
Pretunit
TVA
ADcom
Cantunit
Denp
Um
RECEPTIE
#Codp
#Nrfact
Codf
Datafact
Canti
Pretunit
TVA
ADcom
FURNIZOR
#Codf
Denf
Adrf
RETETE
#Codp
#Codr
Denr
Cantunit
PRODUCTIE
NRbuc
#Codr
TRANDAFIR LUMINIA
TRANDAFIR LUMINIA
PROC adaugare
DEFINE WINDOW f2 AT 5,10 SIZE 15,48 IN WINDOW f1 TITLE 'ADAUGARE DE DATE'
PANEL
ACTIVATE WINDOW f2
op1='da'
DO WHILE op1='da'
CLEAR
vcod=0
SELECT 1
USE C:\Dbaza\produse.dbf
APPEND BLANK
@ 1,4 SAY 'Cod produs'
@ 1,23 GET vcod PICTURE '99999'
@ 2,4 SAY 'Denumire produs'
@ 2,23 GET denp PICTURE REPLICATE('X',15)
@ 3,4 SAY 'Unitate de masura'
@ 3,23 GET um PICTURE REPLICATE ('X',8)
@ 4,4 SAY ' --------------------------------- '
READ
REPLACE codp WITH vcod
SELECT 2
USE C:\Dbaza\receptie.dbf
APPEND BLANK
REPLACE codp WITH vcod
@ 5,4 SAY 'Numarul facturii'
@ 5,23 GET nrfact PICTURE '9999999999999'
@ 6,4 SAY 'Cod fiscal'
@ 6,23GET codf PICTURE REPLICATE('X',8)
@ 9,4 SAY 'Data facturii'
@9,23 GET datafact PICTURE '99/99/9999'
READ
vcodf=codf
SELECT 3
USE C:\Dbaza\furnizor.dbf
APPEND BLANK
@ 7,4 SAY 'Denumire furnizor'
@ 7,23 GET denf PICTURE REPLICATE ('X',15)
@ 8,4 SAY 'Adresa furnizor'
@8,23 GET adrf PICTURE REPLICATE ('X',15)
READ
REPLACE codf with vcodf
@ 12,5 SAY 'Continuati adaugarea?(da/nu)'GET op1
READ
ENDDO
CLOSE DATABASE
DEACTIVATE WINDOW f2
RETURN
TRANDAFIR LUMINIA
PROC modificare
DEFINE WINDOW f3 AT 5,10 SIZE 15,50 IN WINDOW f1 TITLE 'MODIFICARE DE DATE'
PANEL
ACTIVATE WINDOW f3
m2='da'
DO WHILE (m2)='da'
@2,2 clear to 40,50
hai=0
m3='da'
DO WHILE (m3)='da'
cheie=space(5)
@1,5 SAY 'Dati codul RETETEI' GET cheie
READ
SELECT 1
USE C:\Dbaza\Retete.dbf
INDEX ON codr TO C:\Dbaza\Cod2.idx
SET INDEX TO C:\Dbaza\Cod2.idx ASCENDING
REINDEX
SEEK (cheie)
IF NOT FOUND()
@9,5 SAY 'Nu exista produsul cu acest cod '
@10,6 SAY 'Continuati cu alt cod ?(da/nu):'GET m3
READ
hai=1
ELSE
?' Este inregistrarea:'
DISPLAY RECORD RECNO()
??' din baza de date'
m3='nu'
hai=0
ENDIF
ENDDO
IF hai=0
cheie=cheie
SELECT 1
TRANDAFIR LUMINIA
10
USE C:\Dbaza\Retete.dbf
INDEX ON codr TO C:\Dbaza\Cod2.idx
SET INDEX TO C:\Dbaza\Cod2.idx ASCENDING
SEEK(cheie)
vdenr=Denr
@7,4 SAY'Reteta:'GET vdenr PICTURE REPLICATE ('X',15)
READ
SELECT 1
REPLACE Retete.Denr WITH vdenr
cheie=cheie
SELECT 2
USE C:\Dbaza\Produc.dbf
INDEX ON codr TO C:\Dbaza\Coduri2.idx
SET INDEX TO C:\Dbaza\Coduri2.idx ASCENDING
SEEK(cheie)
vnrbuc=Nrbuc
@8,4 SAY'Numar bucati:'GET vnrbuc PICTURE '9999999'
READ
SELECT 2
REPLACE Produc.Nrbuc WITH vnrbuc
ELSE
@2,2 CLEAR TO 9,50
ENDIF
@10,6 SAY 'Continuati modificarile ?(da/nu):'GET m2
READ
ENDDO
DEACTIVATE WINDOW f3
RETURN
PROC stergere
DEFINE WINDOW f4 AT 5,10 SIZE 15,50 IN WINDOW f1 TITLE 'STERGERE DE DATE'
PANEL
ACTIVATE WINDOW f4
SELECT 1
USE C:\Dbaza\Retete.dbf
SELECT 2
USE C:\Dbaza\Produc.dbf
m2='da'
TRANDAFIR LUMINIA
11
DO WHILE (m2)='da'
@2,1 clear to 40,50
hai=0
m3='da'
DO WHILE (m3)='da'
cheie=space(5)
@1,5 SAY 'Dati codul RETETEI' GET cheie
READ
SELECT 1
USE C:\Dbaza\Retete.dbf
SET INDEX TO C:\Dbaza\Cod2.idx ASCENDING
SEEK (cheie)
IF NOT FOUND()
@9,5 SAY 'Nu exista produsul cu acest cod '
@10,6 SAY 'Continuati cu alt cod ?(da/nu):'GET m3
READ
hai=1
ELSE
?' Este inregistrarea:'
DISPLAY RECORD RECNO()
??' din baza de date'
m3='nu'
hai=0
ENDIF
ENDDO
IF hai=0
cheie=cheie
SELECT 1
USE C:\Dbaza\Retete.dbf
SET INDEX TO C:\Dbaza\Cod2.idx ASCENDING
SEEK (cheie)
@8,6 SAY'Confirmati:'
DELETE RECORD RECNO()
? DELETED ()
m4='da'
@10,6 SAY 'Confirmati stergerea?:(da/nu)' GET m4
READ
IF m4='da'
PACK
SELECT 2
USE C:\Dbaza\Produc.dbf
SET INDEX TO C:\Dbaza\Coduri2.idx ASCENDING
SEEK (cheie)
TRANDAFIR LUMINIA
12
TRANDAFIR LUMINIA
13
DENUMIRE RETETA'
SCAN;
NEXT i/2
? codp,'
',denp,'
',' ',D.Cantunit,'
', D.denr
ENDSCAN
RETURN
PROC calcul
DEFINE WINDOW f5 AT 5,10 SIZE 15,50 IN WINDOW f1 TITLE 'CALCUL STOC' PANEL
ACTIVATE WINDOW f5
CLOSE DATABASE
m2='da'
DO WHILE (m2)='da'
@1,0 clear to 40,50
hai=0
m3='da'
DO WHILE (m3)='da'
cheie=space(5)
@1,5 SAY 'Dati codul PRODUSULUI' GET cheie
READ
SELECT 1
USE C:\Dbaza\Receptie.dbf
INDEX ON codp TO C:\Dbaza\Cod_A.idx
SET INDEX TO C:\Dbaza\Cod_A.idx ASCENDING
SEEK (cheie)
IF NOT FOUND()
@9,5 SAY 'Nu exista produsul cu acest cod '
@10,6 SAY 'Continuati cu alt cod ?(da/nu):'GET m3
READ
hai=1
TRANDAFIR LUMINIA
14
ELSE
?' Este inregistrarea:'
DISPLAY FIELDS codp,Canti,Pretunit
??' din baza de date'
m3='nu'
hai=0
ENDIF
CLOSE DATABASE
ENDDO
IF hai=0
cheie=cheie
CLOSE DATABASE
SELECT 1
USE C:\Dbaza\Retete.dbf
INDEX ON codp TO C:\Dbaza\Cod_B.idx
INDEX ON codr TO C:\Dbaza\Cod_E.idx
SET INDEX TO C:\Dbaza\Cod_B.idx ,C:\Dbaza\Cod_E.idx ASCENDING
SELECT 2
USE C:\Dbaza\Produc.dbf
INDEX ON codr TO C:\Dbaza\Cod_C.idx
SET INDEX TO C:\Dbaza\Cod_C.idx ASCENDING
SELECT 1
SET RELATION TO Codr INTO 2
SELECT 3
USE C:\Dbaza\Receptie.dbf
SET INDEX TO C:\Dbaza\Cod_A.idx ASCENDING
SET RELATION TO Codp INTO 1
SEEK(cheie)
cintrare=Canti
? ' Cantitatea de intrare(kg)=',Canti
cu=A.cantunit
SELECT 2
USE C:\Dbaza\Produc.dbf
INDEX ON codr TO C:\Dbaza\Cod_C.idx
SET INDEX TO C:\Dbaza\Cod_C.idx ASCENDING
SELECT 1
SET RELATION TO Codr INTO 2
nr=B.Nrbuc
?' numar de bucati=' ,nr
TRANDAFIR LUMINIA
15
TRANDAFIR LUMINIA
16
TRANDAFIR LUMINIA
17
TRANDAFIR LUMINIA
18
TRANDAFIR LUMINIA
19
TRANDAFIR LUMINIA
20
TRANDAFIR LUMINIA
21
TRANDAFIR LUMINIA
22