Baza de date - Cube

Previzualizare laborator:

Extras din laborator:

Agregarea datelor. Operatorul CUBE

Agregarea simultană a datelor după mai mulţi parametrii (dimensiuni) însoţită de determinarea subtotalurilor aferente face obiectul aşa-numitei analize multidimensionale. Aceasta se bazează pe utilizarea funcţiilor analitice dedicate procesării analitice on-line (On Line Analytical Processing – OLAP) şi care au fost introduse în Oracle începând cu versiunea 8i a acestuia.

Exemplu : Se să genereze, prin interogarea corespunzătoare a tabelei oferte_proprietati, un raport de forma următoare: acesta va conţine

valoarea medie a preţului cerut (indicatorul analizat) calculată la nivelul fiecărei combinaţii zona –

tip_proprietate, precum şi la

nivelul fiecărei zone (indiferent de tipul de proprietate) în parte, la nivelul fiecărui tip de proprietate (indiferent de zona de care aparţine) în parte, precum şi la nivel global.

Într-o variantă clasică se propune o formulare bazată pe operatorul asamblist UNION, ce apoi este exprimată succint cu ajutorul funcţiei CUBE.

Obs. Structura tabelei oferte_proprietati este: codinreg, tippropr, zona, str, nr, bl, sc, ap, et, pcerut, pmin, moneda, telfix, telmob, obs.

SELECT zona, tippropr AS Tip_Proprietate, AVG(pcerut) AS Pret_Mediu_Cerut

FROM oferte_proprietati

GROUP BY zona, tippropr

UNION

SELECT zona, '', AVG(pcerut)

FROM oferte_proprietati

GROUP BY zona

UNION

SELECT '', tippropr, AVG(pcerut)

FROM oferte_proprietati

GROUP BY tippropr

UNION

SELECT '', '', AVG(pcerut)

FROM oferte_proprietati

ORDER BY 1,2;

Operatorul ROLLUP

SELECT zona, tippropr AS Tip_Proprietate, AVG(pcerut) AS Pret_Mediu_Cerut

FROM lista_proprietati

GROUP BY ROLLUP (zona, tippropr);

Operatorul CUBE

SELECT zona, tippropr AS Tip_Proprietate, AVG(pcerut) AS Pret_Mediu_Cerut

FROM lista_proprietati

GROUP BY CUBE (zona, tippropr);

O analiză care se respectă este, totuşi, una multi-dimensională. Dacă singura axă de (subtotalizare) a fost, în exemplele de până acum, cea geografică, în continuare ne interesează să vizualizăm vânzările pe două axe, produse (ISBN-ul cărţii – codul unic acordat fiecărei cărţi, nu fiecărui exemplar în parte) şi clienţi.

a. Ştergerea tabelului vinzari_carti

DROP TABLE vinzari_carti;

b. Crearea tabelului vinzari_carti

CREATE TABLE vinzari_carti (

NrFact DECIMAL(6) NOT NULL,

DataFact DATE NOT NULL,

Client VARCHAR(15),

Loc VARCHAR(15),

Jud CHAR(2),

ISBN CHAR(14),

Cantit DECIMAL (6),

PretUn DECIMAL (8),

ValTotala DECIMAL (14) );

c. Introducerea datelor în tabel a vinzări_carti

INSERT INTO vinzari_carti (nrfact, datafact, client, loc, jud, isbn, cantit, pretun) values

(123456,date'2008-03-03', 'Pop Ion', 'Timisoara', 'TM', '927-345-547-x', 3, 45);

INSERT INTO vinzari_carti (nrfact, datafact, client, loc, jud, isbn, cantit, pretun) values

(123456,date'2008-03-03', 'Pop Ion', 'Timisoara', 'TM', '978-534-523-x', 5, 55);

INSERT INTO vinzari_carti (nrfact, datafact, client, loc, jud, isbn, cantit, pretun) values

(123456,date'2008-03-03', 'Pop Ion', 'Timisoara', 'TM', '978-534-523-x', 1, 78);

INSERT INTO vinzari_carti (nrfact, datafact, client, loc, jud, isbn, cantit, pretun) values

(123456,date'2008-03-03', 'Popescu Maria', 'Lugoj', 'TM', '978-534-523-x', 3, 33);

INSERT INTO vinzari_carti (nrfact, datafact, client, loc, jud, isbn, cantit, pretun) values

(123456,date'2008-03-03', 'Popescu Maria', 'Lugoj', 'TM', '927-345-547-x', 3, 45);

INSERT INTO vinzari_carti (nrfact, datafact, client, loc, jud, isbn, cantit, pretun) values

(123456,date'2008-03-03', 'Popescu Maria', 'Lugoj', 'TM', '978-534-523-x', 5, 55);

INSERT INTO vinzari_carti (nrfact, datafact, client, loc, jud, isbn, cantit, pretun) values

(123456,date'2008-03-03', 'Ana Mara', 'Jimbolia', 'TM', '927-345-547-x', 13, 45);

INSERT INTO vinzari_carti (nrfact, datafact, client, loc, jud, isbn, cantit, pretun) values

(123456,date'2008-03-03', 'Tara Edgar', 'Jimbolia', 'TM', '927-345-547-x', 11, 15);

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Baza de Date - Cube
    • Baza de Date - Cube.docx
    • Clasamente.docx
    • Cube partial.doc
    • Depozitul de date.docx
    • Introducere.docx
Alte informații:
Tipuri fișiere:
doc, docx
Nota:
9/10 (2 voturi)
Nr fișiere:
5 fisiere
Pagini (total):
21 pagini
Imagini extrase:
28 imagini
Nr cuvinte:
4 047 cuvinte
Nr caractere:
23 276 caractere
Marime:
456.04KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Limbaje de Programare
Predat:
la facultate
Materie:
Limbaje de Programare
Sus!