Biglietti e Ritardi: schema E/R

Slides:



Advertisements
Presentazioni simili
Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio.
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Introduzione al datawarehouse
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Esercizio zSi vuole realizzare un data warehouse per una azienda che vende mobili allingrosso. zIl data warehouse deve permettere di analizzare i ricavi.
DOCUMENTAZIONE DI SCHEMI E/R
Biglietti e Ritardi: schema E/R
Presentazione del Progetto
Data warehousing con SQL Server
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.
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
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
esponente del radicando
RB-alberi (Red-Black trees)
Alberi binari di ricerca
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
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.
Interpretazione Astratta
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Interrogazioni su un albero binario di ricerca Search(S,k) – dato un insieme S ed un valore chiave k restituisce un puntatore x ad un elemento in S tale.
Corso di Informatica (Basi di Dati)
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
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.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
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
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Manipolazione dei dati
Visual Basic e accesso ai DATABASE
INFORMATICA Corso Base Modulo G: I DataBase  Access.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
MODELLO LOGICO DEI DATI
Progettare un database
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
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.
sql: esempi di linguaggio sql nell'implementazione mysql
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Lavorare con le query Federica Scarrione 18/05/2009 fonte:
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 DTS: Importazione Apertura di un DTS da file di archiviazione strutturata: Per aprire un pacchetto DTS salvato come file di archiviazione strutturata.
Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.
Cloud SIA V anno. Introduzione ai Data Warehouse.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
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
Tema 2: progettazione e interrogazione di data warehouse
Esercizio ODBC. Configurare il driver ODBC Start  Control Panel  Administrative Tools Aprire: Data Source(ODBC) User DSN  Add…. Selezionare il driver.
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 =
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
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Access Breve introduzione. Componenti E’ possibile utilizzare Access per gestire tutte le informazioni in un unico file. In un file di database di Access.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Transcript della presentazione:

Biglietti e Ritardi: schema E/R

Ritardi: Progettazione dello schema di Fatto Definire uno schema di fatto per analizzare i ritardi; in particolare l’analisi deve considerare l’aeroporto di partenza, mentre per quello d’arrivo basta considerare solo la citta e lo stato Si costruisce l’albero degli attributi basato sull’entità VOLOGIORN (tale entità ha come chiave {DATA,CODVOLO}) Si modifica l’albero aggiungendo la dipendenza CITTA  STATO Si modifica l’albero eliminando A-SIGLA

Ritardi: Progettazione dello Schema di Fatto Progettazione Schema di Fatto Si modifica l’albero eliminando CODVOLO per CITTA_ARRIVO, ovvero riportando CITTA_ARRIVO come figlio diretto della radice; questa modifica deriva dalla specifica di analizzare i ritardi direttamente rispetto alla città di arrivo e quindi di far diventare CITTA_ARRIVO una dimensione. Si noti che nell’albero non ho più la relazione che CODVOLO è padre di CITTA_ARRIVO, ovvero nelle analisi non potrò piu’ fare dei ronon potrò

Ritardi: Progettazione dello Schema di Fatto Progettazione Schema di Fatto Si definisce lo Schema di Fatto selezionando come dimensioni {DATA, CODVOLO, CITTA_ARRIVO} quindi tra le dimensioni ho tutti gli attributi chiave ovvero questo è uno schema transazionale Si definisce la misura RITARDO e si suppone che essa sia aggregata rispetto a tutte le dimensioni tramite media: RITARDO (AVG) Si considera CITTA, STATO come gerarchia condivisa : si noti che il ruolo della CITTA come figlio di AEROPORTO_PARTENZA è evidente, mentre per la dimensione occorre esplicitare il nome del ruolo CITTA_ARRIVO

Ritardi: Progettazione dello Schema di Fatto Progettazione Schema di Fatto Come ultimo passo devo definire il “glossario delle misure” ovvero devo stabilire come calcolare il valore delle misure per gli eventi primari; in questo caso lo schema è transazionale, quindi il valore della misura RITARDO corrisponde direttamente al valore dell’attributo RITARDO del DB operazionale e non occorre raggruppare rispetto alle dimensioni Si definisce lo Schema di Fatto selezionando come dimensioni {DATA, CODVOLO, CITTA_ARRIVO} quindi tra le dimensioni ho tutti gli attributi chiave ovvero questo è uno schema transazionale ERRATA/CORRIGE Nelle dispense distribuite la misura RITARDO e’ definita raggruppando sulle dimensioni : {DATA, CODVOLO, CITTA_ARRIVO} Questo è sbagliato, anche se il risultato non cambia: siccome DATA,CODVOLO è una chiave, in un gruppo del GROUP BY ci può essere al massimo una tupla e quindi il raggruppamento non ha effetto e la funzione aggregata (AVG,MIN, MAX) restituisce il singolo valore della misura RITARDO

Ritardi: Progettazione dello schema di Fatto a partire dallo schema relazionale del DB operazionale Oltre allo schema E/R normalmente è disponibile anche lo schema logico (relazionale) del DB operazionale Si suppone che i due schemi siano equivalenti (ovvero che questo sia lo schema relazionale ottenuto da un corretto progetto logico …).

Ritardi: Progettazione dello schema di Fatto a partire dallo schema relazionale del DB operazionale Ovviamente lo schema logico relazionale è indispensabile nella fase di progettazione dell’alimentazione, durante la quale si deve conoscere l’effettiva struttura del DB dal quale verranno prelevati i dati … Conviene effettuare la progettazione concettuale del Datawarehouse (gli schemi di fatto) a partire dallo schema relazionale? Con uno schema E/R è più semplice la progettazione, essendo in esso evidenziate le associazioni e le relative cardinalità A volte lo schema E/R non è disponibile ed occorre ricavarlo dallo schema logico secondo un procedimento di reverse engineering In presenza dello schema relazionale si può utilizzare lo strumento Wand

Ritardi: Progettazione dello Schema di Fatto Si considera il seguente schema logico per il DM

Ritardi: misure derivate Supponiamo di voler analizzare anche il numero dei voli giornalieri che hanno subito un ritardo Nel precedente schema si fatto si aggiunge una misura (INRITARDO) a valore booleano calcolata come if RITARDO <> 0 then INRITARDO = 1 else INRITARDO = 0 INRITARDO è una misura derivata che verrà aggregata tramite somma. A che punto del progetto si introduce la misura INRITARDO? Sicuramente conviene indicarla durante la progettazione concettuale, e quindi inserirla nello schema di fatto. Quindi si decide in che punto implementarla Se l’espressione che definisce la misura è (facilmente) implementabile in Analysis Services, si può introdurla nella realizzazione dei cubi … … altrimenti conviene introdurla già nella progettazione logica in modo da poterla calcolare (in SQL) e quindi memorizzare nella fact table

Ritardi: misure derivate Modifichiamo la fact table Ritardi aggiungendo INRITARDO. Come calcolare la misura INRITARDO in SQL? Si aggiunge alla tabella VOLOGIOR e si calcola tramite update (vedi dispense su Esempio Biglietti pagina 14); questa soluzione mi costringe a modificare lo schema del DB operazionale e ovviamente non sempre è possibile Si definisce tramite una vista nel DB Operazionale, o meglio, si introduce nella vista che definisce l’alimentazione del DM Si definisce durante l’alimentazione del DataMart utilizzando il trasferimento dati basato su una opportuna query. Verrà utilizzato il secondo metodo, perchè facilmente implementabile grazie all’istruzione CASE di SQL

Ritardi: Alimentazione del Data Mart - Fact Table Alimentazione della fact table: raggruppo su DATA,CODVOLO e CITTA_ARRIVO; definiamo una view (nel DB dei Biglietti) che contiene questi attributi (si noti che per CITTA_ARRIVO devo fare un join con AEROPORTO). Considero dei join interni. Salvo ed edito la view aggiungendogli il raggruppamento e calcolando RITARDO: CREATE VIEW dbo.VistaRitardi AS SELECT dbo.VOLOGIOR.DATA, dbo.VOLOGIOR.CODVOLO, dbo.AEROPORTO.CITTA AS CITTA_ARRIVO, AVG(RITARDO) AS RITARDO FROM dbo.VOLOGIOR INNER JOIN dbo.VOLO ON dbo.VOLOGIOR.CODVOLO = dbo.VOLO.CODVOLO INNER JOIN dbo.AEROPORTO ON dbo.VOLO.A = dbo.AEROPORTO.SIGLA GROUP BY dbo.VOLOGIOR.DATA, dbo.VOLOGIOR.CODVOLO, dbo.AEROPORTO.CITTA

Alimentazione del Data Mart: creazione di pacchetti DTS Si svuota il contenuto del DM: è utile per testare le procedure di estrazione statica Si copiano le dimensional table: l’unico vincolo da rispettare è quello dell’integrità referenziale: quando si copia la tabella A, devono essere già state copiate tutte le tabelle alle quali A si riferisce tramite una FK Si definisce un pacchetto DTS per ogni passo. Siccome in ogni passo si devono semplicemente copiare delle tabelle è conveniente (è più semplice) creare tale pacchetto tramite “Importa Dati” In uno star schema si possono copiare tutte le dimension table in un solo passo Si copia il contenuto della vista nella fact table Dopo aver creato e provato i pacchetti (package) per i singoli passi, si può creare un unico package che li include tutti, eseguendoli nell’ordine stabilito

Ritardi: Alimentazione del Data Mart - Fact Table Alimentazione della fact table: raggruppo su DATA,CODVOLO e CITTA_ARRIVO; definiamo una view (nel DB dei Biglietti) che contiene questi attributi (si noti che per CITTA_ARRIVO devo fare un join con AEROPORTO). Considero dei join interni. Salvo ed edito la view aggiungendogli il raggruppamento e calcolando RITARDO: CREATE VIEW dbo.VistaRitardi AS SELECT dbo.VOLOGIOR.DATA, dbo.VOLOGIOR.CODVOLO, dbo.AEROPORTO.CITTA AS CITTA_ARRIVO, AVG(RITARDO) AS RITARDO FROM dbo.VOLOGIOR INNER JOIN dbo.VOLO ON dbo.VOLOGIOR.CODVOLO = dbo.VOLO.CODVOLO INNER JOIN dbo.AEROPORTO ON dbo.VOLO.A = dbo.AEROPORTO.SIGLA GROUP BY dbo.VOLOGIOR.DATA, dbo.VOLOGIOR.CODVOLO, dbo.AEROPORTO.CITTA

Ritardi: Alimentazione del Data Mart - svuoto il DM Si crea un pacchetto DTS tramite editor Per prima cosa si inserisce la connessione al DM …

Ritardi: Alimentazione del Data Mart - svuoto il DM Si crea un pacchetto DTS tramite editor … e quindi si scrive l’istruzione SQL (si noti che occorre cancellare rispettando l’ordine delle FK)

Ritardi: Alimentazione del Data Mart - Dimension Table CITTA Nel DB operazionale la città e lo stato sono specificati in AEROPORTO Prendo i dati dal DB Biglietti e precisamente dalla tabella AEROPORTO. Si effettua un “importa dati” basato sulla query select distinct CITTA,STATO from AEROPORTO

Ritardi: Alimentazione del Data Mart - Dimension Table CITTA

Ritardi: Alimentazione del Data Mart - Dimension Table CITTA

Ritardi: Alimentazione del Data Mart - Dimension Table CITTA

Ritardi: Alimentazione del Data Mart Si salva il pacchetto per alimentare Citta Si crea un pacchetto per alimentare AEROPORTO nel DM Si effettua un “importa dati” basato sulla query select SIGLA CITTA from AEROPORTO Non serve il distinct perchè SIGLA è chiave Si può fare anche senza la query, importando direttamente la tabella Nello stesso modo si crea un pacchetto per alimentare VOLO nel DM Si crea un pacchetto per alimentare RITARDI nel DM prendendolo dalla vista creata a pagina 5

Ritardi: Alimentazione del Data Mart - Pacchetto complessivo Si crea un pacchetto DTS complessivo di tutti I pacchetti creati finora, in cui viene imposto l’ordine di esecuzione Ogni pacchetto viene inserito tramite “Attività Esegui Pacchetto” che viene collegata al pacchetto creato in precedenza

Ritardi: Alimentazione del Data Mart - Pacchetto complessivo … si inserisce il pacchetto per copiare i dati da Città …

Ritardi: Alimentazione del Data Mart - Pacchetto complessivo E quindi si crea il flusso di lavoro tra I due pacchetti:

Ritardi: Alimentazione del Data Mart - Pacchetto complessivo Alle varie “Attività Esegui Pacchetto” si può dare un nome (usando le proprietà)