Profesor Univ.Dr.Muntean I.Mihaela Student Megheleș Loredana Florentina Timișoara 2015 LUCRARE DE LICENȚĂ DEPOZIT E DE DATE ASPECTE TEORETICE ȘI… [620251]

LUCRARE DE LICENȚĂ

Coordonator științific

Profesor Univ.Dr.Muntean I.Mihaela

Student: [anonimizat]
2015

LUCRARE DE LICENȚĂ
DEPOZIT E DE DATE
ASPECTE TEORETICE ȘI IMPLEMENTA RE ÎN ORACLE SQL

Coordonator științific

Profesor Univ. Dr. Muntean I. Mihaela

Student: [anonimizat]
2015

Copyright © 2015 – Toate drepturile privind lucrarea de față aparțin autorului acesteia și sunt
protejate prin Legea dreptului de autor L8/1996 , cu modificările și completările ulterioare .
Folosi rea conținutului sau a unor părți din acesta fără acordul autorului se pedepseș te conform
legilor in vigoare.

REFERAT

Lucrarea abordeaza o tema de actualitate, demersul teo retic fiind dublat de unul aplicativ, ce
vizeaza o propunere de depozit de date – suport informational pentru deciziile dintr -o agentie
de turism.
Lucrarea "Depozite de date. Aspecte teoretice si implemetare in Oracle SQL" indeplineste
toate conditiile imp use unei lucrari de licenta si propun sustinerea ei, de catre d -ra absolventa
Loredana Megheles in fata comisiei de specialitate – 10(zece).

8 sept. 2015 prof. Mihaela Muntean
MMuntean

DECL ARAȚIE

Subsemnatul, …………………………………………………………. …………………………………………………. …………..,
absolvent: [anonimizat], promoția
…………… autor al lucrării de licență cu titlul
…………………………………………………………………………………………………………….. …………………………………
…………………………………………………………………………………………………………….. …………………………………
………………………………… …………………………………………….. …………………………………………………………. ….,
având ca îndrumător științific pe Doamna/Domnul Prof./Conf./Lector Dr.
…………………………………………………………………………………………………………….. ..,
pe proprie răspundere și cunoscând prevederile art. 14 3 (alin. 4,5) și 310 (alin. 1,2) ale Legii
Educației Naționale nr.1/2011, art. 4 (alin. 5) din Ordinul Ministerului Educației, Cercetării și
Sportului, art. 9 din Regulamentul de organizare a examenelor de finalizare a studiilor
universitare de licență din cadrul UVT și ale Procedurii Operaționale a UVT privind frauda
și/sau plagiatul academic în rândul studenților, declar următoarele:
lucrarea de absolvire a fost elaborată de mine, ca rezultat al propriei cercetări și
documentări, nu a mai fost prezentată niciodată la o altă facultate sau instituție de
învățământ superior, din țară sau străinătate;
– toate sursele bibliografice utilizate, inclusive cele de pe Internet, sunt indicate în lucrare;
– toate fragmentele de text reproduse exact, chiar și în traducere din altă limbă, sunt
redate între ghilimele și dețin referința precisă a sursei bibliografice;
– reformularea, în cuvinte proprii, a textelor scrise de către alți autori indică sursa
bibliografică din care s -a inspirat;
– calculele sunt efectuate de către mine , iar comentarea rezultatelor obținute este original;
– reprezentările grafice și tabelele care nu îmi aparțin au indicată sursa bibliografică
exactă.

Prin prezenta îmi a sum în totalitate originalitatea lucrării elaborate.

Timișoara,
Data: ______________
Nume:______________________
Prenume: ___________________________
Semnătura

CUPRINS

1. Introducere ………………………….. ………………………….. ………………………….. ………………………. 9
2. Literatura de specialitate ………………………….. ………………………….. ………………………….. ….. 10
2.1. Depozite de date. Generalit ăți ……………………………………………………………….. ……….. 10
2.1.1. Definiții ale depozitului de date …………………….. ……………. ……………………… …. 10
2.1.2. Caracteristici ale unui depozit de date …………………………….. ………………………. . 11
2.1.3. Cerințe le unui depozit de date ……………………………………….. ……………. ………… 12
2.1.4. Strategia de realizare și obiectivele depozitului de date ……… ……………… ………. 12
2.2. Proiectarea schemei depozitului de date. Metadatele ………………………….. ……………… 13
3. Studiu de caz și rezultate ………………………….. ………………………….. ………………………….. ….. 18
3.1. Descrierea aplicației ………………………….. ………………………….. ………………………….. ….. 18
3.2. Baza de date ………………………….. ………………………….. ………………………….. …………….. 18
3.3 Depozitul de date și indicatorii de performanță ………………………….. ……………………… 25
4. Concluzii ………………………….. ………………………….. ………………………….. ……………………….. 42
5. Listă bibliografică ………………………….. ………………………….. ………………………….. …………… 43
6. Anexe ………………………….. ………………………….. ………………………….. ………………………….. .. 45

Facultatea de Economie și de Administrare a Afacerilor 9

DEPOZITE DE DATE
ASP ECTE TEORETICE ȘI IMPLEMENTARE ÎN ORACLE SQL

Rezumat :
Pe baz a lite raturii de specialitate, î n lucrare se prop une o abordare multidimensională baz ată
pe o structura de tip depo zit de date. Abordarea teoretică este finalizată print r-un studiu de caz
la o agentie de turism.

Cuvinte cheie :
Depozite de date , model are multid imensional a, OLAP , indicatori de performanta

Cod/uri JEL: C88, H24, Q10 , M15

1. Introduce
1. Introducere

Acumularea cantități ilor mari de date, necesare funcționarii activității și luării unor decizii
corecte nu mai este o problema din punct de vedere teh nic. Acum se pune prob lema extragerii
din multitudinea informațiilor exitente a celor mai relevante dintre ele pentru problema dată, într –
un timp scurt și cu un cost cât mai mic. Așa s -a născut ideea structurării informației în depozite
de date ( Data wareh ouse – DW).
Depozitele de date definesc un ansamblu de tehnologii apărute la începutul anilor 1990 ca
rezultat al progreselor înregistrate în domeniul procesării datelor, cu precădere a procesării unor
volume însemnate de date, depozitul de date reprezen tând piesa centrală în orice sistem
inteligent din domeniul Business Intelligence. Un depozit de date (data warehouse) este o bază
de date foarte mare, construită prin metode specifice din datele operaționale păstrate de o
organizație/companie. Rostul unui astfel de depozit este de a oferi cunoștințe: datele sunt
prelucrate și analizate prin diverse metode ce țin de domeniul inteligenței artificiale, obținându –
se informații utile în managementul organizației, în conceperea de planuri și strategii, și altele .
Scopul lucrării Depozite de date este să descrie și să evidențieze proprietățile unui Data
Warehouse, să urmărească procedeele legate de construirea unei asemenea unelte, să descrie
metode de utilizare, exploatare și întreț inere.
Abordările teoretice ale lucrării sunt dublate de o propunere concretă a unui depozit de date
suport pentru o analiză multidimens ională a evidenței veniturilor ș i cheltuielilor în cadrul unei
agenții de turism.
În lucrare este formulat un set de indicatori de performanță (KPIs) u tili unui decident din
domeniu.Plecând de la o fundamentare a modelării conceptuale a unui depozit de date,în studiul
de caz s-a realizat efectiv modelarea datelor ce va servi ca suport informațional unor posibili
decidenți:
I1- numărul total al facturilor în funcție de agenție_dd,client_dd și de angajat_dd; I2- total
valoare facturi în funcție de agentie_dd,client_dd și angajat_dd ; I3- valoarea totala a salariilor în
funcție de agentie_dd,angajat_dd,varsta_angajat_dd și data_dd; I4-valoarea salariilor
minime,maxime,medii în funcție de agentie_dd și data_dd;

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 10

2. Literatura de specialitate

2.1. Depozite de date. Generalit ăți

2.1.1. Definiții ale depozitului de date

Depozitul de date reprezintă un ansamblu de componente software ș i hardware care sunt utilizate
pentru o mai bună analiză a cantitățiilor mari de informații di n cadrul organizației. Scopul
depozitului de date îl constituie furnizarea unei asistențe informaționale î n procesele de luarea
deciziilor. Definițiile depozitelor de date în literatura de speci alitate sunt numeroase, pe plan
internațional , primii teoreticieni în domeniu fiind Ralph Kimball, Bill și William Inm on.
Ralph Kimball definește depozitul de date în lucrăriile sale [KIMB98] precum și [KIMB02] ca
fiind o "sursă de date interogabilă a într eprinderii".
Cea mai populară definiție vine însă de la cel care este cunoscut drept părintele depozitului de
date ,William Inmon,care definește depozitul de date ca fiind o " colec ție de date orientată pe
subiect,integrată,variantă î n timp și ne -volatil ă utilizată ca suport în procesul de luare a deciziei
de către manageri". (Inmon, W., 2005; Airinei, D., 2002, p.17)

Figura 1. Componentele unui depozit de date
Sursa : http://www.creeaza.com/referate/management/Depozite -de-date813.php

Facultatea de Economie și de Administrare a Afacerilor 11

2.1.2. Caracteristici ale unui depozit de date

Principa lele caracteristici ale depozitelor de date sunt următoarele (Ponniah , P., 2010, p. 20-23):

 Orientarea pe subiecte : Principalul scop al depozitelor de date este analiza datelor
oferind răspunsuri la întrebă ri fixe cum ar fi : "Care este sal ariul mediu? " , "În care lună
se înregistrează cele mai mari încasări? ".
Depozitele de date oferă o viziune simplă și concisă, excluzând acele datele care nu sunt
utile în procesul de sprijinire a deciziei.

 Integrarea : Depozitul de date este construit prin integrarea datelor provenite din div erse
surse, acestea putând fi baze de date relaționale, fișiere. Rezultă mai departe o imagine
facilizată a date lor, utilizarea lor făcându -se în mai multe aplicații, cu condiția respect ării
convențiilor de nume, structură și măsuri. (Inmon, W., 2005, p.20)

 Persist ența ș i nevolatilitatea datelor : Singure le modificări care se pot face î n depozit,
după introducerea da telor, sunt cele care au ca scop corectarea anumitor greșeli, ca de
exemplu constatarea de conflicte ale valorilor de atribu te, existența valorilor null ,
nepotrivirea unitățiilor de m ăsură sau modificările facute în scopul asigurării calității
datelor. Aceste modificări se realizează de către administratorul depozitului de date,
aceasta fiind una din resp onsabilitățiile lui.

 Varianța în timp : Pentru a identifica tendințele din business, anali știi au nevoie de date
istorice , care descriu starea de fapt a proceselor la anumite momente în timp. Așadar,
decidenții consultă aceste valori pentru a calcula anum iți indicatori.

Figura 2 . Schema ilustrativă a unui depozit de date
Sursa: http://oracular.com/white_paper_pdfs/DataWarehousingOracle.pdf
Shahzad, 1999, p. 2

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 12

2.1.3. Cerințe le unui depozit de date

1. Scop
Depozitele de date sunt proiectate să ofere sup ort pentru luarea deciziilor fiind adaptive
mediului afacerilor. Sunt sisteme de învățare care se adaptează încontinuu la mod ificările
din mediul de afaceri, întrucât întrebările pe care utilizatorii acestor sisteme le pun astăzi
sunt diferite de întreb ările pe care le vor pune mâine , sau săptămâna viitoare. (Airinei, D.,
2002, p. 60)

2. Tipul interogarilor
Depozitele de date sunt proiectate pentru a facilita cererile ne-prevăzute în faza de analiză
și dezvoltare a sistemului. Cu datele puse la dispoziție de c ătre depozit, utilizatorii își pot
crea propriile tipuri de rapoarte .

3. Modificarea datelor
Datele din cadrul depozitului de date nu se modifică. Ele reprezintă instantanee ale stării
curente ale organizației. Succesiunea de instantanee permite analistului sau utilizatorului
depozitului să determine comportamentul fenomenului economic. Utilizatorii au doar
dreptul de interogare, nu și cel de actualizare.

4. Proiectarea schemei bazei de date
Depozitele de date folosesc schema stea, cea denormalizată sau schema fulgului de nea,
cea parțial denormalizată.Viteza de răspuns a interogărilor facute de utilizatori este mai
mare cu cât schema este mai denormalizată.

5. Operații tipice
Operațiunea tipică a unui depozit de date este interogarea SELECT, care parcurge de
obicei mii sau sute de mii de înregistrări.

6. Datele istoric e
Depozitele stochează date care ajung la nivelul zecilor de ani . Acestea se constituie ca
suport pentru analiza istorică care folosește în special tehnici statistice de analiză.

7. Sursele de date
Date le din depozitul de date pot fi din surse externe organizației sau surse in terne. În
momentul introducerii î n depozit, datele vor fi adu se la acelaș i format. Acest proces
poartă denumirea de integrare a datelor.

2.1.4. Strategia de realizare și o biectivele depo zitului de date

În general, procesul de proiectare a depozitului constă în următorii pași: (Mallach E., 2000, p.58)

1. Alegerea procesului economic de modelat, de exemplu: stocuri, vânzări etc. Dacă procesul
economic este organizațional și implică colecți i de obiecte complexe și multiple, un model tip
depozit de date este recomandat . Dacă procesul este departamental și focalizat pe analiza unui
singur domeniu, atunci va fi ales un mode l de tip data marts;

2. Alegerea nivelului de granularitate. Nivelul de granularitate este nivelul de date fundamental,
atomic care va fi folosit pentru reprezentarea datelor în tabela de fapte pentru fiecare proces;

Facultatea de Economie și de Administrare a Afacerilor 13

3. Alegerea dim ensiunilor care vor fi aplicate la fiecare înregistrare din tabela de fapte.
Dimensiun ile tipi ce sunt: timp, articol, client , furnizor , depozit , tip tranzacții și stare;

4. Alegerea măsurilor (valorilor) care vor popula fiecare înregistrare din tabela de fapte. Valorile
tipice sunt numerice, de exemplu, vânzări_lei și cantitate _vândută;

Obiectivele aferente unui depozit de date au fost identific ate ca fiind urmatoarele:
 Informațiile din depozit trebuie sa fie consistente;
 Informațiile despre organizație trebuie sa fie accesibile;
 Depozitul de date trebuie sa fie adaptabil la schimbări;
 Depozitul de date trebuie să asigure securitatea;
 Depozitul d e date trebuie să ofere suport informațional în procesul de luare a deciziilor;
 Depozitul de date, pentru a fii unul de succes, trebuie sa fie acceptat de comunitatea de
business;

2.2. Proiectarea schemei depozitului de date. Metadatele

Depozitul de date are nevoie de o schemă concisă, orientată pe subie cte care facilitează analiza
online a datelor.
La nivelul depozitului de date, datele sunt modelate conform unei abordări multidimensionale.
Modelarea multidimensională este o tehnică de proiectare logică ce pe rmite structurarea datelor
și vizualizarea acestora sub forma unui set de variabile cheie pentru activitatea analizată.
Variabilele sunt descrise în funcție de aspectele caracterist ice ale activității analizate. (Kimball,
R., Ross, M., 2013, p. 353) .
Modela rea multidimensională oferă câteva concepte puternice care o impune în sistemele
moderne de sprijinire a proceselor decizionale:
-Modelarea multidimensională este simplă – Tehnicile de modelare multidimensională oferă
posibilitatea proiectanțiilo r de depoz ite de date să creeze scheme uș or de controlat și de înțeles.
-Modelarea multidimensională promovează calitatea datelor prin existența înregistrărilor
corespunzătoare în tabelele de căutare.
-Optimizarea performanțelor este posibilă prin agregare, care re prezintă cea mai buna soluție de
a crește performanța sistemului de interogare.

Schemele de modelare multidimensională îmbracă forme de tip stea (star schema), fulg de
zăpadă (snow -flake schema) sau de constelație (constellation schema).

 Schema STEA: es te cel mai utilizat model de organizare al depoz itelor de date fiind tot
odată ș i cel mai simplu model dimensional de date.
Depozitul conține o tabelă centrală (tabela de fapte) și un set de tabele dimensionale
aranjate în jurul tabele centrale. Tabela de fapte este conectată la tabelele dimensiune pe
baza cheilor externe pe care acestea le conțin, cuprinzând astfel marea parte a datelor.
Avantajul utilizării unei scheme de tip “stea” constă în obținerea de performanțe optime
pentru interogările dintr -un de pozit de date. (Bird, M., Lane, P., 2012, Chapter 4, pp.8)

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 14

Figura 3 . Schema " stea" a unui depozit de date pentru vânzări
Sursa: http://slidegur.com/doc/11 07945/tehnologii -informatice -de-integrare -a-datelor

 Schema FULG DE ZĂPADĂ : Este o variantă a schemei “stea”, obținută prin
descompunerea unei a sau mai multor dimensiuni care au ierarhii. Tabelele de
dimensiune respectă regulile de normalizare din model ul relațional, de aici rezultând
economia de spațiu. Printre principalele avantaje ale acestei sc heme se numără
redundanța redusă și facilitatea întreținerii. Dezavantajul principal îl con stituie timpul
îndelungat de răspuns atunci când trebuie să se exec ute mai multe join -uri. (Velicanu,
M., Muntean, M., 2001, p. 6)

Figura 4 . Schema "fulg de zăpadă" a unui depozit de date pentru vânzări
Sursa: http://slidegu r.com/doc/1107945/tehnologii -informatice -de-integrare -a-datelor

Facultatea de Economie și de Administrare a Afacerilor 15

 Schema CONSTELAȚIE: asociere a mai multor scheme de tip stea. Legăturile între tabele
se fac prin intermediul unei dimensiuni . Steaua centrală conț ine date la nivel atomic, iar
celelalte stele conțin date agregate. Această schemă mai poartă denumirea de schema
"Galaxie ".

Figura 5 . Schema "constelație " a unui depozit de date pentru vânzări
Sursa: http://slidegur.com/doc/1107945/tehnologii -informatice -de-integrare -a-datelor

În cadrul schemelor multidimensionale identificăm: (Shaw, L., 2001, Chapter 3, pp. 10, 17, 28)
 Tabele de fapte

Utilizatorii analizează și sintetizează faptele (valori numerice) p entru a putea înțelege într –
un mod profund diferitele aspecte ale unei afaceri.
J.M.Franco precizeaz ă că " tabelele de fapte regrupează acei indicatori care se referă la un
subiect de analiză , partajând aceleași dimensiuni ș i care nu pot fi rezultați din a lți
indicatori. " (Franco,J.,1997,pp. 210)
În tabela de fapte sunt stocate date istorice, care fac obiectul analizei, tabela de fapte fiind
cea mai voluminoasă din punctul de vedere al datelor, aceasta devenind tabela dominantă a
depozitului. Cheile primare ale tabelelor dimensionale formează cheia primară a tabelei de
fapte, ea fiind o cheie primară compusă.
Modelarea multidimensională are ca principi u utilizarea tabelelor în form ă normalizată.
Normalizarea este procesul care asigură stabilitatea unei baze de date.

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 16

Figura 6 . Reprezentarea grafică a unei tabele de fapte pe vânzări
Sursa : https://ro.scribd.com/doc/152240240/SIAD -Curs -6-Tabele -de-Fapte

 Măsurile activității: se stabilesc în tabelele de fapte ș i sunt reprezentate de datele
cantitative la nivel agregat. O linie dintr -un tabel de fapte corespunde unei mă suri.

 Tabelele dimensiune se mai numesc și tabele de căutar e, stabilesc contextul faptelor ,
ele conținând câmpu ri care descriu faptele. Tabelele dimensionale trebuie să descrie
datele din tabelele de fapte, să conțină chei unice, numărul dimensiunilor să fie
rezonabil, evitând astfel gestionarea dificilă a acestora.
Unul din principiile cheie ale modelării dimensiu nilor est e folosirea tabelelor de
fapte î n formă normalizată, împreună cu tabelele dimensionale î n formă
denormalizată. Prin denormalizarea dimensiunilor, utilizatorul găsește informațiile
dorite într-o singu ră tabelă.

 Ierarhiilor dimensionale: Ca rezulta t al denormalizării dimensiunilor, fiecare
dimensiune va conține ierarhii ca re ne folosesc în structurarea ș i gruparea datelor. Un
exemplu concret de ierarhie poate fi dimensiunea Agenție -regiune -județ -oraș.

Granularitatea datelor din depozit indică gradu l de deta liere al acestora în tabela de fapte,
granularitatea depinz ând direct de gradul de detaliere pe care îl au dimen siunile sale.
Faza de analiză a g ranularității unui depozit de date trebuie efectuată foarte atent : o
granularitate la un nivel prea si stetic nu permite obțin erea de informații suplimentare; o
granularitate accentuată poate crește exponențial spațiul ocupat de depozitul de date. Din
moment de granularitatea tabelei de fapte determina nivelul de detaliere al dimensiunilor
din jurul ei, înseamnă că , primay key a tabelei de fapte este în reali tate o concatenare a
cheilor fiecăre i dimensiuni în parte.
Agregare a datelor este unul din cele mai importante concepte din lumea depozitelor de
date. Utilizarea corectă a agregărilor duce la creșterea s emnificativă a performanțelor
depozitului de date în ceea ce priveste timpul de răspuns la interogări. (Muntean, M,
2014, p. 2)
Avantajul agregării constă în faptul că utilizatorul poate lansa interogări asupra valorilor
agregate cu scopul de a obține valo ri sintetice, în loc să solicite sistemu l cu interogări ce
calculează de fiecare dată valorile agregare prin accesarea înregistrărilor elementare.

Metadatele

Un depozit de date stochează date detaliate, date agregate și medatadele. Datele
detaliate sunt cele relativ recente, livrate utilizatorilor, de regulă la nivel de execuție. Tot
aici se găsesc date având o anumită vechime (câțiva ani), în formă detaliată . Datele

Facultatea de Economie și de Administrare a Afacerilor 17

agregate sunt necesare deoarece au rolul de a asigura un timp mediu de răspuns cât ma i
redus.
Una din cele mai importante componente ale depozitului de date o reprezintă metadatele.
Metadatele reprezintă date despre date, care descriu conținutul depozitului și furnizează
trimiteri directe la date. Ca metadate se stochează și diverse vederi (views) asociate
anumitor categorii de utilizatori. În domeniul data warehouse, metadatele se aplică pentru
sursele de date, pentru programele și regulile de extragere și transformare, pentru
structura datelor și pentru conținutul propriu -zis al depo zitului de date.

Figura 7. Arhitectura de principiu a unui depozit de date
Sursa: Airinei, 2002, p. 23

Metadatele unui depozit de date conțin (Chaudhuri, Dayal, 1997, p. 518; Airinei, D., 2002, p. 26;
Mallach E., 2000, p. 41)
– descrierea structurii da telor din depozit, incluzând schema depozitului, dimensiunile,
ierarhiile și definițiile datelor derivate;
– algoritmii utilizați pentru sumarizare, care includ măsura ș i dimensiunea algoritmilor,
date despre granularitate;
– transformările de la mediul operaț ional la depozitul de date care includ bazele de dată
sursă și conținutul lor, extragerea și filtrarea datelor, precum și partea de securitate a
datelor;
– partea referitoare la performanțele sistemului, aici regăsim indicii;
– metadatele operaționale car e inc lud date privind evoluția î n timp , circulația datelor și
informațiile de monitorizare;
– metadatele economice care includ termenii economici ș i definițiile aferente ;

Metadatele ajută administratorii și utilizatorii depozitului să localizeze și să înț eleagă secvențele
de date atât în sistemele sursă cât și în structura depozitului. Ele mențin și cresc calitatea datelor,
fapt ce se realizează prin definirea valorilor valide pentru fiecare câmp din depozit.

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 18

3. Studiu de caz și rezultate

3.1. Descrierea apli cației

Aplicația pr ezentată în lucrare ține evidența unei agenții de turism care se ocupă cu cazarea
turiștilor la hotel, în diferite orașe ale Europei. Agenția are sedii în trei județe: Timiș, Cluj și
Dolj. În județul Timiș avem trei sedii în orasul Timi șoara, în județul Cluj trei sedii în orașul Cluj –
Napoca, iar în județul Dolj două sedii în orașul Craiova. În fiecare agenție găsim 5 funcții: 1
angajat în funcția de director, 1 angajat în funcția de manager, 1 angajat în funcția de contabil și
2 angajaț i în funcția de agent de turism. Clienții au posibilitatea de a alege din cele 60 de oferte
comune în orașe precum Roma, Paris sau Londra . Prețurile ofertelor se află in lei . Între agentul
de turism ș i client se încheie o factură, unde se precizează CNP -ul clientului, id-ul angajatului,
numărul ofertei, data de facturare precum și valoarea acesteia. Agenția ține și o evidență a
salariilor c are cuprinde id -ul angajatului ș i data salariului ca fiind cheie primară multiplă, cod-ul
agenției și salariul angajat ului.

3.2. Baza de date

Baza de date relațională privind evidența unei agenții de turism.Considerăm următoarea bază de
date care conține tabelele :

Agentie, Angajat, Oferta, Client, Evidenta_salarii, F unctie, Detalii_angajat, ș i Factura.

Figura 7. Baza de date relațională pentru evidența agenției de turism

Facultatea de Economie și de Administrare a Afacerilor 19

Crearea tabelelor din structura bazei de date
Pentru crearea tabelelor folosim urm ătoarele comenzi:

 Tabela agentie

CREATE TABLE agentie (cod_agentie VARCHAR2(3) CONSTRAINT pk_cod_agentie
PRIMARY KEY CONSTRAINT nn_cod_agentie NOT NULL CONSTRAINT
ck_cod_agentie CHECK (cod_agentie=upper (cod_agentie)),oras VARCHAR2(30),sucursala
VARCHAR2(30),adresa VARCHAR2(30),numar_telefon NUMBER(10)
,email VARCHAR2(40),cod_postal CHAR(6),CUI CHAR(7),nr_in matriculare CHAR(13));

 Tabela oferta

CREATE TABLE oferta (id_oferta VARCHAR2 (4) CONSTRAINT pk_id_oferta PRIMARY
KEY CONSTRAINT nn_id_oferta NOT NULL,tara VARCHAR2(30),
oras VARCHAR2(30),specificatii VARCHAR2(200),pret NUMBER(10,2));

 Tabela functie

CREATE TABLE functie (id_functie VARCHAR2 (2) CONSTRAINT pk_cod_functie
PRIMARY KEY CONSTRAINT nn_id_functie NOT NULL,
denumire_functie VARCHAR2(30));

 Tabela client

CREATE TABLE client (cnp CHAR (13) CONSTRAINT pk_cnp PRIMARY KEY
CONSTRAINT nn_cnp NOT NU LL,nume VARCHAR2(30),prenume VARCHAR2(30),
sex CHAR(1) DEFAULT 'M' CONSTRAINT nn_sex NOT NULL CONSTRAINT ck_sex
CHECK(sex IN('M', 'F')),email VARCHAR2(40),adresa VARCHAR2(30),
localitate VARCHAR(30),judet VARCHAR2(30) CONSTRAINT ck_judet CHECK
(judet =upper (judet)), telefon NUMBER (10),data_nasterii DATE);

 Tabe la angajat

CREATE TABLE angajat (id_angajat VARCHAR2 (6) CONSTRAINT pk_id_angajat
PRIMARY KEY CONSTRAINT nn_id_angajat NOT NULL ,nume VARCHAR2(30),
prenume VARCHAR2(30) ,telefon NUMBER (10) , cod_agentie VARCHAR2(3)
CONSTRAINT
fk_cod_agentieu REFERENCES agentie(cod_agentie),id_functie VARCHAR2 (2)
CONSTRAINT fk_id_functie REFERENCES functie(id_functie));

 Tabela detalii_angajat

CREATE SEQUENCE seq_detalii_angajat INCREMENT BY 1 MINVALUE 1 MAXVALUE
1000 NOCYCLE NOCACHE ORDER;
CREATE TABLE detalii_angajat (nr_detalii NUMBER(4) CONSTRAINT pk_nr_detalii
PRIMARY KEY CONSTRAINT nn_nr_detalii NOT NULL,
id_angajat VARCHAR2 (9) CONSTRAINT fk_id_angajatul REFERENCES
angajat(id_angajat),data_naste rii DATE,data_angajarii DATE DEFAULT SYSDATE,

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 20

adresa VARCHAR2(30),localitate VAR CHAR2(30), judet VARCHAR2(30)) ;

 Tabela evidenta_salarii

CREATE TABLE evidenta_salarii( cod_agentie VARCHAR2(3) CONSTRAINT
fk_cod_agentiie REFERENCES agentie(cod_agentie),id _angajat VARCHAR2(6)
CONSTRAINT fk_id_angajate REFERENCES angajat(id_angajat),salar_brut NUMBER
(5),data_salar date,CONSTRAINT pkev_salarii PRIMARY KEY (id_angajat,data_salar));

 Tabela factura

CREATE TABLE factura (cod_factura NUMBER(6) CONSTRAINT pk_id _factura PRIMARY
KEY CONSTRAINT nn_cod_factura NOT NULL CONSTRAINT ck_cod_factura
CHECK (cod_factura >999 AND cod_factura <=999999),cnp CHAR (13) CONSTRAINT
fk_cnp REFERENCES client(cnp),nume_client VARCHAR2(30),
id_angajat VARCHAR2 (6) CONSTRAINT fk _id_angajaty REFERENCES angajat(id_angajat)
,id_oferta VARCHAR2 (4) CONSTRAINT fk_id_oferta REFERENCES
oferta(id_oferta),data_facturare DATE , valoare_fara_tva NUMBER(6));

Inserarea datelor în tabelele bazei de date

 Tabela agentie

INSERT INTO agent ie VALUES ('TMA','Timisoara','Lipova','Strada Linistii
nr.36',0765432123,'agentiaturism_tmlipova@yahoo.com',300456,9887677,'J12/2312/1999');
INSERT INTO agentie VALUES ('TMB','Timisoara','Dumbravita ','Strada Trandafirilor nr.
23',0723277059,'agentiaturism_tmdumbravita@yahoo.com',300665,5685585,'J12/3078/1994');
INSERT INTO agentie VALUES ('TMC','Timisoara' ,'Centru' ,'Strada Soarelui
nr.45',07 41237657,'agentiaturism_tmcentru@yahoo.com',300211,1245585,'J12/3009/2001');
INSERT INTO agentie VALUES ('CJA','Cluj -Napoca','Centru','Strada Libertatii
nr.1',0771458741,'agentiaturism_cjcentru@yahoo.com',400255,1254784,'J12/4574/1999');
INSERT INTO agenti e VALUES ('CJB','Cluj -Napoca','Andrei Muresanu','Strada Clujului
nr.3',0785858744,'agentiaturism_cjandreimuresanu@yahoo.com',400469,2254744,'J12/1120/200
1');
INSERT INTO agentie VALUES ('CJC','Cluj -Napoca','Gruia','Strada Vasile Alecsandri
nr.1',0763665474 ,'agentiaturism_cjgruia@yahoo.com',400414,5589654,'J12/2547/2002');
INSERT INTO agentie VALUES ('CRA','Craiova','Centru','Strada Brestei
nr.65',0728469521,'agentiaturism_crcentru@yahoo.com',200558,2586659,'J12/2745/1993');
INSERT INTO agentie VALUES ('CRB' ,'Craiova','Gara','Strada Crisan
nr.68',0729584381,'agentiaturism_crgara@yahoo.com',200744,8558741,'J12/1987/2004');

SELECT * FROM agentie ;

În tabela agentie au fost introdus e 8 înregistrări (vezi Tabelul 1. în Anexe).

 Tabela oferta

INSERT INTO oferta VALUES (1,'Italia','Roma','sejur de 3 zile,hotel Ragazzo
***,internet,piscina,2 mese/zi',500);

Facultatea de Economie și de Administrare a Afacerilor 21

INSERT INTO oferta VALUES (2,'Italia','Milano','sejur de 7 zile,hotel Bella
****,internet,piscina,3 mese/zi',1600);
INSERT INTO oferta VALUES (3,'Italia','Sarde nia','sejur de 10 zile,hotel Gratie
***,internet,piscina,3 mese/zi',2100);
INSERT INTO oferta VALUES (4,'Spania','Madrid','sejur de 5 zile, Pensiunea La
Nuestra,internet,piscina,mic dejun ',900);
INSERT INTO oferta VALUES (5,'Grecia','Atena','sejur de 3 zi le,hotel S`agapo
***,internet,piscina,2 mese/zi',500);
INSERT INTO oferta VALUES (6,'Franta','Paris','sejur de 7 zile,hotel Toujour
****,internet,piscina,3 mese/zi',1600);
INSERT INTO oferta VALUES (7,'Spania','Barcelona','sejur de 5zile,Pensiune
Amigo,int ernet,piscina,3 mese/zi',900);
INSERT INTO oferta VALUES (8,'Italia','Roma','sejur de 10 zile,hotel Forza
***,internet,piscina,3 mese/zi',2100);
INSERT INTO oferta VALUES (9,'Marea Britanie','Londra','sejur de 3 zile,hotel Excelent
***,internet,piscina,2 mese/zi',500);

SELECT * FROM oferta ;

În tabela oferta au fost introduse 60 de înregistrări (vezi Tabelul 2. în Anexe)

 Tabela functie

INSERT INTO functie VALUES ('dr','director');
INSERT INTO functie VALUES ('mg','manager' );
INSERT INTO functie VALUES ('ct','contabil' );
INSERT INTO functie VALUES ('ag','agent_de_turism' );

SELECT * FROM functie;

În tabela functie au fost introduse 4 înregistrări ( vezi Tabelul 3 . în Anexe)

 Tabela client

INSERT INTO client VALUES
(1705232343244,'Popescu','Ion','M' ,'popescuion@yahoo.com','Strada Platanilor
nr.35','Timisoara','TIMIS',0723456767,TO_DATE ('23/05/1970','dd/mm/yyyy'));
INSERT INTO client VALUES (1720528234324,'Calin','Cristi
','M','calincristi@yahoo.com','Strada Pestilor nr.78','Timisoara','TIMIS',07485 43452,TO_DATE (
'28/05/1972','dd/mm/yyyy'));
INSERT INTO client VALUES (2781124432245,'Rada','Cristina
','F','cristina.rada78@gmail.com','Strada Isvarna nr.22','Timisoara','TIMIS',0743456785,
TO_DATE ( '24/11/1978','dd/mm/yyyy'));
INSERT INTO client VALUES
(1600915378690,'Bivolaru','Dan','M','bivolarudan@yahoo.com','Strada Crizantemelor
nr.34','Timisoara','TIMIS',0721435984, TO_DATE ( '15/09/1960','dd/mm/yyyy'));
INSERT INTO client VALUES
(1800814756854,'Popescu','Ioan','M','ioan.popescu14@gmail.com','Strad a Paltinis
nr.35','Timisoara','TIMIS',0741238790, TO_DATE ( '14/08/1980','dd/mm/yyyy'));

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 22

INSERT INTO client VALUES
(1620422435867,'Popa','Narcis','M','narcis62@gmail.com','Strada Avram Iancu
nr.30','Lugoj','TIMIS',0721239085, TO_DATE ( '22/04/1962','dd/mm /yyyy'));
INSERT INTO client VALUES
(2820328265078,'Vior','Rozalia','F','vior.rozi82@yahoo.com','Strada Nicolae Titulescu
Nr.40','Buzias','TIMIS',0748652904 ,TO_DATE('28/03/1982','dd/mm/yyyy'));
INSERT INTO client VALUES
(1781224564907,'Ianculovici','Maria n','M','ianculovici_marian@yahoo.com','Strada Dierna
nr.36','Timisoara','TIMIS',0746093216, TO_DATE ( '24/12/1978','dd/mm/yyyy'));
INSERT INTO client VALUES (2880930145087,'Ciocarlie
','Irina','F','irina88@gmail.com','Strada Tufari nr.2','Timisoara','TIMIS ',0743879056, TO_DATE
( '30/09/1988','dd/mm/yyyy'));

SELECT * FROM client ;

În tabela client au fost introduse 94 de înregistrări (v ezi Tabelul 4 . în Anexe)

 Tabela angajat

INSERT INTO angajat VALUES ('TMA1','Balan','Cornel',0748741225,'TMA','dr');
INSER T INTO angajat VALUES ('TMA2','Mizga ','Claudia ', 0778547444,'TMA','mg');
INSERT INTO angajat VALUES ('TMA3','Tariceanu','Marcel', 0741554220,'TMA','ct');
INSERT INTO angajat VALUES ('TMA4','Milosescu','Daniela',0747552110,'TMA','ag');
INSERT INTO angaj at VALUES ('TMA5','Ghiocel','Sorin',0763220225,'TMA','ag');
INSERT INTO angajat VALUES ('TMB1','Mesteacan','Magdalena',0742554552,'TMB','dr');
INSERT INTO angajat VALUES ('TMB2','Caprarescu','Claudiu', 0785774112,'TMB','mg');
INSERT INTO angajat VALUES ('T MB3','Magdalin','Eleonora',0774558965,'TMB','ct');
INSERT INTO angajat VALUES ('TMB4','Mateescu','Simion',0769552114,'TMB','ag');
INSERT INTO angajat VALUES ('TMB5','Mircea','Pavel',0736225100,'TMB','ag');

SELECT * FROM angajat;

În tabela angajat au fost introduse 40 de înregistrări ( vezi Tabelul 5 . în Anexe)

 Tabela detalii_angajat

INSERT INTO detalii_angajat VALUES (seq_detalii_angajat.NextVal,'TMA1', TO_DATE
('28/06/1972','dd/mm/yyyy'),TO_DATE ('13/03/2000','dd/mm/yyyy'), 'Strada Barlad
nr.12','Timis oara','Timis');
INSERT INTO detalii_angajat VALUES (seq_detalii_angajat.NextVal,'TMA2', TO_DATE
('14/04/1965','dd/mm/yyyy'),TO_DATE ('10/07/2003','dd/mm/yyyy'), 'Strada Rozelor nr.34
','Timisoara','Timis');
INSERT INTO detalii_angajat VALUES (seq_detalii_ angajat.NextVal,'TMA3',
TO_DATE('25/01/1981','dd/mm/yyyy'),TO_DATE ('1/02/2001','dd/mm/yyyy'), 'Strada
Recunostintei nr.85','Timisoara','Timis');
INSERT INTO detalii_angajat VALUES (seq_detalii_angajat.NextVal,'TMA4',
TO_DATE('03/06/1988','dd/mm/yyyy'),TO_ DATE ('13/03/2010','dd/mm/yyyy'), 'Strada
Platanilor nr. 17','Timisoara','Timis');

Facultatea de Economie și de Administrare a Afacerilor 23

INSERT INTO detalii_angajat VALUES (seq_detalii_angajat.NextVal,'TMA5',
TO_DATE('09/11/1990','dd/mm/yyyy'),TO_DATE ('17/11/2012','dd/mm/yyyy'), 'Strada
Suprema nr.1 ','Tim isoara','Timis');
INSERT INTO detalii_angajat VALUES (seq_detalii_angajat.NextVal,'TMB1',
TO_DATE('25/07/1979','dd/mm/yyyy'),TO_DATE ('23/09/1999','dd/mm/yyyy'), 'Strada Crucii
nr.12 ','Timisoara','Timis');
INSERT INTO detalii_angajat VALUES (seq_detalii_a ngajat.NextVal ,'TMB2',
TO_DATE('25/12/1993','dd/mm/yyyy'),TO_DATE ('22/05/2013','dd/mm/yyyy'), 'Strada
Banatului nr.12 ','Timisoara','Timis');
INSERT INTO detalii_angajat VALUES (seq_detalii_angajat.NextVal ,'TMB3',
TO_DATE('14/01/1982','dd/mm/yyyy'),TO_ DATE ('02/03/2007','dd/mm/yyyy'), 'Strada Lipovei
nr.15 ','Timisoara','Timis');
INSERT INTO detalii_angajat VALUES (seq_detalii_angajat.NextVal ,'TMB4',
TO_DATE('29/04/1980','dd/mm/yyyy'),TO_DATE ('03/02/2010','dd/mm/yyyy'), 'Strada
Kogalniceanu nr.17 ',' Timisoara','Timis');

SELECT * FROM detalii_angajat;

În tabela detalii_angajat au fost introduse 40 de înregistrări (vezi Tabelul 6 . în Anexe)

 Tabela evidenta_salarii

INSERT INTO evidenta_salarii VALUES
('TMA','TMA1',2900,TO_DATE('30/03/2015','dd/mm/y yyy'));
INSERT INTO evidenta_salarii VALUES
('TMA','TMA2',2400,TO_DATE('30/03/2015','dd/mm/yyyy'));
INSERT INTO evidenta_salarii VALUES
('TMA','TMA3',1800,TO_DATE('30/03/2015','dd/mm/yyyy'));
INSERT INTO evidenta_salarii VALUES
('TMA','TMA4',1100,TO_ DATE('30/03/2015','dd/mm/yyyy'));
INSERT INTO evidenta_salarii VALUES
('TMA','TMA5',1100,TO_DATE('30/03/2015','dd/mm/yyyy'));
INSERT INTO evidenta_salarii VALUES
('TMB','TMB1',2900,TO_DATE('30/03/2015','dd/mm/yyyy'));
INSERT INTO evidenta_salarii VAL UES
('TMB','TMB2',2400,TO_DATE('30/03/2015','dd/mm/yyyy'));
INSERT INTO evidenta_salarii VALUES
('TMB','TMB3',1800,TO_DATE('30/03/2015','dd/mm/yyyy'));
INSERT INTO evidenta_salarii VALUES
('TMB','TMB4',1100,TO_DATE('30/03/2015','dd/mm/yyyy'));
INSERT I NTO evidenta_salarii VALUES
('TMB','TMB5',1100,TO_DATE('30/03/2015','dd/mm/yyyy'));
INSERT INTO evidenta_salarii VALUES
('TMC','TMC1',3000,TO_DATE('30/03/2015','dd/mm/yyyy'));
INSERT INTO evidenta_salarii VALUES
('TMC','TMC2',2400,TO_DATE('30/03/2015 ','dd/mm/yyyy'));
INSERT INTO evidenta_salarii VALUES
('TMC','TMC3',1800,TO_DATE('30/03/2015','dd/mm/yyyy'));
INSERT INTO evidenta_salarii VALUES
('TMC','TMC4',1100,TO_DATE('30/03/2015','dd/mm/yyyy'));

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 24

SELECT * FROM evidenta_salarii;

În tabela eviden ta_salarii au fost introduse 120 de înregistrări (vezi Tabelul 7 . în Anexe)

 Tabela factura

INSERT INTO factura VALUES (128574,1705232343244,'Popescu I.','TMA4',7,TO_DATE
('13/03/2015','dd/mm/yyyy'),900);
INSERT INTO factura VALUES(126354,6020905342719,'V laduceanu F.','TMA4',18,
TO_DATE('25/03/2015','dd/mm/yyyy'),500);
INSERT INTO factura VALUES(225874,2810729965220,'Teodor A.','CJA4',54,
TO_DATE('18/04/2015','dd/mm/yyyy'),900);
INSERT INTO factura VALUES(248574,2661121145796,'Marisescu
I.','CJB4',60,TO_DA TE('28/04/2015','dd/mm/yyyy'),900);
INSERT INTO factura VALUES(326584,1950527958410,'Ionas C.','CRA4',30,
TO_DATE('11/04/2015','dd/mm/yyyy'),2100);
INSERT INTO factura VALUES (268574,2930328250785,'Istodor C.','CJC5',14,TO_DATE
('14/05/2015','dd/mm/yyyy'), 900);
INSERT INTO factura VALUES(165474,1781224564907,'Ianculovici M.','TMC5',31,
TO_DATE('30/05/2015','dd/mm/yyyy'),500);
INSERT INTO factura VALUES(124784,5031130674180,'Popescu A.','TMB4',20,
TO_DATE('26/05/2015','dd/mm/yyyy'),2100);
INSERT INTO factura VALUES(146520,1710928563108,'Stanica V.','TMB4',45,
TO_DATE('05/05/2015','dd/mm/yyyy'),500);
INSERT INTO factura VALUES(346522,1710328124552,'Stegari O.','CRB5',46,
TO_DATE('06/05/2015','dd/mm/yyyy'),2100);
INSERT INTO factura VALUES(225474,1781020658221, 'Meteleauca M.','CJA5',9,
TO_DATE('26/03/2015','dd/mm/yyyy'),900);
INSERT INTO factura VALUES(225484,1500122507856,'Radoi M.','CJA4',37,
TO_DATE('03/03/2015','dd/mm/yyyy'),2100);
INSERT INTO factura VALUES(123300,1800814756854,'Popescu I.','TMA4',7,
TO_DAT E('25/03/2015','dd/mm/yyyy'),2100);
INSERT INTO factura VALUES(240010,2830607141204,'Zidaru A.','CJC4',37,
TO_DATE('21/05/2015','dd/mm/yyyy'),2100);
INSERT INTO factura VALUES(125210,2741225659412,'Barbulescu C.','TMA4',45,
TO_DATE('16/05/2015','dd/mm/yyyy '),1600);
INSERT INTO factura VALUES(142030,2910118365201,'Galetan L.','TMB5',55,
TO_DATE('29/03/2015','dd/mm/yyyy'),1600);
INSERT INTO factura VALUES(163098,1720512963852,'Jurchescu C.','TMC4',30,
TO_DATE('07/04/2015','dd/mm/yyyy'),2100);
INSERT INTO fact ura VALUES(322741,2491014325662,'Brian V.','CRA4',8,
TO_DATE('25/04/2015','dd/mm/yyyy'),2100);
INSERT INTO factura VALUES(264926,1920610415444,'Mircea C.','CJC5',56,
TO_DATE('08/03/2015','dd/mm/yyyy'),2100);

SELECT * FROM factura;

În tab ela factura au fo st introduse 161 de înregistrări (vezi Tabelul 8 . în Anexe)

Facultatea de Economie și de Administrare a Afacerilor 25

3.3 Depozitul de da te și indicatorii de performanță

S-a considerat un set minimal de indicatori de bază care s -au implementat în tabele de fapte și au
fost determinați în funcție de dimensiun ile considerate.

I1- numărul total al facturilor în funcție de agenție_dd,client_dd și de angajat_dd;
I2- total valoare facturi în funcție de agentie_dd,client_dd și angajat_dd ;

Figura 8. Tabela de fapte F1

Crearea dimensiunilor

 Dimensiunea Client_ dd
CREATE TABLE client_dd (cnp_client CHAR(13) CONSTRAINT pk_cnp_client PRIMARY
KEY ,numele_clientului VARCHAR2(30) ,prenume_client VARCHAR2(30));

 Dimensiunea Agentie_dd
CREATE TABLE agentie_dd (id_agentia VARCHAR2(3) CONSTRAINT pk_id_agentia
PRIMARY KEY, oras_ag VARCHAR2(30),CUI_ag CHAR(7));

 Dimensiunea Angajat_dd
CREATE TABLE angajat_dd (cod_angajat VARCHAR2(6) CONSTRAINT pk_cod_angajat
PRIMARY KEY,nume_angajat VARCHAR2(30),prenume VARCHAR2(30));

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 26

Inserare a datelor in tabelele dimensionale:

 Tabela dimensionala client_dd

INSERT INTO client_dd SELECT DISTINCT cnp,nume,prenume FROM client;

SELECT * FROM client_dd;

În tabela dimensională client_dd au fo st introduse 40 de î nregistră ri.

Tabelul 9.Con ținutul tabelei dimensionale client_dd

Facultatea de Economie și de Administrare a Afacerilor 27

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 28

 Tabela dimensionala agentie_dd

INSERT INTO agentie_dd SELECT DISTINCT cod_agentie,oras,CUI FROM agentie;

SELECT * FROM agentie_dd;

În tabela dimensională agentie_dd au fost intr oduse 8 înregistră ri.

Tabelul 10. Conținutul tabelei dimensional e agentie_dd;

 Tabela dimensionala angajat_dd

INSERT INTO angajat_dd SELECT DISTINCT id_angajat,nume,prenume FROM angajat;

În tabela dimensională angajat _dd au fost introduse 40 de înregistră ri .

Facultatea de Economie și de Administrare a Afacerilor 29

Tabelul 11.Con ținutul tabelei dimensionale angajat_dd;

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 30

Crearea tabelei de fapte F1:

Pentru crearea tabele i de fapte utilizam com anda:

CREATE TABLE total_facturi_f1 (cnp_client CHAR(13) CONSTRAINT fk_cnp_client
REFERENCES client_dd(cnp_client),id_agentia VARCHAR2(3) CONSTRAINT fk_id_agen tia
REFERENCES agentie_dd(id_agentia),cod_angajat VARCHAR2(6) CONSTRAINT
fk_cod_angajatul REFERENCES angajat_dd(cod_angajat),nr_total_facturi NUMBER (10),
valoare_total_facturi number(12),CONSTRAINT pk_total_facturi PRIMARY KEY
(cnp_client,id_agentia,cod _angajat));

Popularea tabelei de fapte F1 (tabela : total_facturi_f1)

INSERT INTO total_facturi_f1
SELECT client.cnp,agentie.cod_agentie,angajat.id_angajat , COUNT(factura.cod_factura),
SUM(factura.valoare_fara_tva) FROM agentie,client,angajat,factur a
WHERE agentie.cod_agentie = angajat.cod_agentie and angajat.id_angajat = factura.id_angajat
and client.cnp = factura.cnp GROUP BY agentie.cod_agentie, client.cnp, angajat.id_angajat;

SELECT * FROM total_facturi_f1;

În tabel a de fapte F1 au fost int roduse 94 de înregistră ri.

Tabelul 12.Con ținutul tabelei de fapte F1 total_valoare_facturi_f1

Facultatea de Economie și de Administrare a Afacerilor 31

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 32

Facultatea de Economie și de Administrare a Afacerilor 33

I3- valoarea totala a salariilor in functie de agentie_dd,angajat_dd,varsta_an gajat_dd ș i data_dd

Figura 9. Tabela de fapte F2

Crea rea dimensiunilor distincte :

 Dimensiunea varsta_dd

CREATE TABLE varsta_angajat_dd (varsta_angajat NUMBER (2) CONSTRAINT
pk_varsta_angajat PRIMARY KEY );

 Dimensiunea data_dd

CREATE TABLE da ta_dd (datas date PRIMARY KEY );

Inserare a datelor in tabele le dimensionale:

 Tabela dimensionala varsta_angajat_dd

INSERT INTO varsta_angajat_dd SELECT DISTINCT (EXTRACT(YEAR FROM
SYSDATE) -EXTRACT(YEAR FROM data_nasterii)) AS varsta from detalii_angajat;

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 34

SELECT * FROM varsta_angajat_dd;
În tabela dimensională varsta_an gajat_dd au fost introduse 22 de înregistră ri.
Tabelul 13.Con ținutul tabelei dimensionale varsta_angajat_dd

 Tabela dimensionala data_dd

INSERT INTO data_dd SELECT DISTINCT data_salar FROM evidenta_salarii;

SELECT * FROM data_dd;

În tabela dimensională data_dd a u fost introduse 3 înregistră ri.
Tabelul 14.Con ținutul tabelei dimensionale data_dd

Facultatea de Economie și de Administrare a Afacerilor 35

Crearea tabelei de fapte F2
Pentru crearea tabele i de fapte utilizam com anda:

 Tabela de fapte 2 : Valoare_totala_salarii_f2

CREATE TABLE v aloare_totala_salarii_f2 (id_agentia VARCHAR2(3) CONSTRAINT
fk_id_agentiaaa REFERENCES agentie_dd(id_agentia),
id_angajat VARCHAR2(6) CONSTRAINT fk_id_angajatull REFER ENCES
angajat_dd(cod_angajat), varsta_angajat NUMBER(2) CONSTRAINT fk_varsta_angajat
REFERENCES var sta_angajat_dd(varsta_angajat),data_s date REFERENCES
data_dd(datas),total_salarii NUMBER (12),CONSTRAINT pk_valoare_totala_salarii
PRIMARY KEY (id_agentia,id_angajat,varsta_angajat,data_s));

Popularea tabelei de fapte F2 (tabela valoare_tot ala_salarii_f2 ):

INSER T INTO valoare_totala_salarii_f2
SELECT agentie.cod_agentie,angajat.id_angajat, EXTRACT (YEAR FROM SYSDATE) –
EXTRACT (YEAR FROM data_nasterii),data_salar, SUM(evidenta_salarii.salar_brut),
FROM agentie,angajat,evidenta_salarii,detalii _angajat
WHERE agentie.cod_agentie = angajat.cod_agentie AND agentie.cod_agentie=
evidenta_salarii.cod_agentie AND angajat.id_angajat=evidenta_salarii.id_angajat
and angajat.id_angajat= detalii_angajat.id_angajat GROUP BY agentie.cod_agentie
,angajat.id_ angajat, EXTRACT (YEAR FROM SYSDATE) -EXTRACT (YEAR FROM
data_nasterii),data_salar;

SELECT * FROM valoare_totala_salarii_f2 ;

În tabela de fapte F2 au fost introduse 120 de înregistră ri.

Tabelul 15.Con ținutul tabelei de fapte F2 valoare_totala_salarii _f2

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 36

Facultatea de Economie și de Administrare a Afacerilor 37

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 38

I4-valoarea salariilor minime,maxime,medii în funcț ie de agentie_dd ș i data_dd

Figura 10. Tabela de fapte F3

Facultatea de Economie și de Administrare a Afacerilor 39

Crearea tabelei de fapte F3:

Pentru crearea tabele i de fapte utilizam com anda:

 Tabela de fapte f3 : valoar e_min_medie_max_f3

CREAT E TABLE valoare_min_medie_max_f3 (id_agentia VARCHAR2(3)
CONSTRAINT fk_id_agentiaaaa REFERENCES agentie_dd(id_agentia),
data_s date REFERENCES data_dd(datas),valoare_medie_salarii number(12),
valoare_minima_salarii number(12),val oare_maxima_salarii number(12) ,
CONSTRAINT pk_valoare_totala_salariiu PRIMARY KEY (id_agentia,data_s));

Popularea tabelei de fapte F3 (tabela : valoare_min_medie_f3)

INSERT INTO valoare_min_medie_max_f3 SELECT agentie.cod_agentie,data_salar,
AVG(evident a_salarii.salar_brut), MIN (evidenta_salarii.salar_brut),
MAX(evidenta_salarii.salar_brut) FROM agentie,evidenta_salarii,detalii_angajat
WHERE agentie.cod_agentie=evidenta_salarii.cod_agentie
GROUP BY agentie.cod_agentie,data_salar ORDER BY agentie.cod _agentie;

SELECT * FROM valoare_min_medie_ max_ f3;

În tabela de fapte F3 au fost introduse 24 de înregistră ri.

Tabelul 21.Tabela de fapte F3 (tabela valoare_min_medie_max _f3)

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 40

Interogari pe baza de date

 SELECT id_agentia, SUM(total_salarii) A S Total_salarii, FROM
valoare_totala_salarii_f2 GROUP BY id_agentia;

Această interogare a afișat un total de 8 înregistră ri.

Tabelul 16.Con ținutul selectului pe depozit total_facturi

Interogari pe baza depozitului de date

 SELECT id_agentia, SUM(v aloare_total_facturi) AS Valoare_totala_fara_TVA,
(SUM(valoare_total_facturi)+0.09*SUM(valoare_total_facturi)) AS
Valoare_totala_cu_TVA FROM total_facturi_f1 GROUP BY id_agentia ORDER
BY id_agentia ;

Această interogare a afiș at un total de 8 înregistră ri.

Facultatea de Economie și de Administrare a Afacerilor 41

Tabelul 17. Con ținutul selectului pe depozit total_facturi TVA

Crearea vederilor

 CREATE VIEW v1_valoare_facturi_achit ASSELECT EXTRACT(MONTH FROM
data_facturare) AS luna, SUM(valoare_fara_tva) AS ValoareFROM facturaGROUP
BY EXTRACT(MONTH FR OM data_facturare);

Aceasta interogare a af isat un total de 3 inregistrari.

Tabelul 18. Con ținutul vederii V1

 CREATE VIEW v2_valoare_salarii AS
SELECT EXTRACT(MONTH FROM data_s) AS luna, SUM(total_salarii) as valoare
FROM valoare_totala_sa larii_f3 GROUP BY EXTRACT(MONTH FROM data_s);

Aceasta interogare a af ișat un total de 3 înregistră ri.

Tabelul 19. Con ținutul vederii V2

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 42

Interogare pe baza vederilor facute

SELECT v1_valoare_facturi_achit.luna, v1_valoare_facturi_achit.valoare A s
venit,v2_valoare_salarii.valoare As cheltuieli
FROM v1_valoare_facturi_achit,v2_valoare_salarii
WHERE v1_valoare_facturi_achit.luna = v2_valoare_salarii.luna (+)
ORDER BY v1_valoare_facturi_achit.luna;

Aceasta interogare a afiș at un total de 3 înregistr ări.

Tabelul 20. Con ținutul interogarii pe baza vederilor

4. Concluzii

Plecând de la o evidență informatizată a agenției de turism, în lucrare se propune un depozit
de date suport pentru analize multidimensionale , ce oferă informații relevante deci dențiilor.
Prezintă interes definirea unor indicatori de performanță cu ajutorul cărora decidenții își pot
fundamenta politicile viitoare de orientare. În mod concret , modelul conceptual al depozitului
de date propus conține trei tabele de fapte și cinci t abele dimensionale. La nivelul tabelel or de
fapte regăsim următr oii 4 indicatori de bază:
I1- numărul total al facturilor în funcție de agenție_dd,client_dd și de angajat_dd;
I2- total valoare facturi în funcție de agentie_dd,client_dd și angajat_dd ;
I3- valoarea totala a salariilor în funcț ie de agentie_d d,angajat_dd,varsta_angajat_dd ș i
data_dd ;
I4-valoarea salariilor minime,maxime,medii în funcție de agentie_dd ș i data_dd ;
Pe lângă acești indicatori de baza s -au formulat interogari suplimentare pentru a creste gradul
de complexitate al analizei. S -au implementat doua vederi: una pentru a afla totalul facturilor
(veniturilor), iar cealaltă pentru a afla cheltuielile agenției cu salariile.
Implementarea abordării propuse pentru susținerea deciziilor din ca drul agentiei de turism se
bazează pe facilitățile oferite de Oracle Database 11g Express Edition, fiind utilizate
comenzile SQL specifice.
Prezent a lucrare reprezintă un exemplu de bună practică în domeniul modelării depozitelor de
date și poate constitui o referință pentru abordări similare.

Facultatea de Economie și de Administrare a Afacerilor 43

5. Listă bibliografică

Cărți
Airinei, D., Depozite de date , Editura Polirom, Iasi, 2002
Inmon, W. H., Building the Data Warehouse , Fourth Edition, Wiley Publishing, Inc., Indiana,
2005
Ponniah , P., Data Warehousing Fundamentals for IT Professionals , John Wiley & Sons, Inc.,
New Jersey, 2010
Velicanu, M., Lungu, I., Botha, I., Bara, A., Velicanu, A., Rednic, E ., Sisteme de baze de date
evoluate , Editura ASE, 2009
Kimball, R., Ross, M., The Data Warehouse Toolkit: The Definitive Guide to Dimensional
Modeling , John Wiley & Sons, Inc., Indiana, 2013
Silverston, L., Agnew, P., The Data Model Resource Book, Vol. 3: Universal Patterns for Data
Modeling , Wiley Publishing, Inc., Indiana, 2009
Zaharie, D., Albescu, F., Sisteme informatice pentru asistarea deciziei , Ed. DualTech Bucu
rești, 2001
Franco, J., Le data Warehousing, Ed. Eyrolles, Paris, 1997
Anahory, S., Dennis, M., Data Warehousing in the Real World, Addison Wesley Longman,
Reading, Mas s, 1997
Mallach, E., Decision Support AND Data Warehouse S ystems , Irwin McGraw -Hill, Boston,
2000

Articole tip „Newspaper”

Velicanu, M., Matei, G. (2007). Database Vs Data Warehouse . Revista Informatica Economica ,
pp. 91 -95
Velicanu, M., Muntean, M. (2001). Modelarea multidimensional. Revista Informatica
Economic , pp. 1 -7
Mocanu, M.(2003). Folosirea data warehouse în asistarea activitatii de retail. Revista
Informatica Economica pp. 46 -50
Sarbu, M . (1996) . Data Wa rehouse; I n cautarea definitiei. Revista Byte Romania , pp. 33 -37

Organisme și organizații

Oracle (August 2001). Data Warehouse Database Design (Student Guide). Redwood City, CA :
M. Lea Shaw ( http://read.pudn.com/downloads151/ebook/652889/DataWarehouse%20.pdf )
Oracular (2008). Data Warehousing with Oracle . Oshkosh : Muhammad Ahmad Sha hzad
(http://oracular.com/white_paper_pdfs/DataWarehousingwithOracle.pdf )

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 44

Internet

Ivancenco, V., SIAD bazat pe sinteza si analiza datelor
Consultat la: http://w ww.cig.ase.ro/prof/ivancenco/resurse/CIG_SIAD%20Cursul%207.pdf
Muntean,M., Sisteme informatice pentru asistarea deciziilor , Note de curs online , 2014.
Consultat la:
https://groups.yahoo.com/neo/groups/ie2014/files/SIAD%20%20Sisteme%20pentru%20Asistare
a%20Deciziilor/CURS/
Sabau, G., Dardala, M., Muntean, M., Bologa, R., Avram, V., Depozite de date (2008)
Consultat la: http://ro.scribd.com/doc/196123357/Depozite -de-Date -9
Miloi ,M, Depozite de date
Consultat la: https: //www.scribd.com/doc/153106363/ Depozite -de-Date

Facultatea de Economie și de Administrare a Afacerilor 45

6. Anexe

Tabelul 1.Con ținutul tabelei agentie

Tabelul 2.Con ținutul tabelei oferta

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 46

Tabelul 3.Con ținutul tabelei functie

Tabelul 4.Con ținutul tabelei client

Facultatea de Economie și de Administrare a Afacerilor 47

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 48

Tabelul 5.Con ținutu l tabelei angajat

Facultatea de Economie și de Administrare a Afacerilor 49

Tabelul 6.Con ținutul tabelei detalii_ angajat

Tabelul 7.Con ținutul tabelei evidenta_salarii

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 50

Facultatea de Economie și de Administrare a Afacerilor 51

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 52

Facultatea de Economie și de Administrare a Afacerilor 53

Tabelul 8.Con ținutul tabelei factura

Depozite de date . Aspecte teoretice și implementar e în Oracle SQL 54

Facultatea de Economie și de Administrare a Afacerilor 55

Similar Posts