Database relazionali e NoSQL a confronto

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Database relazionali e NoSQL a confronto"

Transcript

1 Database relazionali e NoSQL a confronto Dimitri De Franciscis 10 aprile 2013

2

3 Sommario Scopo di questo lavoro è esplorare le possibilità offerte dai database appartenenti al movimento NoSQL e confrontarli, dove possibile, con soluzioni più tradizionali di tipo relazionale (RDBMS). Nella prima parte verranno introdotte le varie categorie di database NoSQL, le loro peculiarità, i problemi che risolvono e alcune delle nuove sfide che pongono. Nella seconda parte verrà effettuata l analisi di alcuni scenari, confrontando di volta in volta un implementazione di tipo relazionale con la tecnologia NoSQL ritenuta più adatta. Si è volutamente scelto uno stile pragmatico e, nei limiti consentiti dalla lunghezza dell elaborato, simile nella struttura ad uno studio di fattibilità adatto ad una piccolamedia azienda di sviluppo software che sia intenzionata a valutare l utilizzo di NoSQL per i propri prodotti. L elaborato è nato come progetto d esame per il corso di Complementi di Basi di Dati tenuto dal dott. Andrea Maurino presso l Università degli Studi di Milano-Bicocca. Revisioni del documento Versione Data Commenti 1 11/02/2013 Versione iniziale 2 10/04/2013 Correzioni al testo e integrazioni Licenza Quest opera è distribuita con la seguente licenza: Creative Commons Attribution 3.0 Unported License L autore si impegna a rendere disponibile con licenza Creative Commons e aggiornata l opera sul proprio sito web: i

4

5 Indice I. Introduzione a NoSQL 1 1. Introduzione Una definizione di NoSQL Aspetti controversi Caratteristiche dei database NoSQL Classificazione in base al modello dei dati Categorie di modelli di dati Modello di dati key-value Modello di dati Column Family Modello di dati Document Store Modello di dati a Grafo Modelli di distribuzione, consistenza dei dati e CAP Theorem Modelli di distribuzione Single Server Replicazione Sharding CAP Theorem Rilassamento Rilassamento di Atomicità e Isolamento Rilassamento della Durabilità Eventual Consistency Perché il rilassamento Bibliografia 21 iii

6

7 Parte I. Introduzione a NoSQL 1

8

9 1. Introduzione 1.1. Una definizione di NoSQL Con il termine NoSQL si raggruppano varie tecnologie di persistenza dei dati, anche molto diverse fra loro. L acronimo stesso è piuttosto vago e soggetto a varie interpretazioni, di cui la più rilevante e accettata sembra essere Not Only SQL. Per stabilire un punto di partenza, considereremo l interpretazione fornita da Pramod e Fowler in NoSQL Distilled [1]: Un insieme poco definito di database principalmente open-source, principalmente sviluppati nel XXI secolo, principalmente che non fanno uso di SQL. Per completare questa definizione dobbiamo aggiungere anche che: non utilizzano il modello relazionale; non hanno (solitamente) uno schema esplicito, ovvero specificato utilizzando un qualsiasi linguaggio formale; la maggior parte di essi è stata progettata da subito per funzionare bene in cluster Aspetti controversi Il termine NoSQL a partire dal 2009 è diventato sempre più una buzzword, ovvero una parola molto di moda e utilizzata a sproposito, soprattutto nelle attività di marketing; a peggiorare la situazione, aggiungendo ulteriore confusione, si sono aggiunte molte idee sbagliate a proposito di NoSQL. Fra le argomentazioni a favore di NoSQL, rispetto al modello relazionale: maggiori performance; maggiore libertà e facilità nello sviluppo; minore impedance mismatch 1 ; 1 Per impedance mismatch si intende la differenza fra il modello relazionale e le strutture dati utilizzate dall applicazione ed effettivamente presenti in memoria. Le conseguenze principali di questa discrepanza sono 1) una maggior complessità dello strato di accesso ai dati e 2) degrado delle performance. 3

10 1. Introduzione minore sforzo di amministrazione. Ovviamente non mancano le critiche, rivolte principalmente ai compromessi da accettare per poter utilizzare questa nuova classe di database (che tratteremo più in dettaglio nel paragrafo 2.5 dedicato al Rilassamento): nessuna garanzia di tipo ACID e conseguente impossibilità di implementare transazioni; prodotti troppo giovani per soluzioni che necessitano di affidabilità e elevati uptime; livelli di sicurezza non certificati. Nel corso della trattazione vedremo come il mondo NoSQL sia decisamente variegato e che non ci siano prodotti sovrapponibili al 100%, cercheremo quindi di affrontare queste argomentazioni (sia pro che contro) da un punto di vista il più pratico possibile, confrontando eventuali rischi e benefici delle varie soluzioni. Una delle conclusioni di [1], pienamente condivise dall autore della presente pubblicazione, è che lo sviluppo software stia progressivamente passando ad un modello di persitenza poliglotta (Polyglot Persistence), in grado di utilizzare lo strumento più adatto alle esigenze, il contesto e le sfide che pone il mercato. NoSQL è dunque da considerarsi, in quest ottica, una freccia in più al proprio arco di chi desidera (o ha necessità di) fare innovazione. 4

11 2. Caratteristiche dei database NoSQL 2.1. Classificazione in base al modello dei dati Dal punto di vista degli utilizzatori (sviluppatori, amministratori, utenti di terminale, ecc.) una delle caratteristiche peculiari dei database relazionali, nonché uno dei motivi del loro grande successo, è l uniformità dell interfaccia fra i dati e le applicazioni. Anche confrontando diversi vendor, praticamente l unico modello dei dati utilizzato è quello di tipo tabulare, accessibile tramite SQL o stored procedure basate comunque su concetti relazionali. Avere un modello così stabile ha reso possibile non solo il consolidamento di alcune best practice di sviluppo e gestione, ma anche un confronto diretto sul terreno delle prestazioni, della scalabilità, della sicurezza. I database catalogati come NoSQL, al contrario, utilizzano vari e diversi modelli dei dati. Questa differenziazione è ovviamente il frutto di precise scelte progettuali: per ottenere migliori performance, per fornire nuove e migliori API (Application Program Interface) alle applicazioni, e così via. Questa diversità ci costringe inevitabilmente ad affrontare separatamente l analisi dei vari modelli dei dati, cercando di evidenziarne il campo di applicazione e i parametri di valutazione per un eventuale adozione all interno dei propri progetti. Una nota a parte va per quei vendor, tradizionalmente considerati relazionali che, già da diversi anni ormai, propongono soluzioni innovative. Fra questi possiamo citare alcuni giganti come Oracle (Oracle XML DB [6]), IBM (NoSQL Support for DB2 [5]) ma anche progetti open source (PostgreSQL Hstore [4]). Questi prodotti in generale meno utilizzati rispetto agli engine relazionali dei rispettivi produttori e, in ogni caso, cercano di essere associati al movimento NoSQL per ovvi motivi di visibilità commerciale Categorie di modelli di dati Possiamo identificare due macro-categorie: modelli aggregate-oriented: Key-Value store (2.1.2); Column-Family (2.1.3); Document (2.1.4); modelli a Grafo (2.1.5). L aggregato (Aggregate) è un concetto fondamentale del Domain-Driven Design [2]; rappresenta una collezione di oggetti, raggruppati al di sotto di un entità radice, che 5

12 2. Caratteristiche dei database NoSQL è possibile trattare come un oggetto unico, e le cui singole parti non sono separabili. Questo concetto è applicato, nei database del primo gruppo, in vari modi e a vari livelli di complessità; ciò, se da un lato complica ulteriormente il confronto fra prodotti, dall altro amplia il paniere delle soluzioni di persistenza a disposizione delle applicazioni. Vedremo ora in dettaglio i vari modelli di dati. È importante sottolineare che qui e nel resto della pubblicazione i prodotti citati come esempio sono solo un piccolo sottoinsieme di quelli effettivamente esistenti, e che la presente ricerca non ha pretese di esaustività Modello di dati key-value La caratteristica principale di questo modello è sicuramente la semplicità delle strutture dati, che sono sono appiattite in coppie chiave-valore 1. In sostanza l utilizzatore vede la base dati come una grossa hash table contenente oggetti di vario tipo (principalmente valori primitivi come numeri o stringhe), accessibili per chiave primaria. Questo appiattimento, in ossequio al principio fondamentale dell informatica Semplice è veloce, rende possibili altissime performance (tipicamente in lettura), facilitando al tempo stesso il lavoro di distribuzione del carico su più macchine (partizionamento o sharding) per realizzare una scalabilità quasi lineare. L indirizzamento di tipo hash infatti consente di ottenere un costo di accesso molto basso, tipicamente compreso fra O(1) (analsi ammortizzata nel caso di un fattore di riempimento non troppo elevato) e O(log(n)), dove n uguale al numero di dati presenti nello storage. Progettazione della chiave primaria In questo tipo di database la progettazione della chiave primaria è di fondamentale importanza. Il motivo è che essendo lo storage basato su indirizzamento diretto (chiavi hash) non permette l esecuzione efficiente di ricerche e ordinamenti. Molti Key-Value store ormai permettono la creazione di indici secondari (tramite B+Tree o loro varianti) e full-text, ma ciò è deleterio per le performance (soprattutto in scrittura), senza contare che complica la gestione di sharding e clustering, oltre che della consistenza. La documentazione di Riak ( Secondary Indexes in Riak [14]) presenta questa relativamente nuova caratteristica, rivelando alcuni dettagli implementativi e spiegando le difficoltà (soprattutto a livello teorico) da superare per ottenere il giusto equilibrio fra funzionalità, semplicità d uso e affidabilità. Un introduzione più pratica è invece fornita dalla presentazione Querying Riak Just Got Easier di Rusty Klophaus [15]. Il modo migliore per sfruttare al massimo le performance di questi prodotti rimane dunque conoscere in anticipo le chiavi che si intendono utilizzare, eventualmente utilizzando chiavi naturali o meccanismi distribuiti come UUID (Universally Unique Identifier), che permettono di non dover dipendere da un autorità centrale per la generazione delle stesse. In figura 2.1 vediamo come esempio il database di un agenzia di viaggi. 1è possibile inserire un oggetto strutturato serializzandolo (JSON, XML, binario, ecc.), ma comunque il Key-Value store lo vedrà come un corpus unico, un aggregato appunto 6

13 2.1. Classificazione in base al modello dei dati Figura 2.1.: Esempio di contenuti Key-Value Persistenza dei dati Una delle principali differenze fra le varie implementazioni è data dalle caratteristiche di Durabilità (Durability). Molti Key-Value store infatti sono nati molto tempo fa, ma venivano chiamati con nomi come cache applicative o acceleratori di applicazioni, avevano dunque (e hanno ancora) un unico scopo: conservare in memoria primaria (RAM) i dati acceduti più spesso o poco variabili. Molte implementazioni quindi non salvano, per scelta, i dati in memoria secondaria 2 (disco), che quindi non sopravviverebbero ad un crash del processo. Analizzeremo più in dettaglio questo aspetto nel paragrafo Alcuni esempi di Key-Value store: implementazioni cache-only o volatili: EHCache[7], Memcached[8], Redis[9]; implementazioni persistenti, ovvero che salvano i dati fisicamente in memoria secondaria (dischi o altro): Amazon SimpleDB[10], Berkley DB[11], EHCache, MemcacheDB[12], Redis, Riak[13]. Come si può notare, alcuni elementi compaiono più volte. Redis, ad esempio, è usato principalmente come database RAM-only, ma ha la possibilità di sincronizzare i dati su disco in vari modi, con diverse garanzie di affidabilità. Anche EHCache utilizza la persistenza come meccanismo di failover ma, data la sua vocazione di cache applicativa (come si evince dal nome), è principalmente utilizzata come strumento di ottimizzazione dopo un restart dell applicazione 3. 2 ignorando volutamente gli inevitabili meccanismi di paging della memoria, forniti in maniera trasparente dal sistema operativo. 3 in sostanza evita di dover ricaricare tutti i dati nella cache dal database vero 7

14 2. Caratteristiche dei database NoSQL Campi di applicazione Abbiamo visto come il campo di applicazione più ovvio per i Key-Value store sia come cache applicativa, ad esempio per memorizzare sessioni web o carrelli della spesa. Le loro possibilità però non finiscono qui; sempre più spesso infatti vengono utilizzati come motore di storage per le applicazioni cosiddette BigData, ovvero calcolo massicciamente parallelo e di grandi dimensioni, vedi ad esempio Apache Hadoop[16]. Fondamentale in questi sistemi è il supporto a computazioni che seguono il pattern MapReduce[17] il cui partner ideale è proprio un database semplice / poco strutturato, dalle performance alte e costanti, distribuito, affidabile. Tutte caratteristiche che il modello Key-value soddisfa in pieno Modello di dati Column Family Questo modello può essere visto come un evoluzione del Key-Value store, i dati infatti vengono organizzati ancora come una hash table, ma utilizzando generalmente due o più livelli di indicizzazione. Il nome Column Family deriva dal fatto che la chiave più esterna, detta row key perché identifica l aggregato (più o meno l equivalente di una riga di una tabella relazionale), mappa a sua volta una tupla costituita dalle colonne dell aggregato stesso. In un certo senso è come se le tabelle crescessero orizzontalmente (nel senso delle colonne) invece che verticalmente (righe). Alcuni esempi di Column-Family store sono Cassandra[18] e HBase[19]. Una grande spinta alla ricerca sui database column-oriented è stata data dall articolo [20]. Standard Column Family Store Il modello che abbiamo descritto nel paragrafo precedente è alla base dei Column-Family store e prende il nome di Standard Column Family. In figura 2.2 possiamo vedere com è strutturato. Alcune osservazioni importanti sulla struttura dei dati: come per i Key-Value store, i valori possono essere stringhe o, se l implementazione lo permette, altri tipi di dati primitivi; ogni aggregato può avere un qualsiasi insieme di attributi; non c è uno schema formale, ovvero una specifica che elenchi gli attributi obbligatori e il loro tipo. Super Column Family Store Un estensione dello Standard Column Family Store è rappresentato dal Super Column Family Store. Questo modello semplicemente aggiunge un ulteriore livello di indicizzazione fra la row key e l insieme delle colonne, la cosiddetta super column. Questa chiave viene utilizzata per raggruppare attributi correlati fra di loro, appartenenti allo stesso aggregato, si potrebbe quindi considerare alla stregua di un insieme di view su più tabelle in un database relazionale. Questa organizzazione ha vari vantaggi: 8

15 2.1. Classificazione in base al modello dei dati Figura 2.2.: Standard Column Family Store permette di avere una base dati più ordinata e facilmente utilizzabile dalle applicazioni; facilita l implementazione di strategie di partizionamento (sharding) efficienti; come succede per i tablespace nel mondo relazionale, facilita la gestione di aspetti come sicurezza e affidabilità, suddividendo la base dati in segmenti più piccoli e maneggevoli. In figura 2.3 possiamo vedere una rappresentazione di questo modello. Vantaggi rispetto a Key-Value store La struttura a più livelli dei Column-Family store consente di realizzare funzioni di ricerca più avanzate rispetto a Key-Value, perché la suddivisione fisica dei dati si presta facilmente all indicizzazione e al partizionamento dei dati. Campi di applicazione Anche il modello Column-Family ha grande successo nel campo BigData, potendo fornire un modello logico più organizzato e flessibilie. Inoltre, proprio per la sua maggiore adattabilità a modelli di dati ricchi, è sempre più spesso utilizzato al posto del modello 9

16 2. Caratteristiche dei database NoSQL Figura 2.3.: Super Column Family Store relazionale in campi come: siti web ad alto traffico, web service, come backend di applicazioni mobile. Infine, grazie alla facilità con cui si possono partizionare i dati e la conseguente possibilità di ottimizzare moltissimo le scritture, spesso i Column-Family store sono utilizzati per memorizzare log applicativi, statistiche per analytics e monitoring, audit di vario genere Modello di dati Document Store Come il nome stesso fa intendere, i database in questa categoria gestiscono i dati utilizzando la metafora del documento. Anche in questo caso abbiamo a che fare con un aggregato ma, a differenza dei modelli visti fin ora, questo aggregato può (anzi, è la sua caratteristica principale) avere una struttura anche molto profonda, con più livelli gerarchici e raggruppamenti in collezioni di vario genere (liste, insiemi, mappe, ecc.). Quasi tutte le implementazioni permettono inoltre di inserire dei riferimenti ad altri documenti rendendoli molto simili nel funzionamento ai cosiddetti database a oggetti. Questo modo di trattare i dati è molto comodo per gli sviluppatori, i quali possono disporre di una base dati molto dinamica e agile, caratteristica di particolare aiuto durante le frenetiche fasi di sviluppo di un nuovo progetto o di un prototipo per attirare finanziatori 4. Alcuni esempi di database document store sono: MongoDB[21], CouchDB[22], Couchstore[23] e OrientDB[24]. Indici Il grande vantaggio di questo modello è che i documenti possono essere indicizzati, sia a livello di singolo attributo che creando indici composti. Il fatto che questa funzionalità 4 È curioso notare come spesso i database a documenti vengano associati al concetto di startup e di tecniche di project management della corrente Agile come Scrum, extreme Programming e Kanban. 10

17 2.1. Classificazione in base al modello dei dati sia, nell utilizzo, molto simile alla controparte del mondo relazionale, non è del tutto casuale. Gli indici infatti sono praticamente sempre realizzati tramite B+tree, gli stessi utilizzati nei database relazionali; ciò permette di avere le stesse possibilità: ricerche di egualità; ordinamento e ricerche per intervalli (range queries); indici su più attributi; riferimenti ad altri documenti (operazione simile alla JOIN ). Ruolo di Javascript e JSON Di grande importanza per lo sviluppo e la diffusione dei database NoSQL, in particolare per i Document store, è stata la scelta di utilizzare il formato dei dati JSON [25] per l interazione con le applicazioni, se non addirittura Javascript stesso 5 come linguaggio di programmazione all interno del database (MongoDB [21], CouchDB [22]). Sia Javascript che JSON sono particolarmente apprezzati dagli sviluppatori di web application interattive (il cosiddetto Web 2.0 ); il formato JSON in particolare sta prendendo il posto di XML nell ambito dei web service, per svariati motivi: sintassi più succinta rispetto a XML/SOAP; semplicità d uso delle varie librerie, disponibili praticamente per qualsiasi linguaggio di programmazione (non solo Javascript); minore formalità nella definizione dei formati di interscambio dati; possibilità di invocare i web service direttamente da applicazioni Javascript che risiedono nel browser dell utente, scavalcando il middleware. Tutte queste caratteristiche però diminuiscono il controllo (schema dei dati) e la prevedibilità (evoluzione del formato dei messaggi) dei servizi, rendendo JSON meno appetibile in ambito enterprise e di integrazione di sistemi complessi o mission-critical, dove XML/SOAP continua ad essere il protocollo più utilizzato. Un esempio di integrazione molto spinta è Node.js[26], una piattaforma basata sul motore Javascript V8 di Chrome[27], molto utilizzata accoppiata a Document store come MongoDB o CouchDB. Il vantaggio di questa configurazione è che, utilizzando Javascript per tutto lo stack applicativo (dalle pagine web, alle chiamate AJAX, al database), permette a piccoli team di lavorare efficacemente su tutte le parti dell applicazione, favorendo imprese agili e dinamiche. Ecco un esempio di documento JSON relativo ad un ipotetico ordine per un applicazione di e-commerce: 5 JSON è un sottoinsieme molto ridotto di Javascript, limitato alla definizione di oggetti in modo letterale. 11

18 2. Caratteristiche dei database NoSQL { } "_id": "d de-4308-abf d32cb2c", "purchase_code": "akg ", "customer_id": , "ship_date": " ", "total": , "paid": true, "payment_date": " ", "currency": "EUR", "items": [ { "SKU": "ASDF ", "name": "Headphones", "price": 45.67, "color": "white" }, { "SKU": "KKGH ", "name": "Tennis table", "price": , "color": "white", "accessories": [ "tennis table bats", "green net", "surface polish" ] } ] L esempio mette in evidenza vari aspetti: semplicità della sintassi, con un ristretto insieme di tipi (stringhe, numeri, booleani). Persino le date sono inserite come stringhe 6 ; sintassi esplicita per gli array (liste ordinate); la forma gerarchica esplicita, ovvero senza l utilizzo di foreign key ma integrando direttamente (embedding) gli oggetti come figli; è comunque possibile utilizzare ID che si riferiscono ad altri documenti; la forma è molto libera da schema (schemaless), ovvero è possibile aggiungere qualsiasi attributo si ritenga necessario, eventualmente 6 molti Document store permettono l utilizzo di estensioni JSON proprietarie, vedi ad esempio come la funzione Date() di MongoDB per l inserimento di date 12

19 2.1. Classificazione in base al modello dei dati Campi di applicazione I Document Store sono molto apprezzati per la grandissima flessibilità, che permette di ottenere modelli dei dati complessi senza penalizzare le performance. Per questo motivo sono molto utilizzati per la realizzazione di siti web, e-commerce, gestione documentale, web service, giochi multiplayer massivi Modello di dati a Grafo Questo modello dei dati è utilizzato per memorizzare strutture a grafo diretto e sta acquisendo molta importanza grazie ai moltissimi ambiti di utilizzo. Una struttura dati complessa In figura2.4 abbiamo un grafo che illustra alcune relazioni possibili in un gruppo di persone. Figura 2.4.: Esempio di grafo Abbiamo: tre tipi di relazione: knows: relazione di conoscenza; lives in: relazione di località; likes: relazione di preferenza; tre tipi di entità: 13

20 2. Caratteristiche dei database NoSQL cose oggetto di preferenza (rappresentate da rettangoli); persone (rettangoli con i bordi arrotondati); città di residenza (esagoni); Anche a partire da una configurazione semplice come questa emerge la notevole complessità delle strutture da memorizzare, nonché del loro potenziale di crescita esplosivo. Gestione degli indici Volendo memorizzare una struttura a grafo in un database relazionale o aggregateoriented è necessario creare una struttura simile: un entità VERTICES per i vertici: ID del vertice; varie colonne per le informazioni contenute nel vertice (nome, ecc.); un entità EDGES per gli archi: ID dell arco; VERTEX FROM : ID del vertice di partenza; VERTEX TO: ID del vertice di destinazione; informazioni aggiuntive sulla relazione fra i due vertici. indici aggiuntivi: indice su EDGES.VERTEX FROM ; indice su EDGES.VERTEX TO. Ecco una possibile implementazione in SQL 7 : 1 create table VERTICES ( 2 ID integer primary key, 3 NAME varchar(16) not null 4 ); 5 6 create table EDGES ( 7 ID integer primary key, 8 NAME varchar(16) not null, 9 VERTEX_FROM integer not null references VERTICES(id), 10 VERTEX_TO integer not null references VERTICES(id) 11 ); create index VERTEX_FROM on EDGES(VERTEX_FROM); 14 create index VERTEX_TO on EDGES(VERTEX_TO); 7 L esempio è stato verificato con PostgreSQL 14

21 2.1. Classificazione in base al modello dei dati Gli indici su EDGES.VERTEX FROM e EDGES.VERTEX TO (righe 13-14) sono di fondamentale importanza per ottenere delle performance accettabili durante l esplorazione del grafo, e sono solitamente implementati tramite B-Tree, B+Tree o indici Hash. Questo approccio però, benché corretto, risente di un grave problema: all aumentare delle righe (soprattutto sulla tabella dei vertici) il costo in lettura aumenta sensibilmente. La complessità di una lettura tramite indice B-Tree infatti è dell ordine di O(log(n)), con n = numero totale di vertici del grafo. Per esaminare gli M archi in uscita dal vertice di partenza abbiamo quindi un costo computazionale C di C = O(M log(n)) Usare indici di tipo Hash in teoria potrebbe dare prestazioni migliori, perché sono progettati per avere una complessità (secondo l analisi ammortizzata) di O(1) (costante), inoltre sono da utilizzare solo per interrogazioni di egualità 8. Quindi, in teoria, potrebbero consentire di scorrere tutti gli M archi in uscita con un tempo O(M). Purtroppo però le prestazioni di queste strutture degradano all aumentare della quantità di dati memorizzati, degenerando in strutture ad albero (o, peggio, lineari). Aumentando il fattore aumentano anche le collisioni della funzione hash, ottenendo quindi le stesse prestazioni dei B-Tree. I Graph database offrono una soluzione diversa. Per ottenere un tempo di lettura costante, ogni singolo vertice ha un indice degli archi in uscita, utilizzando la tecnica denominata Index-free adjacency. Poiché il numero M di archi uscenti da un vertice è (solitamente) molto minore del numero totale di archi del grafo, utilizzare questa struttura permette di scorrere tutti gli M archi in uscita da un vertice con un tempo (sempre in analisi ammortizzata) di C = O(M) Ciò significa che le dimensioni globali del database non influiscono più sulle prestazioni a livello locale, rendendo possibile l analisi di grafi di dimensioni difficilmente gestibili con indici globali. Campi di applicazione I Graph database permettono di estrarre, in tempi ragionevoli e in maniera molto elegante, dati di grandissimo valore: classificazione tramite algoritmi di vicinanza e clustering; analisi di flussi di vario genere: navigazione in siti web e in social network, ecologia, urbanistica, ecc. profilazione degli utenti e suggerimenti per amicizie o acquisti. 8 Nel nostro caso, si cerca la riga di EDGES con un certo valore di VERTEX FROM oppure VERTEX TO 15

22 2. Caratteristiche dei database NoSQL Per questo motivo sono sempre più indispensabili quando si renda necessario un analisi delle relazioni fra i dati, più che i dati stessi. Alcuni esempi di Graph Database: OrientDB [24]; Neo4j [28] Modelli di distribuzione, consistenza dei dati e CAP Theorem Quasi tutti i database NoSQL, a parziale eccezione dei Graph database, sono stati progettati sin dal principio per funzionare da subito in modalità distribuita, ovvero su più server. Ciò implica tutta una serie di vantaggi, ma anche di rinunce, come vedremo Modelli di distribuzione Single Server Questa modalità è la più semplice, nonché la meno problematica. Con un solo server di database infatti, gli unici problemi da risolvere sono relativi alla gestione dei conflitti in lettura e scrittura fra i vari client Replicazione La replicazione dei dati è uno stratagemma utilizzato con diversi scopi. Il primo è che, distribuendo gli stessi dati su più server, aumenta la disponibilità degli stessi e l affidabilità dell insieme. Se un nodo cade, infatti, ci sono gli altri che possono sostituirlo mentre viene riparato e rimesso online. Il secondo scopo è di migliorare le performance in lettura. Avere molti nodi con gli stessi dati permette una parallelizzazione praticamente lineare delle letture, che possono essere distribuite in modo del tutto trasparente ai client. Inoltre, sfruttando il principio di località dei dati, è possibile erogare i dati dal nodo più vicino al client che li ha richiesti, migliorando tempi di risposta e velocità di trasferimento, alleggerendo al contempo il traffico globale dell infrastruttura Sharding Questa modalità è la più complessa, prevede infatti il partizionamento dei dati in base a vari criteri sui vari nodi, mantenendo gli stessi vantaggi della replicazione (affidabilità, prestazioni in lettura) e aggiungendone di nuovi. Il principale vantaggio dello sharding è che, per come è utilizzato nei database aggregateoriented, ha un effetto positivo anche sulle scritture, oltre che sulle letture. I dati inviati 16

23 2.4. CAP Theorem dai client infatti vengono scritti sul primo nodo disponibile, con tempi di risposta simili alla modalità single server CAP Theorem Questo teorema, proposto per la prima volta da Eric Brewer [29] nel 2000, afferma che un sistema distribuito può fornire solo contemporaneamente solo due fra le seguenti garanzie: Consistency (Consistenza): tutti i nodi vedono gli stessi dati nello stesso momento; Availability (Disponibilità): il sistema risponde a tutte le richieste; Partition tolerance (Tolleranza al Partizionamento): il sistema continua ad operare anche se alcune sue parti rimangono isolate dalle altre in modo arbitrario (ovvero se il grafo che rappresenta il sistema è disconnesso). In verità, poiché si sta trattando di sistemi distribuiti, è praticamente impossibile garantire un tolleranza completa al partizionamento, perché è sempre possibile che il collegamento fra due nodi venga meno. La scelta da compiere, dunque, si riduce a: rinunciare alla consistenza in favore della disponibilità; rinunciare alla disponibilità in favore della consistenza. Questa scelta, come osservato in [1], non è binaria ( tutto o niente ), ma sono possibili varie sfumature. È possibile rinunciare ad un po di consistenza per poter avere un sistema sempre disponibile, ovvero che sia in grado di dare sempre una risposta (anche se magari utilizzando dati non aggiornati), e viceversa Rilassamento La strategia più utilizzata dai database NoSQL è tutto il contrario di quanto fatto dai database relazionali fin ora, ovvero viene proposto un rilassamento dei requisiti ACID: Atomicity, Consistency, Isolation, e Durability (Atomicità, Consistenza, Isolamento e Durabilità). Vediamo in dettaglio come viene applicato questo rilassamento Rilassamento di Atomicità e Isolamento Uno degli argomenti più forti contro i database NoSQL è il limitato supporto alle transazioni, praticamente tutti i database di tipo aggregate-oriented infatti le gestiscono solamente a livello di singolo aggregato: singolo dato nel caso dei Key-Value o dei Column-Family store, documento nei Document store. Questa rinuncia, molto forte e molto criticata, è ovviamente dettata dalla necessità di avere tempi di risposta molto 9 Vedremo come ciò sia possibile nel paragrafo dedicato alla cosiddetta Eventual Consistency (2.5.3) 17

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

B.P.S. Business Process Server ALLEGATO C10

B.P.S. Business Process Server ALLEGATO C10 B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato Intalio Convegno Open Source per la Pubblica Amministrazione Leader nei Sistemi Open Source per il Business Process Management Navacchio 4 Dicembre 2008 Andrea Calcagno Amministratore Delegato 20081129-1

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci a settimana

Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci a settimana Storie di successo Microsoft per le Imprese Scenario: Software e Development Settore: Servizi In collaborazione con Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

L evoluzione del software per l azienda moderna. Gestirsi / Capirsi / Migliorarsi

L evoluzione del software per l azienda moderna. Gestirsi / Capirsi / Migliorarsi IL GESTIONALE DEL FUTURO L evoluzione del software per l azienda moderna Gestirsi / Capirsi / Migliorarsi IL MERCATO ITALIANO L Italia è rappresentata da un numero elevato di piccole e medie aziende che

Dettagli

Elaidon Web Solutions

Elaidon Web Solutions Elaidon Web Solutions Realizzazione siti web e pubblicità sui motori di ricerca Consulente Lorenzo Stefano Piscioli Via Siena, 6 21040 Gerenzano (VA) Telefono +39 02 96 48 10 35 elaidonwebsolutions@gmail.com

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Gestione delle Architetture e dei Servizi IT con ADOit. Un Prodotto della Suite BOC Management Office

Gestione delle Architetture e dei Servizi IT con ADOit. Un Prodotto della Suite BOC Management Office Gestione delle Architetture e dei Servizi IT con ADOit Un Prodotto della Suite BOC Management Office Controllo Globale e Permanente delle Architetture IT Aziendali e dei Processi IT: IT-Governance Definire

Dettagli

Cos è l Ingegneria del Software?

Cos è l Ingegneria del Software? Cos è l Ingegneria del Software? Corpus di metodologie e tecniche per la produzione di sistemi software. L ingegneria del software è la disciplina tecnologica e gestionale che riguarda la produzione sistematica

Dettagli

Piazza delle Imprese alimentari. Viale delle Manifatture. Via della Produzione

Piazza delle Imprese alimentari. Viale delle Manifatture. Via della Produzione Piazza delle Imprese alimentari Viale delle Manifatture Via della Produzione PASSEPARTOUT MEXAL è una soluzione gestionale potente e completa per le imprese che necessitano di un prodotto estremamente

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Business Process Management

Business Process Management Corso di Certificazione in Business Process Management Progetto Didattico 2015 con la supervisione scientifica del Dipartimento di Informatica Università degli Studi di Torino Responsabile scientifico

Dettagli

Sizing di un infrastruttura server con VMware

Sizing di un infrastruttura server con VMware Sizing di un infrastruttura server con VMware v1.1 Matteo Cappelli Vediamo una serie di best practices per progettare e dimensionare un infrastruttura di server virtuali con VMware vsphere 5.0. Innanzitutto

Dettagli

CA RC/Update for DB2 for z/os

CA RC/Update for DB2 for z/os SCHEDA PRODOTTO CA RC/Update for DB2 for z/os CA RC/Update for DB2 for z/os CA RC/Update for DB2 for z/os (CA RC/Update) è uno strumento di gestione di dati e oggetti DB2 che consente agli amministratori

Dettagli

Il linguaggio SQL: transazioni

Il linguaggio SQL: transazioni Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 4.8.SQL.transazioni.pdf Cos è una transazione? Una transazione è un unità logica di elaborazione che corrisponde a una serie di

Dettagli

Energy Data Management System (EDMS): la soluzione software per una gestione efficiente dell energia secondo lo standard ISO 50001

Energy Data Management System (EDMS): la soluzione software per una gestione efficiente dell energia secondo lo standard ISO 50001 Energy Data Management System (EDMS): la soluzione software per una gestione efficiente dell energia secondo lo standard ISO 50001 Oggi più che mai, le aziende italiane sentono la necessità di raccogliere,

Dettagli

Architettura dei Calcolatori

Architettura dei Calcolatori Architettura dei Calcolatori Sistema di memoria parte prima Ing. dell Automazione A.A. 2011/12 Gabriele Cecchetti Sistema di memoria parte prima Sommario: Banco di registri Generalità sulla memoria Tecnologie

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Profilo Aziendale ISO 9001: 2008. METISOFT spa - p.iva 00702470675 - www.metisoft.it - info@metisoft.it

Profilo Aziendale ISO 9001: 2008. METISOFT spa - p.iva 00702470675 - www.metisoft.it - info@metisoft.it ISO 9001: 2008 Profilo Aziendale METISOFT spa - p.iva 00702470675 - www.metisoft.it - info@metisoft.it Sede legale: * Viale Brodolini, 117-60044 - Fabriano (AN) - Tel. 0732.251856 Sede amministrativa:

Dettagli

Rational Asset Manager, versione 7.1

Rational Asset Manager, versione 7.1 Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Note Prima di utilizzare queste informazioni e il prodotto

Dettagli

RedDot Content Management Server Content Management Server Non sottovalutate il potenziale della comunicazione online: usatela! RedDot CMS vi permette di... Implementare, gestire ed estendere progetti

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

Indicizzazione terza parte e modello booleano

Indicizzazione terza parte e modello booleano Reperimento dell informazione (IR) - aa 2014-2015 Indicizzazione terza parte e modello booleano Gruppo di ricerca su Sistemi di Gestione delle Informazioni (IMS) Dipartimento di Ingegneria dell Informazione

Dettagli

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO Francesco Marchione e Dario Richichi Istituto Nazionale di Geofisica e Vulcanologia Sezione di Palermo Indice Introduzione...

Dettagli

FORM Il sistema informativo di gestione della modulistica elettronica.

FORM Il sistema informativo di gestione della modulistica elettronica. Studio FORM FORM Il sistema informativo di gestione della modulistica elettronica. We believe in what we create This is FORM power La soluzione FORM permette di realizzare qualsiasi documento in formato

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

Guida alle offerte di finanziamento per le medie imprese

Guida alle offerte di finanziamento per le medie imprese IBM Global Financing Guida alle offerte di finanziamento per le medie imprese Realizzata da IBM Global Financing ibm.com/financing/it Guida alle offerte di finanziamento per le medie imprese La gestione

Dettagli

Plesk Automation. Parallels. Domande tecniche più frequenti

Plesk Automation. Parallels. Domande tecniche più frequenti Parallels Plesk Automation Primo trimestre, 2013 Domande tecniche più frequenti Questo documento ha come scopo quello di rispondere alle domande tecniche che possono sorgere quando si installa e si utilizza

Dettagli

IBM Cognos 8 BI Midmarket Reporting Packages Per soddisfare tutte le vostre esigenze di reporting restando nel budget

IBM Cognos 8 BI Midmarket Reporting Packages Per soddisfare tutte le vostre esigenze di reporting restando nel budget Data Sheet IBM Cognos 8 BI Midmarket Reporting Packages Per soddisfare tutte le vostre esigenze di reporting restando nel budget Panoramica Le medie aziende devono migliorare nettamente le loro capacità

Dettagli

Relazione sul data warehouse e sul data mining

Relazione sul data warehouse e sul data mining Relazione sul data warehouse e sul data mining INTRODUZIONE Inquadrando il sistema informativo aziendale automatizzato come costituito dall insieme delle risorse messe a disposizione della tecnologia,

Dettagli

***** Il software IBM e semplice *****

***** Il software IBM e semplice ***** Il IBM e semplice ***** ***** Tutto quello che hai sempre voluto sapere sui prodotti IBM per qualificare i potenziali clienti, sensibilizzarli sulle nostre offerte e riuscire a convincerli. WebSphere IL

Dettagli

Utilizzato con successo nei più svariati settori aziendali, con Passepartout Mexal BP ogni utente può disporre di funzionalità

Utilizzato con successo nei più svariati settori aziendali, con Passepartout Mexal BP ogni utente può disporre di funzionalità PASSEPARTOUT MEXAL BP è una soluzione gestionale potente e completa per le imprese che necessitano di un prodotto estremamente flessibile, sia dal punto di vista tecnologico sia funzionale. Con più di

Dettagli

Dal modello concettuale al modello logico

Dal modello concettuale al modello logico Dal modello concettuale al modello logico Traduzione dal modello Entita - Associazione al modello Relazionale Ciclo di sviluppo di una base di dati (da parte dell utente) Analisi dello scenario Modello

Dettagli

Utilizzato con successo nei più svariati settori aziendali, Passepartout Mexal BP è disponibile in diverse versioni e configurazioni:

Utilizzato con successo nei più svariati settori aziendali, Passepartout Mexal BP è disponibile in diverse versioni e configurazioni: Passepartout Mexal BP è una soluzione gestionale potente e completa per le imprese che necessitano di un prodotto estremamente flessibile, sia dal punto di vista tecnologico sia funzionale. Con più di

Dettagli

OpenStreetMap a servizio della Pubblica Amministrazione: l'esperienza di B.U.NE.T. (Bicycle Urban NEtwork in Torino)

OpenStreetMap a servizio della Pubblica Amministrazione: l'esperienza di B.U.NE.T. (Bicycle Urban NEtwork in Torino) OpenStreetMap a servizio della Pubblica Amministrazione: l'esperienza di B.U.NE.T. (Bicycle Urban NEtwork in Torino) Mappathon, 9 Aprile 2015 Relatore: Danilo Botta, Project Manager, 5T S.r.l. La genesi

Dettagli

PLM Software. Answers for industry. Siemens PLM Software

PLM Software. Answers for industry. Siemens PLM Software Siemens PLM Software Monitoraggio e reporting delle prestazioni di prodotti e programmi Sfruttare le funzionalità di reporting e analisi delle soluzioni PLM per gestire in modo più efficace i complessi

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE Oracle Business Intelligence Standard Edition One è una soluzione BI completa, integrata destinata alle piccole e medie imprese.oracle

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

Business Intelligence

Business Intelligence aggregazione dati Business Intelligence analytic applications query d a t a w a r e h o u s e aggregazione budget sales inquiry data mining Decision Support Systems MIS ERP data management Data Modeling

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni Prestazioni:

Dettagli

Installazione di GFI Network Server Monitor

Installazione di GFI Network Server Monitor Installazione di GFI Network Server Monitor Requisiti di sistema I computer che eseguono GFI Network Server Monitor richiedono: i sistemi operativi Windows 2000 (SP4 o superiore), 2003 o XP Pro Windows

Dettagli

white paper La Process Intelligence migliora le prestazioni operative del settore assicurativo

white paper La Process Intelligence migliora le prestazioni operative del settore assicurativo white paper La Process Intelligence migliora le prestazioni operative del settore assicurativo White paper La Process Intelligence migliora le prestazioni operative del settore assicurativo Pagina 2 Sintesi

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Il Business Process Management: nuova via verso la competitività aziendale

Il Business Process Management: nuova via verso la competitività aziendale Il Business Process Management: nuova via verso la competitività Renata Bortolin Che cosa significa Business Process Management? In che cosa si distingue dal Business Process Reingeneering? Cosa ha a che

Dettagli

IT FINANCIAL MANAGEMENT

IT FINANCIAL MANAGEMENT IT FINANCIAL MANAGEMENT L IT Financial Management è una disciplina per la pianificazione e il controllo economico-finanziario, di carattere sia strategico sia operativo, basata su un ampio insieme di metodologie

Dettagli

Milano, Settembre 2009 BIOSS Consulting

Milano, Settembre 2009 BIOSS Consulting Milano, Settembre 2009 BIOSS Consulting Presentazione della società Agenda Chi siamo 3 Cosa facciamo 4-13 San Donato Milanese, 26 maggio 2008 Come lo facciamo 14-20 Case Studies 21-28 Prodotti utilizzati

Dettagli

Ing. Andrea Saccà. Stato civile: Celibe Nazionalità: Italiana Data di nascita: 9 Ottobre 1978 Luogo di nascita: Roma Residenza: Roma

Ing. Andrea Saccà. Stato civile: Celibe Nazionalità: Italiana Data di nascita: 9 Ottobre 1978 Luogo di nascita: Roma Residenza: Roma Indirizzo: Via dell'automobilismo, 109 00142 Roma (RM) Sito Web : http://www.andreasacca.com Telefono: 3776855061 Email : sacca.andrea@gmail.com PEC : andrea.sacca@pec.ording.roma.it Ing. Andrea Saccà

Dettagli

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi. 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

Dettagli

Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE

Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE Programma Enti Locali Innovazione di Sistema Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE 1 Premessa Il presente documento ha lo scopo di facilitare la disseminazione e il riuso

Dettagli

White Paper. Operational DashBoard. per una Business Intelligence. in real-time

White Paper. Operational DashBoard. per una Business Intelligence. in real-time White Paper Operational DashBoard per una Business Intelligence in real-time Settembre 2011 www.axiante.com A Paper Published by Axiante CAMBIARE LE TRADIZIONI C'è stato un tempo in cui la Business Intelligence

Dettagli

Supporto alle decisioni e strategie commerciali/mercati/prodotti/forza vendita;

Supporto alle decisioni e strategie commerciali/mercati/prodotti/forza vendita; .netbin. è un potentissimo strumento SVILUPPATO DA GIEMME INFORMATICA di analisi dei dati con esposizione dei dati in forma numerica e grafica con un interfaccia visuale di facile utilizzo, organizzata

Dettagli

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione Text mining ed analisi di dati codificati in linguaggio naturale Analisi esplorative di dati testualilezione 2 Le principali tecniche di analisi testuale Facendo riferimento alle tecniche di data mining,

Dettagli

PUBLIC, PRIVATE O HYBRID CLOUD: QUAL È IL TIPO DI CLOUD OTTIMALE PER LE TUE APPLICAZIONI?

PUBLIC, PRIVATE O HYBRID CLOUD: QUAL È IL TIPO DI CLOUD OTTIMALE PER LE TUE APPLICAZIONI? PUBLIC, PRIVATE O HYBRID CLOUD: QUAL È IL TIPO DI CLOUD OTTIMALE PER LE TUE APPLICAZIONI? Le offerte di public cloud proliferano e il private cloud è sempre più diffuso. La questione ora è come sfruttare

Dettagli

Guida al backup. 1. Introduzione al backup. Backup dei dati una parte necessaria nella gestione dei rischi. Backup su nastro media ideale

Guida al backup. 1. Introduzione al backup. Backup dei dati una parte necessaria nella gestione dei rischi. Backup su nastro media ideale 1. Introduzione al backup Guida al backup Backup dei dati una parte necessaria nella gestione dei rischi Con l aumentare dei rischi associati a virus, attacchi informatici e rotture hardware, implementare

Dettagli

SIASFi: il sistema ed il suo sviluppo

SIASFi: il sistema ed il suo sviluppo SIASFI: IL SISTEMA ED IL SUO SVILUPPO 187 SIASFi: il sistema ed il suo sviluppo Antonio Ronca Il progetto SIASFi nasce dall esperienza maturata da parte dell Archivio di Stato di Firenze nella gestione

Dettagli

Business Intelligence. Il data mining in

Business Intelligence. Il data mining in Business Intelligence Il data mining in L'analisi matematica per dedurre schemi e tendenze dai dati storici esistenti. Revenue Management. Previsioni di occupazione. Marketing. Mail diretto a clienti specifici.

Dettagli

DNS (Domain Name System) Gruppo Linux

DNS (Domain Name System) Gruppo Linux DNS (Domain Name System) Gruppo Linux Luca Sozio Matteo Giordano Vincenzo Sgaramella Enrico Palmerini DNS (Domain Name System) Ci sono due modi per identificare un host nella rete: - Attraverso un hostname

Dettagli

MyMedia Portal LMS un servizio SaaS di e-learning basato sul Video Streaming per la vendita on line di Lezioni Multimediali interattive

MyMedia Portal LMS un servizio SaaS di e-learning basato sul Video Streaming per la vendita on line di Lezioni Multimediali interattive 1 MyMedia Portal LMS un servizio SaaS di e-learning basato sul Video Streaming per la vendita on line di Lezioni Multimediali interattive Cos è un servizio di e-learning SaaS, multimediale, interattivo

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

IT-BOOK. Domini Hosting Web marketing E-mail e PEC

IT-BOOK. Domini Hosting Web marketing E-mail e PEC 5 giugno 09 IT-BOOK Configurazioni e cartatteristiche tecniche possono essere soggette a variazioni senza preavviso. Tutti i marchi citati sono registrati dai rispettivi proprietari. Non gettare per terra:

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi per il corso di Algoritmi e Strutture Dati 1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi

Dettagli

Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI. Indice

Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI. Indice Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI Prefazione Autori XIII XVII Capitolo 1 Sistemi informativi aziendali 1 1.1 Introduzione 1 1.2 Modello organizzativo 3 1.2.1 Sistemi informativi

Dettagli

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:!

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:! Scrum descrizione I Principi di Scrum I Valori dal Manifesto Agile Scrum è il framework Agile più noto. E la sorgente di molte delle idee che si trovano oggi nei Principi e nei Valori del Manifesto Agile,

Dettagli

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione Processi (di sviluppo del) software Fase di Analisi dei Requisiti Un processo software descrive le attività (o task) necessarie allo sviluppo di un prodotto software e come queste attività sono collegate

Dettagli

I.Stat Guida utente Versione 1.7 Dicembre 2010

I.Stat Guida utente Versione 1.7 Dicembre 2010 I.Stat Guida utente Versione 1.7 Dicembre 2010 1 Sommario INTRODUZIONE 3 I concetti principali di I.Stat 4 Organizzazione dei dati 4 Ricerca 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della lingua 7 Individuazione

Dettagli

Corso di Amministrazione di Sistema Parte I ITIL 3

Corso di Amministrazione di Sistema Parte I ITIL 3 Corso di Amministrazione di Sistema Parte I ITIL 3 Francesco Clabot Responsabile erogazione servizi tecnici 1 francesco.clabot@netcom-srl.it Fondamenti di ITIL per la Gestione dei Servizi Informatici Il

Dettagli

COME FRODE. la possibilità propri dati. brevissimo. Reply www.reply.eu

COME FRODE. la possibilità propri dati. brevissimo. Reply www.reply.eu FRAUD MANAGEMENT. COME IDENTIFICARE E COMB BATTERE FRODI PRIMA CHE ACCADANO LE Con una visione sia sui processi di business, sia sui sistemi, Reply è pronta ad offrire soluzioni innovative di Fraud Management,

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

REALIZZARE UN MODELLO DI IMPRESA

REALIZZARE UN MODELLO DI IMPRESA REALIZZARE UN MODELLO DI IMPRESA - organizzare e gestire l insieme delle attività, utilizzando una piattaforma per la gestione aziendale: integrata, completa, flessibile, coerente e con un grado di complessità

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Zabbix 4 Dummies. Dimitri Bellini, Zabbix Trainer Quadrata.it

Zabbix 4 Dummies. Dimitri Bellini, Zabbix Trainer Quadrata.it Zabbix 4 Dummies Dimitri Bellini, Zabbix Trainer Quadrata.it Relatore Nome: Biografia: Dimitri Bellini Decennale esperienza su sistemi operativi UX based, Storage Area Network, Array Management e tutto

Dettagli

INFORMATIVA SUI COOKIE

INFORMATIVA SUI COOKIE INFORMATIVA SUI COOKIE I Cookie sono costituiti da porzioni di codice installate all'interno del browser che assistono il Titolare nell erogazione del servizio in base alle finalità descritte. Alcune delle

Dettagli

Mettere in sicurezza l infrastruttura dei desktop virtuali con Citrix NetScaler

Mettere in sicurezza l infrastruttura dei desktop virtuali con Citrix NetScaler Mettere in sicurezza l infrastruttura dei desktop virtuali con Citrix NetScaler 2 Le aziende attuali stanno adottando rapidamente la virtualizzazione desktop quale mezzo per ridurre i costi operativi,

Dettagli

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP Università degli Studi di Pisa Facoltà di Scienze Matematiche,Fisiche e Naturali Corso di Laurea in Informatica Michela Chiucini MIB PER IL CONTROLLO DELLO STATO DI UN SERVER

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

Mobile Messaging SMS. Copyright 2015 VOLA S.p.A.

Mobile Messaging SMS. Copyright 2015 VOLA S.p.A. Mobile Messaging SMS Copyright 2015 VOLA S.p.A. INDICE Mobile Messaging SMS. 2 SMS e sistemi aziendali.. 2 Creare campagne di mobile marketing con i servizi Vola SMS.. 3 VOLASMS per inviare SMS da web..

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

La Valutazione Euristica

La Valutazione Euristica 1/38 E un metodo ispettivo di tipo discount effettuato da esperti di usabilità. Consiste nel valutare se una serie di principi di buona progettazione sono stati applicati correttamente. Si basa sull uso

Dettagli

MARKETING INTELLIGENCE SUL WEB:

MARKETING INTELLIGENCE SUL WEB: Via Durini, 23-20122 Milano (MI) Tel.+39.02.77.88.931 Fax +39.02.76.31.33.84 Piazza Marconi,15-00144 Roma Tel.+39.06.32.80.37.33 Fax +39.06.32.80.36.00 www.valuelab.it valuelab@valuelab.it MARKETING INTELLIGENCE

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli