Esercizio zSi vuole realizzare un data warehouse per una azienda che vende mobili allingrosso. zIl data warehouse deve permettere di analizzare i ricavi.

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

Ricorsione in SQL-99.
Principale limitazione di AR e SQL-92: interrogazioni ricorsive
Introduzione al datawarehouse
1 DATA BASE GESTIONE VENDITE. 2 QUERY1 Per ogni Cognome di Rappresentante e Descrizione di Prodotto calcolare la somma delle quantità vendute: Somma (Quantità)
Introduzione al data warehousing
Query OQL e XQUERY a confronto
Biglietti e Ritardi: schema E/R
Data warehousing con SQL Server
Biglietti e Ritardi: schema E/R
1 Misura Derivata: esempio dei biglietti CostoMedioBiglietto (CMB) calcolato come INCASSO/NUM_BIG. SUM AVG Implementazione in Analysis Services 1. Si definisce.
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Principale limitazione di AR e SQL-92: interrogazioni ricorsive IMPIEGATO NOMENOMECAPO RossiVerdi NeriVerdi DeSio TucciDeSio DeLucaDeSio Lazio selezionare.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
SQL Dati i seguenti schemi relazionali:
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
PROGETTI DI SISTEMI INFORMATIVI DIREZIONALI
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Testata ordine Riga ordine 1,n 1,1 Valuta 1,1o,n 1,1 Termini pagam 1,1o,n Cliente o,n1,1 Prodotto Unità locale 1,n 1,1 Indirizzi 1,1o,n 1,1o,n Categoria.
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Esercizio zSi consideri la tabella Panorami, memorizzata in una base di dati Oracle 8i. Tale tabella contiene i seguenti campi: yId, di tipo NUMBER yNome,
Data Warehousing.
Basi di dati 2002 EER Vogliamo aumentare lespressività degli Entity Model EER: Entity Model Esteso.
Memento Chi seguirà il modulo di e-learning?
Esercitazione.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Basi di dati Claudia Raibulet
SQL: Structured Query Language
Esercitazione su Analisi OLAP
Esercitazione di Basi di Dati
UNIVERSITA’ POLITECNICA DELLE MARCHE
L’algebra relazionale
Basi di Dati e Sistemi Informativi
Realizzato da Roberto Savino
Gerarchie Ricorsive Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.
Basi di Dati e Sistemi Informativi
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
1 Data warehousing con SQL Server SQL Server è un RDBMS (Relational DataBase Management System) Analysis Services è un componente di SQL Server che offre.
1 Misura aggregabile con differenti operatori Per una misura si possono definire differenti operatori di aggregazione per le differenti dimensioni La misura.
Esercitazione 7.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Raggruppamento in SQL Esempio di raggruppamento
Microsoft Access Query (III).
Esercizio ODBC. Configurare il driver ODBC Start  Control Panel  Administrative Tools Aprire: Data Source(ODBC) User DSN  Add…. Selezionare il driver.
Basi di dati distribuite Prof. M.T. PAZIENZA a.a
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Vincoli interrelazionali
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
Sistemi informativi Avanzati DB ORACLE SALES HISTORY
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Access Breve introduzione. Componenti E’ possibile utilizzare Access per gestire tutte le informazioni in un unico file. In un file di database di Access.
Tabelle Pivot Foglio elettronico. Introduzione Creazione di una tabella Pivot Vediamo come si deve operare per ottenere dalla nostra tabella un report.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Esercizi SQL Group by. CREATE TABLE dipendente (codDip CHAR(8) NOT NULL UNIQUE PRIMARY KEY, cognome CHAR(60) NOT NULL, nome CHAR(60) NOT NULL, stipendio.
Transcript della presentazione:

Esercizio zSi vuole realizzare un data warehouse per una azienda che vende mobili allingrosso. zIl data warehouse deve permettere di analizzare i ricavi dellazienda. Costi e ricavi devono essere analizzati considerando i seguenti parametri: mobili clienti tempo (a livello giorno) zLazienda è interessata ad analizzare i mobili rispetto al loro tipo (tavoli, sedia, armadi da camera, armadi da ufficio, ecc) e rispetto alla loro categoria di appartenenza (cucina, soggiorno, camera, bagno, ufficio, etc). I clienti devono potere essere analizzati rispetto alla loro collocazione geografica, considerando almeno città, regione, stati.

Esercizio zLe vendite e i costi devono essere analizzati considerando le seguenti quantità (queste informazioni possono essere estratte da ogni riga del documento di fatturazione): A = quantità venduta B = prezzo totale (per la quantità considerata) C = sconto zSi richiede di progettare uno schema a stella per lattività sopra delineata; a questo proposito: y si fissi una granularità per il data warehouse y si identifichino le dimensioni, i loro attributi (un insieme minimo), e i fatti yPer ciascuna dimensione, mettere inoltre in evidenza le gerarchie che è necessario considerare.

Soluzione zGranularità: a livello di singola linea documento fatturazione (mobile per cliente per tempo gg come risulta da documento di fatturazione). zNello schema seguente: ygli attributi che identificano i livelli della gerarchia sono sottolineati yvengono inoltre inserite delle frecce da ogni livello figlio al livello padre ygli attributi associati ad un livello vengono raggruppati insieme allidentificatore del livello

Soluzione Cliente-k Nome Cognome Ragione sociale Indirizzo N civico Nome Città Nome Regione Nome Stato Mobile-k Cliente-k Tempo-k Quantità Prezzo totale Sconto Mobile-k Descrizione Stile Materiale Tipo Categoria Tempo-k Data n. giorno nome giorno Giorno feriale/festivo n. Mese nome mese Stagione n. Trimestre Anno Tabella dei fatti (vendite) Tempo Clienti Mobili

Esercizio zIn riferimento al data warehouse progettato, si supponga di essere a conoscenza che lazienda abbia interesse ad analizzare i ricavi nel modo seguente: ¶mensilmente, rispetto a tipo di mobile e città; ·annualmente, rispetto alla categoria e rispetto alla regione. zSi richiede di definire opportunamente gli schemi aggregati corrispondenti alle esigenze di analisi sopra delineate.

Soluzione 1) Città-k Nome Città Nome Regione Nome Stato Tipo-k Città-k Mese-k Quantità Prezzo totale Sconto Tipo-k Tipo Categoria Mese-k n. Mese nome mese Stagione n. Trimestre Anno Tabella dei fatti (vendite) Mesi Città Tipi

Soluzione 2) Regione-k Nome Regione Nome Stato Categoria-k Regione-k Anno-k Quantità Prezzo totale Sconto Categoria-k Categoria Anno-k Anno Tabella dei fatti (vendite) Anni Regione Categoria

Esercizio zIn riferimento allultimo schema aggregato presentato, si supponga che lazienda venda sia prodotti nuovi che prodotti di seconda mano zPer analizzare questo tipo di vendite, si supponga di aggiungere i fatti: y% mobili di seconda mano (per un certo anno, categoria, regione) y% mobili nuovi (per un certo anno, categoria, regione) zDiscutere laddittività di questi fatti e illustrare come questi fatti possono essere resi addittivi

Soluzione zI fatti considerati non sono addittivi (le percentuali non si possono sommare) zPer rendere le informazioni addittivi, ottenendo uno schema semanticamente equivalente si possono aggingere i seguenti fatti: ynumero mobili nuovi ynumero mobili di seconda mano zle percentuali dovranno quindi essere calcolate in fase di interrogazione

Esercizio zDefinire usando SQL di Oracle8i le dimensioni associate alla tabella tempo zCREATE DIMENSION Tempo_D LEVEL giorno_lIS Tempo.Data LEVEL mese_lIS Tempo.n_Mese LEVEL trimestre_l IS Tempo.n_Trimestre LEVEL anno_l IS Tempo.Anno HIERARCHY Tempo_H ( giorno_lCHILD OF mese_l CHILD OF trimestre_lCHILD OF anno_L) ATTRIBUTE giorno_l DETERMINES (n_Giorno, nome_giorno,giorno_feriale_festivo) ATTRIBUTE mese_l DETERMINES (nome_mese, stagione);

Esercizio zSi definisca usando SQL di Oracle 8i una vista materializzata per supportare la prima aggregazione proposta supponendo che la vista: yvenga costruita allatto della definizione yvenga aggiornata totalmente al commit delle operazioni yvenga utilizzata dallaggregate navigator zSi supponga che non esistano le tabelle delle dimensioni aggregate, quindi definite laggregazione a partire dalle tabelle di base

Soluzione CREATE MATERIALIZED VIEW Vendite_mensili_per_tipo_città BUILD immediate REFRESH complete on commit ENABLE query rewrite AS SELECT c.Città, t.n_Mese, m.Tipo, SUM(Quantita), SUM(Prezzo_totale), SUM(Sconto) FROM Vendite v, Clienti c, Tempo t, Mobili m WHERE v.Cliente_k = c.Cliente_k AND v.Tempo_k = t.Tempo_k AND v.Mobile_k = m.Mobile_k GROUP BY c.Città, t.n_Mese, m.Tipo; z

Osservazione zLo schema proposto durante la progettazione concettuale in generale può essere implementato in due modi: ycon viste materializzate xin questo caso non abbiamo le chiavi artificiali xle chiavi diventano gli identificatori dei livelli ycome schema da alimentare con dati sorgente: xin questo caso, le tabelle delle dimensioni e dei fatti aggregate non sono viste materializzate ma tabelle come le altre, nelle quali verranno caricati dati aggregati

Esercizio zIn riferimento allo schema di base proposto in precedenza, scrivere il codice SQL corrispondente alle seguenti interrogazioni OLAP: zROLLUP: determinare le quantità, i ricavi e gli sconti totali rispetto alle città, il tipo del mobile e al mese. Si vuole inoltre realizzare unoperazione di rollup che permetta di analizzare i fatti anche rispetto al mese e al tipo e solo al mese. SELECT c.citta, m.tipo, t.mese, SUM(v.quantita), SUM(v.Prezzo_totale), SUM(v.Sconto) FROM Vendite v, Tempo t, Clienti c, Mobili m WHERE v.Cliente_k = c.Cliente_k AND v.Tempo_k = t.Tempo_k AND v.Mobile_k = m.Mobile_k GROUP BY ROLLUP(t.mese,m.tipo,c.citta);

Esercizio zROLLUP: determinare le quantità, i ricavi e gli sconti medi rispetto alle regioni, al materiale e allanno di vendita. Si vuole inoltre realizzare unoperazione di rollup nel seguente ordine: anno, regione, materiale. SELECT c.regione, m.materiale, t.anno, SUM(v.quantita), SUM(v.Prezzo_totale), SUM(v.Sconto) FROM Vendite v, Tempo t, Clienti c, Mobili m WHERE v.Cliente_k = c.Cliente_k AND v.Tempo_k = t.Tempo_k AND v.Mobile_k = m.Mobile_k GROUP BY ROLLUP(t.anno,c.regione,m.materiale);

Esercizio zCUBE: determinare determinare le quantità, i ricavi e gli sconti totali rispetto alle città, il tipo del mobile e al mese, in ogni possibile combinazione. SELECT c.citta, m.tipo, t.mese, SUM(v.quantita), SUM(v.Prezzo_totale), SUM(v.Sconto) FROM Vendite v, Tempo t, Clienti c, Mobili m WHERE v.Cliente_k = c.Cliente_k AND v.Tempo_k = t.Tempo_k AND v.Mobile_k = m.Mobile_k GROUP BY CUBE(t.mese,m.tipo,c.citta);

Esercizio zCUBE: determinare le quantità, i ricavi e gli sconti medi rispetto allanno di vendita, alla regione e al materiale, in ogni possibile combinazione. SELECT c.regione, m.materiale, t.anno, SUM(v.quantita), SUM(v.Prezzo_totale), SUM(v.Sconto) FROM Vendite v, Tempo t, Clienti c, Mobili m WHERE v.Cliente_k = c.Cliente_k AND v.Tempo_k = t.Tempo_k AND v.Mobile_k = m.Mobile_k GROUP BY CUBE(t.anno,c.regione,m.materiale);

Esercizio zTOP-N: determinare i 5 mobili che sono stati più venduti (come quantità) nel mese di maggio SELECT m.descrizione, sum_quantità FROM (SELECT m.descrizione, SUM(quantità) as sum_quantità, RANK() OVER (ORDER BY SUM(quantità) DESC) AS rank FROM vendite v, mobili m, tempo t WHERE v.Mobile_k = m.Mobile_k AND v.Tempo_k = t.Tempo_k AND t.nome_mese = Maggio) WHERE RANK <= 5;