Architettura del Software e dei Dati Sistema di Osservazione del Comportamento degli Automobilisti (OCA) Gruppo BPS Michele Bellini - 708879 Daniele Prevedello.

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

Gestione della memoria centrale
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
1 DATA BASE GESTIONE VENDITE. 2 QUERY1 Per ogni Cognome di Rappresentante e Descrizione di Prodotto calcolare la somma delle quantità vendute: Somma (Quantità)
Esercizio zSi vuole realizzare un data warehouse per una azienda che vende mobili allingrosso. zIl data warehouse deve permettere di analizzare i ricavi.
Biglietti e Ritardi: schema E/R
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Analisi.
Biglietti e Ritardi: schema E/R
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
5 – Progettazione Concettuale
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.
Archivio Cé necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
L’uso dei database in azienda
Basi di dati Università Degli Studi Parthenope di Napoli
Indicatori di efficienza dellanagrafe vaccinale Piano Nazionale di eliminazione del morbillo e della rosolia congenita
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Partizionamento/accorpamento di concetti
Daniel Stoilov Tesi di Laurea
Architettura Java/J2EE
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.
DBMS ( Database Management System)
M.A.E.A.I. Mobile Agent and Enterprise Architecture Integration Il gestore delle politiche Valerio Siri Reti di Calcolatori LS Docente: Antonio Corradi.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Basi di dati Claudia Raibulet
LOCALIZZAZIONE SATELLITARE GEOREFENRENZIATA. OBIETTIVI Gestire il database cartografico al fine di poter visualizzare la posizione dei mezzi localizzati,
Esercitazione di Basi di Dati
a Finmeccanica company Copyright © Elsag Spa All rights reserved. Sistemi di prenotazione e pagamento innovativi dei parcheggi di interscambio L.
S.I.C.C. - Sistema Informativo Call Center
INFORMATICA Corso Base Modulo G: I DataBase  Access.
Array a un dimensione : vettori
L’algebra relazionale
Lo sviluppo del progetto informatico
ACCESS Introduzione Una delle necessità più importanti in informatica è la gestione di grandi quantità di dati. I dati possono essere memorizzati.
Progettare un database
Introduzione a Oracle 9i
Lazienda SCInformatica si occupa della progettazione e della realizzazione di sistemi informatici dedicati alle farmacie. Fornisce inoltre un servizio.
Università degli studi di Roma la Sapienza --- Laboratorio di Basi di Dati II - a.a. 2003/04 Presentato da: CAU Simone Matricola:
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
DATABASE Introduzione
Lazienda SC Informatica si occupa della progettazione e della realizzazione di sistemi informatici dedicati alle farmacie. Fornisce inoltre un servizio.
Evolve. Il software EVOLVE consente un veloce accesso, visualizzazione ed estrazione dei dati contenuti nel data base dellAmministrazione del Personale.
ITCG “V. De Franchis” - PON FSE Modulo G/1 l’informatica”
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Progetto Finale Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Microsoft Access Chiavi, struttura delle tabelle.
Prof. ing. Paolo Bidello AA 2005/2006 Laboratorio Informatico Promemoria degli argomenti: Reti locali (LAN)
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
GATECOP Benvenuti in Gatecop, programma specializzato per la gestione delle Palestre.
Cloud informatica V anno.
ICT e Sistemi informativi Aziendali Materiale di supporto alla didattica.
Le basi di dati.
SISTEMA GESTIONE TOMBINI
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Modulo 5 – Database ACCESS LICEO SCIENTIFICO “ B. RESCIGNO COMPUTER SCUOLA PIANO INTEGRATO 2008/09 ESPERTO prof.ssa Rita Montella.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Proprieta’ e caratteristiche strutturali dei sistemi.
Architetture del software e dei dati Appello del 24/2/2016 Università degli Studi di Milano-Bicocca Dipartimento di Informatica Sistemistica e Comunicazione.
Architetture software e dei dati Appello 24/02/2016 Osservazione del Comportamento degli Automobilisti (OCA) MONTEROSSO FEDERICO MONTEVECCHI.
Sistema di osservazione del comportamento degli automobilisti Progetto di Architetture del software e dei dati 2015/2016 Alessandro Banfi Camillo.
APPELLO 12/02/2014 STUDENTE: LUCA GRAZIOLI MATRICOLA: Progetto di Architetture del software e dei dati.
DDBMS Distributed database system. DDB Una base di dati distribuita è una collezione di dati che appartengono logicamente allo stesso sistema informativo.
Architetture del Software e dei Dati A.A. 2015/16 Sistema di Osservazione del Comportamento degli Automobilisti Lorenzo Fenili Silvio Messi
Transcript della presentazione:

Architettura del Software e dei Dati Sistema di Osservazione del Comportamento degli Automobilisti (OCA) Gruppo BPS Michele Bellini Daniele Prevedello Alessandro Sighinolfi Febbraio 2016

Testo del Problema Si deve realizzare un sistema di Osservazione del Comportamento degli Automobilisti (OCA) che consenta a una Compagnia di assicurazione di monitorare il comportamento degli automobilisti assicurati per ridefinire le polizze in base al livello di rischio di ciascun assicurato e per fornire assistenza in caso di sinistro. Sui veicoli degli assicurati sono presenti: Un sensore di accelerazione ACC (accelerometro). Un sensore di velocità TAC (tachimetro). Un sensore GPS. E’ possibile accedere a due Basi Dati esterne preesistenti: Una Base Dati Geografica (BDG) che contiene la descrizione della rete viaria e in particolare, per ciascuna strada, la tipologia T (urbano, extraurbano, autostrada) e l’eventuale limite di velocità. Per semplicità, si può (ma non è obbligatorio!) assumere che i limiti di velocità siano fissati per ciascun tipo di strada (esempio: 50, 90, 130).

Testo del Problema Una Base Dati Assicurati (BDA) che contiene l’anagrafica degli assicurati, le relative polizze e le denunce di sinistro. Si consideri che un assicurato può avere più polizze corrispondenti a veicoli diversi. Gli operatori della Compagnia svolgono due funzioni: Organizzazione dell’assistenza in caso d’incidente. Ridefinizione, ala scadenza di ogni polizza, del premio di assicurazione in base al livello di rischio dell’assicurato calcolato sull’ultimo anno. Questa attività deve poter essere svolta in remoto. Il sistema OCA deve essere in grado di: 1.Supportare l’assistenza immediata in caso di sinistri, svolgendo le seguenti funzioni: a.Riconoscimento di eventuali sinistri (collisioni); b.Notifica all’operatore competente delle informazioni necessarie per organizzare l’assistenza; c.Attivazione di una connessione telefonica tra operatore e assicurato coinvolto.

Testo del Problema 2.Determinare per ciascuna polizza su base annuale: a.Il chilometraggio totale K; b.La velocità media V per ciascuna tipologia T di tronco viario; c.Il livello di prudenza P, definito come la percentuale di chilometri percorsi rispettando i limiti di velocità con una tolleranza di 10 km/h. 3.Calcolare il livello di rischio R di ciascun assicurato come R = f(K, V, P, E, D, C), dove K, V, P sono cumulativi per tutte le polizze dell’assicurato, E è l’età dell’assicurato, D il numero di denunce sinistro nell’ultimo anno e C il Comune di residenza. Il livello di rischio R può assumere valori discreti da 1 a 10. Non si chiede di definire il dettaglio algoritmico della funzione f. 4.Consentire all’operatore competente di visualizzare, per ciascun assicurato e per ciascuna polizza, le attuali condizioni di polizza e il livello di rischio dell’assicurato.

Architettura del Software Sistema di Osservazione del Comportamento degli Automobilisti (OCA) Architettura del Software e dei Dati

Ambiguità Non è definito quale è il meccanismo per cui si possa verificare la situazione di sinistro Funzione di Rischio non esplicitata, di conseguenza non possiamo stimare analiticamente la complessità computazionale del rischio Non è possibile stabilire se nel momento di sinistro il guidatore è la stessa persona del titolare dell’assicurazione.

Assunzioni - Generali VALUTAZIONE SINISTRO Per valutare il caso di sinistro sull’automobile si è valutato il sistema come segue : Il caso di incidente si ottiene quando la forza sviluppata dal sistema automobile-ambiente è maggiore di una certa soglia L’automobile è dotata di un accelerometro e, applicando la legge della dinamica di Newton, si valuta l’accelerazione in un certo istante di tempo L’accelerazione istantanea, valutata dal trigger, è di segno negativo (decelerazione) Quando il modulo dell’accelerazione negativa supera una certa soglia, il trigger si attiva e invia la segnalazione Il campionamento dell’accelerazione avviene ogni 10 ms per non perdere nessun valore di picco

Assunzioni - Generali ALTRE ASSUNZIONI Gli incidenti sono considerati non gravi, quindi l’intervento dell’operatore consiste nel contattare il titolare dell’assicurazione e se necessario organizzare un intervento di assistenza al veicolo

Assunzioni - Veicolo Sul veicolo vengono effettuati i campionamenti fisici e un’aggregazione delle misure effettuate dalla scatola nera Il sistema scatola nera si occupa dell’elaborazione della notifica incidente

Assunzioni - Operatore La notifica dell’incidente viene sempre inviata all’OCA. Il dato, contiene il valore GPS dell’ultima posizione da cui si può approssimativamente ricostruire la posizione del veicolo incidentato e la velocità prima dell’urto da cui si può approssimativamente valutare l’entità dell’incidente A seconda dei tempi di attesa ragionevoli l’operatore può contattare, in caso di necessità, sia il centro d’assistenza convenzionato con la compagnia d’assicurazione (come canale preferenziale) più vicino al luogo di sinistro sia il centro d’assistenza più vicino al luogo di sinistro.

Assunzioni - BDG Ogni strada è suddivisa in tratti, per ricostruire i percorsi con i limiti stradali in modo più preciso

Assunzioni - BDA Il database è un aggregato dei database di diverse compagnie di assicurazione

Assunzioni – Titolare Polizza Il titolare dell’assicurazione non è sempre il guidatore dell’automobile. Anche in questo caso viene contattato quando si verifica un sinistro Il titolare può avere più polizze assicurative e con più società di assicurazione

Stime Il sistema OCA ha un livello di copertura nazionale La distanza tra il centro e il luogo di incidente non è approssimabile a priori. Infatti in prossimità di grandi centri e autostrade il soccorso sarà più tempestivo rispetto al caso in cui il sinistro avviene in un luogo difficilmente raggiungibile. La stima massima per l’arrivo di un carroattrezzi nel luogo di incidente è valutata entro un’ora I centri di assistenza sono distribuiti in media su tutto il territorio nazionale. L’agenzia assicurativa si incarica di contattare il centro più vicino. Mediamente almeno un centro di assistenza è presente a livello provinciale

Architettura del Problema: Casi d’uso

Architettura del Problema: Modello dei Dati

Diagramma delle Attività (Invio Rilevazioni)

Diagramma delle Attività (Aggregazione Dati)

Diagramma delle Attività (Notifica Incidente)

Diagramma delle Attività (Organizza Assistenza)

Diagramma delle Attività (Calcolo Rischio)

Diagramma delle Attività (Calcolo Prudenza)

Diagramma delle Attività (Condizione Assicurato)

Diagramma delle Attività (Ridefinizione Polizza)

Partizionamento: Invio Rilevazioni e Notifica Incidente

Si è deciso di partizionare i componenti Invio Rilevazioni e Notifica Incidente, al fine di ottenere una separazione coerente a livello di timing tra le operazioni di rilevazione, infatti la rilevazione delle grandezze e valutazione dell’accelerazione e l’ invio dati sono effettuate a tempi diversi Il modello scelto permette l’esecuzione coerente a livelli di tempistica di tutte le operazioni possibili della scatola nera sul veicolo Le altre componenti sono già partizionate svolgendo funzioni individuali. Queste funzioni individuali sono già state espresse e partizionate nella fase di definizione dei casi d’uso del sistema

Architettura Logica: Footprint Overlap DimensioneValore Astrazione 10 Intraflow 10 Extraflow 70 Delay 10 Complessità 30 Timings 20 Sharings 40 Per una visione complessiva dei componenti si rimana al file.vpp allegato

Architettura Concreta: Invio Rilevazioni e Notifica Incidente

Architettura Concreta: Aggregazione Dati

Architettura Concreta: Organizza Assistenza

Architettura Concreta: Calcolo Rischio

Architettura Concreta: Calcolo Prudenza

Architettura Concreta: Condizione Assicurato

Architettura Concreta: Ridefinizione Polizza

Architettura di Deployment

Pro & Contro PRO -Ogni componente ha la sua singola funzione ben definita in modo da non avere chiamate ridondanti sul database -Quando arrivano i dati vengono aggregati direttamente a partire da un set ridotto di datiCONTRO -Accesso ai database esterni per identificazione geografica che rallenta il sistema -I dati vengono aggregati e non si ha più traccia della granulosità delle informazioni

Infrastruttura Hardware – Protocolli di Comunicazione DaACanale Scelto SensoreSistema Di ArchiviazioneGPRS + HTTP Operatore AssicuratoreSistema Di ElaborazioneHTTP Sistema di ElaborazioneDatabase GeograficoHTTP

Infrastruttura Hardware – Componenti Fisse per soluzione scelta NomeDescrizionePrezzo UnitarioPrezzo Totale Accelerometrosparkfun ADX g 27,00(x ) € € Modulo Gpsgp-20u7 56 canali14,50(x ) € € Modulo Gpsr/GsmSmartsim 340Z Board 22,00(x ) € € Sim DatiAbbonamento per Gprs/Gsm 6,00(x ) €/mensile € TOTALE63,50(x ) € € €/mese La stima è effettuata su un numero di automobili pari al 5% del totale presenti in Italia.

Infrastruttura Hardware – Componenti Fisse per soluzione scelta Server Dedicato Sistema di Elaborazione CaseCarbide Series 300R Midi Tower ATX CPUIntel Core i7 4790K PC1150 8MB Cache SSD240GB 2,5" SATA3 V300 RAMDDR3 16GB PC 1600 CLS HDD2TB SATA3 7200rpm PSUCorsair CS Series 80 Plus Bronze 600CX 800W MainboardASUS H97M-E Intel H97 mATX TOTALE1000,00 € (x2) Sistema di Archiviazione CaseCarbide Series 300R Midi Tower ATX CPUIntel Core i GHz 6MB 1150 Haswell Refresh con GPU HD W SSD120GB 2,5" SATA3 V300 RAMDDR3 8GB PC 1600 CL)(2x4GB) HDD1TB SATA3 7200rpm PSUCorsair CS Series 80 Plus Bronze 600CX 800W MainboardASUS H97M-E Intel H97 mATX TOTALE629,00€ (x2)

Infrastruttura Hardware – Componenti Fisse per soluzione scelta In questa infrastruttura bisogna aggiungere i costi per un servizio di assistenza 24 ore su 24, 365 gg all’anno. E’ possibile prevedere l’acquisto di un gruppo di continuità nel caso di blackout

Costi e Tempi di Realizzazione Costo di Sviluppo 4 persone 8 ore al giorno 5 giorni alla settimana 25€ lordi all’ora 5 mesi di lavoro Totale ≈ ,00 €

Architettura dei Dati Sistema di Osservazione del Comportamento degli Automobilisti (OCA) Architettura del Software e dei Dati

Schema Logico Relazionale - BDA Tabelle: Assicurato(Id, Nome, Cognome, CF, Telefono, Cellulare, Indirizzo, idCittà) Città(Id, Nome, Cap) Polizza(Id, Caratteristiche, DataInizio, DataFine, Premio, Targa, Telaio, idAssicurato) Denuncia(Id, Descrizione, Luogo, Colpevolezza, ImportoDanno, ImportoErogato, DataSinistro, idPolizza1, idPolizza2) Vincoli Referenziali: Assicurato.idCittà  Città.Id Polizza.IdAssicurato  Assicurato.Id Denuncia.idPolizza1  Polizza.Id Denuncia.idPolizza2  Polizza.Id

Reverse Engineering - BDA

Schema Logico Relazionale - OCB Tabelle: ClienteAssicurato(Id, Nome, Cognome, CodiceFiscale, ContattoTelefonico, DataNascita) Polizza(Id, N_Polizza, Targa, AgenziaAssicurativa, IdCliente) ScatolaNera(Matricola, Descrizione, DataAttivazione, idPolizza) AggregatoAnnuale(Id, Anno, VUrbanoAggregata, TotKmUrbano, VExtraurbanoAggregata, TotKmExtraurbano, VAutostradaAggregata, TotKmAutostrada, TotKmRispettandoLimiti, Prudenza, Rischio, IdSN) Vincoli Referenziali: Polizza.IdCliente  ClienteAssicurato.Id AggregatoAnnuale.idSN  ScatolaNera.Id ScatolaNera.IdPolizza  Polizza.Id

Reverse Engineering - OCB

Eterogeneità e Corrispondenze Interschema E / CIBDAOCBTipoScelta CIAssicurato.CF ClienteAssicurato. CodiceFiscale Sinonimia Vengono cercati i match fra valori CIPolizza.IdPolizza.N_PolizzaSinonimia Vengono cercati i match fra valori CIPolizza.Targa Sinonimia Vengono cercati i match fra valori EAssicuratoClienteAssicurato Eterogeneità Strutturale Viene mantenuta l’anagrafica da ClienteAssicurato integrando i dati mancanti da Assicurato EPolizza Eterogeneità Strutturale Vengono mantenute le informazioni della tabella Polizza del database BDA

Modalità per L’Integrazione Si vogliono integrare le basi di dati BDA e OCB, per poter permettere agli utenti una visione unificata di questi dati. Tecnologia di integrazione dati EII(Enterprise Information Integration): Permette di supportare una vista unificata dei dati utilizzando paradigmi di astrazione dei dati, per fornire una singola interfaccia che contenga tutti i dati di un’organizzazione come un unico insieme di strutture (schema globale). Architettura di EII adottata Virtual data integration: Viene creato un nuovo schema logico globale, come integrazione degli schemi delle BD locali. Non si crea nessuna nuova BD fisica, ed in caso di query si interrogano fisicamente le BD locali. Tramite questa architettura l’utente ha la visione di uno schema globale che in realtà non esiste.

Modalità per L’Integrazione Viene creato un nuovo schema logico (globale) come integrazione degli schemi delle basi di dati BDA e OCB. BDAOCB BDA/OCB SLL BDA SLL OCB SLL BDA/OCB

Schema Concettuale Globale

Schema Logico Globale Assicurato(Id, Nome, Cognome, CodiceFiscale, Telefono, Cellulare, Indirizzo, DataNascita, Città, Cap) Polizza(Id, Caratteristiche, DataInizio, DataFine, Premio, Targa, Telaio, AgenziaAssicurativa, idAssicurato) Denuncia(Id, Descrizione, Luogo, Colpevolezza, ImportoDanno, ImportoErogato, DataSinistro, idPolizza1, idPolizza2) ScatolaNera(Matricola, Descrizione, DataAttivazione, idPolizza) AggregatoAnnuale(Id, Anno, VUrbanoAggregata, TotKmUrbano, VExtraurbanoAggregata, TotKmExtraurbano, VAutostradaAggregata, TotKmAutostrada, TotKmRispettandoLimiti, Prudenza, Rischio, IdSN)

Mapping GAV Assicurato CREATE VIEW Assicurato AS SELECT CA.Id, OCB.Nome, CA.Cognome, CA.CodiceFiscale, A.Telefono, CA.ContattoTelefonico AS Cellulare, A.Indirizzo, CA.DataNascita, Città.Nome AS Città, Città.Cap FROM OCB.ClienteAssicurato AS CA LEFT JOIN BDA.Assicurato AS A JOIN BDA.Città ON (Città.Id=A.idCittà AND CA.CodiceFiscale=A.CF)

Mapping GAV Polizza CREATE VIEW Polizza AS SELECT AP.*, OP.AgenziaAssicurativa FROM BDA.Polizza AS AP RIGHTJOIN OCB.Polizza AS OP ON (AP.Id=OP.N_Polizza AND AP.Targa=OP.Targa)Denuncia CREATE VIEW Denuncia AS SELECT Denuncia.* FROM BDA.Denuncia

Mapping GAV ScatolaNera CREATE VIEW ScatolaNera AS SELECT SN.* FROM OCB. ScatolaNera AS SN JOIN OCB.Polizza AS OP ON (SN.IdPolizza=OP.Id)AggregatoAnnuale CREATE VIEW AggregatoAnnuale AS SELECT AggregatoAnnuale.* FROM OCB.AggregatoAnnuale

Interrogazione con Unfolding (1) 1.Selezionare per città il livello di prudenza medio del 2013, togliendo dal calcolo i valori limite: CREATE VIEW prudenzaMedia AS SELECT AVG(AA.Prudenza) AS media, A.Città AS citta FROM Assicurato AS A, Polizza AS P, ScatolaNera AS SN, AggregatoaAnnule AS AA WHERE AA.idSN=SN.Matricola AND SN.idPolizza=P.Id AND P.idAssicurato=A.id AND AA.Anno=”2013” AND AA.Prudenza!=NULL AND AA.Prudenza>1 AND AA.Prudenza<10 GROUP BY A.Città

Interrogazione con Unfolding (1) CREATE VIEW prudenzaMedia AS SELECT AVG(AA.Prudenza) AS media, Città.Nome AS citta FROM OCB.ClienteAssicurato AS CA LEFT JOIN BDA.Assicurato AS A JOIN BDA.Città JOIN BDA.Polizza AS AP RIGHTJOIN OCB.Polizza AS OP JOIN OCB.ScatolaNera AS SN JOIN OCB.AggregatoAnnuale AS AA ON (Città.Id=A.idCittà AND CA.CodiceFiscale=A.CF AND AP.idAssicurato=A.Id AND AP.Id=OP.N_Polizza AND AP.Targa=OP.Targa AND SN.IdPolizza=OP.Id AND AA.idSN=SN.Matricola) WHERE AA.Anno=”2013” AND AA.Prudenza!=NULL AND AA.Prudenza>1 AND AA.Prudenza<10 GROUP BY Città.Nome

Interrogazione con Unfolding (2) 2.Calcola la varianza per citta nel 2013 SELECT AVG(POWER(AA.Prudenza ­- PrudenzaMedia.media, 2)) AS Varianza, PrudenzaMedia.citta FROM Assicurato AS A, Polizza AS P, ScatolaNera AS SN, AggregatoaAnnule AS AA, PrudenzaMedia WHERE AA.idSN=SN.Matricola AND SN.idPolizza=P.Id AND P.idAssicurato=A.id AND AA.Anno=”2013” AND AA.Prudenza!=NULL AND PrudenzaMedia.citta=A.Città GROUP BY A.Città

Interrogazione con Unfolding (2) SELECT AVG(POWER(AA.Prudenza ­- PrudenzaMedia.media, 2)) AS Varianza, PrudenzaMedia.citta FROM OCB.ClienteAssicurato AS CA LEFT JOIN BDA.Assicurato AS A JOIN BDA.Città JOIN BDA.Polizza AS AP RIGHTJOIN OCB.Polizza AS OP JOIN OCB.ScatolaNera AS SN JOIN OCB.AggregatoAnnuale AS AA JOIN PrudenzaMedia ON (Città.Id=A.idCittà AND CA.CodiceFiscale=A.CF AND AP.idAssicurato=A.Id AND AP.Id=OP.N_Polizza AND AP.Targa=OP.Targa AND SN.IdPolizza=OP.Id AND AA.idSN=SN.Matricola AND PrudenzaMedia.citta=Città.Nome) WHERE AA.Anno=”2013” AND AA.prudenza!=NULL GROUP BY Città.Nome

Modello di Rappresentazione non Relazionele Come modello alternativo al relazionale, abbiamo scelto il modello Column based. Questo modello per ogni riga ha bisogno di una chiave primaria, che per noi corrisponde al numero della polizza. Le prime n colonne corrispondono agli attributi statici sempre presenti relativi alla scatola nera, alla polizza e all’utente assicurazione. Una caratteristica del modello a colonne risiede nella possibilità di avere n colonne a piacere. Questa caratteristica si mappa bene all’utilizzo nella classe StatisticaAnnuale, poiché per ogni anno si avrà un numero k di valori corrispondenti al numero degli attributi in StatisticaAnnuale. Quindi per ogni anno passato si aggiungeranno k colonne. Questo permette di avere ottime performance poiché evita le operazioni di join sostituendole, di fatto, con una ricerca sequenziale all’interno della stessa riga.