You are on page 1of 4

Bilet de Examen, subiectul Vanzari

Tab Cienti















Extragere, transformare, incarcare, actualizare

Sursa de date


a) Identificarea masurilor si dimensiunilor
Masurile apartin tabelei de fapte. O masura este un camp numeric valoric de o maniera
continu i aditiv pe ierarhiile tuturor dimensiunilor.
Valoarea Facturii (ValFact), Valoare Discount (ValDiscount), Cantitate facturata (Cantfact).
Dimensiunile
O dimensiune are intotdeauna un identificator iar atributele dimeniuni se numesc parametri.
DimDistribuitori, DimProduse, DimTimp, DimAmbalaje

DimProduse (IDProdus, DenP, UM, Subclasa, Clasa, SubtipP, TipP, Calitate)
DimDistribuitori (IDDistribuitor, DenD, LocD, JudD, Regiune, SubgrupD, GrupD)
DimAmbalaje (IDAmb, Descriere, Volum, Material, Culoare)
DimTimp (IDTimp, luna, trimestru, An, Sezon)

b) Identificarea ierarhiilor alternative
DimTimp I1 (IDTimp, luna, trimestru, An)
I2 (IDTimp, luna, sezon)
DimDistribuitori I1 (IDDistribuitor, LocD, JudD, Regiune)
I2 (IDDistribuitor, SubgrupD, GrupD)

DimAmbalaje (IDAmb, Descriere, Volum, Material, Culoare)
ETL sau
DTS
Depozit
Distribuito
ri
Factura
Produse
Linii
Factura
Ambalaje
DimProduse I1 (IDProdus, Subclasa, Clasa)
I2 (IDProdus, SubtipP, TipP)

c) MCD (Modelul conceptual al depozitului)





















Rezult un model de tip stea n care avem o tabel de fapte (Vanzari) i mai
multe dimensiuni ( DimTimp, DimDistribuitori, DimProduse, DimAmbalaje).

MLD (modelul logic al datelor)

DimTimp (IDTimp, luna, trimestru, An, Sezon)
DimProduse (IDProdus, DenP, UM, Subclasa, Clasa, SubtipP, TipP, Calitate)
DimDistribuitori (IDDistribuitor, DenD, LocD, JudD, Regiune, SubgrupD, GrupD)
DimAmbalaje (IDAmb, Descriere, Volum, Material, Culoare)
Achizitii (IDDistribuitor, IDTimp, IDAmb, IDProdus, Cantfact, ValFact, ValDiscount)




DimTimp
IDTimp
luna
trimestru
An
Sezon

Vanzari
ValFact
ValDiscount
Cantfact
DimProduse
IDProdus
DenP
UM
Subclasa
Clasa
SubtipP
TipP
Calitate
DimDistribuitori
IDDistribuitor
DenD
LocD
JudD
Regiune
SubgrupD
GrupD

DimAmbalaje


IDAmb
Descriere
Volum
Material
Culoare

5. a) popularea DimProduse
extragere produse (se salveaz exprod)
Select Produse.Cod produs, Produse.Denumire, Produse.Calitate, Produse.Unit masura,
Produse.Clasa, Produse.Subclasa, Produse.Tip produs, Produse.Subtip produs
From Produse IN .sursadedate.mdb;
Transformare produse ( se salveaza transfprod)
Select exprod.Cod produs AS IDProdus, exprod.Denumire AS DenP, exprod.Clasa,
exprod.Subclasa, exprod.Tip produs AS TipP, exprod.Subtip produs AS SubtipP,
exprod.Calitate, exprod.Unit masura AS UM
From exprod;
Creare DimProduse (se salveaza crprod)
Select transfprod.IDProdus, transfprod.DenP, transfprod.Clasa, transfprod.Subclasa,
transfprod.TipP, transfprod.SubtipP, transfprod.Calitate, transfprod.UM INTO DimProduse IN
depozit.mdb
From transfprod;
Actualizare produse (se salveaza acprod)
INSERTINTO DimProduse (IDProdus, DenP, UM, Clasa, Subclasa, SubtipP, TipP, Calitate) IN
depozit.mdb
Select transfprod.IDProdus, transfprod.DenP, transfprod.Clasa, transfprod.Subclasa,
transfprod.TipP, transfprod.SubtipP, transfprod.Calitate, transfprod.UM
From transfprod;

c) pentru tabela de fapte Vanzari
extragere vanzari (se salveaza exvanz)
Select Factura.Cod distrib, Factura.Data fct, Factura.Discount, Linii Factura.Cantitate,
Produse.Cod produs, Produse.Pret unitar, Produse.Cod ambalaj
From Factura INNER JOIN (Linii Factura INNER JOIN Produse ON Linii Factura.Cod
produs = Produse.Cod produs) ON Factura.Nr fct = Linii Factura.Nr fct IN
.sursadedate.mb;
Transformare vanzari (se salveaza transfvanz)
Select exvanz.Cod distrib AS IDDistribuitor, exvanz.Cod produs AS IDProdus, exvanz.Cod
ambalaj AS IDProdus, exvanz.Data fct AS IDTimp, Sum(exvanz.Cantitate *exvanz.Pret
unitar(1-exvanz.Discount)) AS ValFact, Sum(exvanz.Cantitate*exvanz.Pret
unitar*exvanz.Discount) AS ValDiscount, Sum(exvanz.Cantitate) AS Cantfact
From exvanz
Group By exvanz.Cod produs, exvanz. Data fct, exvanz.Cod distrib;
Creaza vanzari (se salveaza crvanz)
Select transfvanz.IDProdus, transfvanz.IDTimp, transfvanz.IDDistribuitor,
transfvanz.IDAmb, transfvanz.ValFact, transfvanz.ValDiscount, transfvanz.Cantfact INTO
Vanzari IN ..depozit.mdb
From transfvanz;
Actualizare vanz (se salveaza acvanz)
INSERT INTO Vanzari (IDProdus, IDTimp, IDDistribuitor, IDAmb, ValFact, ValDiscount,
Cantfact) IN ..depozit.mdb
Select transfvanz.IDProdus, transfvanz.IDTimp, transfvanz.IDDistribuitor,
transfvanz.IDAmb, transfvanz.ValFact, transfvanz.ValDiscount, transfvanz.Cantfact
From transfvanz;

6 a)
Transform Sum(Vanzari.Cantfact)AS TotalCantitate
Select DimTimp.luna, DimDistribuitori.DenD, DimProduse.Clasa
From DimTimp, DimProduse, DimDistribuitori, Vanzari
Where DimTimp.IDTimp = Vanzari.IDTimp and DimDistribuitori.IDDistribuitor =
Vanzari.IDDistribuitori and DimProduse.IDProdus = Vanzari.IDProdus and DimTimp.an =
2005
Group BY DimTimp.luna, DimDistribuitori.DenD, DimProduse.Clasa
Pivot DimProduse.DenP;

b) Transform Sum(Vanzari.Cantfact)AS TotalCantitate
Select DimProduse.DenP, DimProduse.UM
From DimAmbalaje INNER JOIN (Vanzari INNER JOIN DimProduse ON
Vanzari.IDProdus = DimProduse.IDProdus) ON DimAmbalaje.CodAmb = Vanzari.CodAmb
Group BY DimProduse.DenP, DimProduse.UM
Pivot DimAmbalaje.Culoare

You might also like