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

Diego GUENZI Rodolfo BORASO

Diego GUENZI Rodolfo BORASO Diego GUENZI Rodolfo BORASO NOSQL Movimento che promuove una classe non ben definita di strumenti di archiviazione di dati Un nuovo modo di vedere la persistenza Si differenziano dai RDBMS: Non utilizzano

Dettagli

MongoDB. Un database NoSQL Open-Source

MongoDB. Un database NoSQL Open-Source MongoDB Un database NoSQL Open-Source Database Relazionali I dati sono divisi in tabelle. Ogni tabella è composta da diverse colonne fisse. Le tabelle possono avere riferimenti tra loro. A.C.I.D. I database

Dettagli

Linee di evoluzione dei Database

Linee di evoluzione dei Database Linee di evoluzione dei Database DB NoSQL Linked Open Data Semantic Web Esigenze e caratteristiche Presenza di grandi volumi di dati..crescenti Struttura non regolare dei dati da gestire Elementi relativamente

Dettagli

NoSQL http://nosql. nosql-database.org/ Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A.

NoSQL http://nosql. nosql-database.org/ Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web A. A. 2011-2012 NoSQL http://nosql nosql-database.org/ Eufemia TINELLI Cosa è NoSQL? 1998 il termine NoSQL è

Dettagli

SQL, NoSQL, o entrambi?

SQL, NoSQL, o entrambi? Introduzione Nella prima parte di questo corso abbiamo fatto una prima introduzione sul quando e come scegliere un database per risolvere un determinato problema. In questa parte finale vedremo attraverso

Dettagli

Cluster per architetture a componenti

Cluster per architetture a componenti Luca Cabibbo Architetture Software Cluster per architetture a componenti Dispensa ASW 442 ottobre 2014 Un buon progetto produce benefici in più aree. Trudy Benjamin 1 -Fonti [IBM] Clustering Solutions

Dettagli

Big Data. Davide Giarolo

Big Data. Davide Giarolo Big Data Davide Giarolo Definizione da Wikipedia Big data è il termine usato per descrivere una raccolta di dati così estesa in termini di volume, velocità e varietà da richiedere tecnologie e metodi analitici

Dettagli

Alla scoperta dei Graph Database

Alla scoperta dei Graph Database Alla scoperta dei Graph Database Matteo Pani 24 ottobre 2015 One size doesn t fit all Modellare le relazioni I Graph Database Il Labeled Property Graph Model I Graph-DBMS Neo4j Neo4j Internals Cypher Interagire

Dettagli

Tecnologie NoSQL: HBase

Tecnologie NoSQL: HBase Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati Tecnologie NoSQL: HBase Anno Accademico 2014/2015 Candidato: Daniela Bianco matr. N46001409

Dettagli

NOSQL Il database relazionale va in pensione,

NOSQL Il database relazionale va in pensione, Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL Il database relazionale va in pensione, avanza il movimento NOSQL RavenDB, database non relazionale, rappresentante del movimento NOSQL Sondaggio

Dettagli

Panoramica dei più diffusi NoSQL Database

Panoramica dei più diffusi NoSQL Database Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati Panoramica dei più diffusi NoSQL Database Anno Accademico 2013/2014 Candidato: Buonocore

Dettagli

Introduzione all Architettura del DBMS

Introduzione all Architettura del DBMS Introduzione all Architettura del DBMS Data Base Management System (DBMS) Un DBMS è uno strumento per la creazione e la gestione efficiente di grandi quantità di dati che consente di conservarli in modo

Dettagli

Database NoSQL: i GraphDB

Database NoSQL: i GraphDB Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati Database NoSQL: i GraphDB Anno Accademico 2013/2014 Candidato: Daniele Passaretti matr.n46/001340

Dettagli

Analisi e sperimentazione del DBMS NoSQL MongoDB: il caso di studio della Social Business Intelligence

Analisi e sperimentazione del DBMS NoSQL MongoDB: il caso di studio della Social Business Intelligence ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA CAMPUS DI CESENA SCUOLA DI SCIENZE CORSO DI LAUREA IN SCIENZE E TECNOLOGIE INFORMATICHE TITOLO DELLA RELAZIONE FINALE Analisi e sperimentazione del DBMS NoSQL

Dettagli

ERP Commercio e Servizi

ERP Commercio e Servizi ERP Commercio e Servizi Sistema informativo: una scelta strategica In questi ultimi anni hanno avuto grande affermazione nel mercato mondiale i cosiddetti sistemi software ERP. Tali sistemi sono in grado

Dettagli

Indice Prefazione... 1 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9

Indice Prefazione... 1 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9 Prefazione... 1 Contenuti... 1 Ringraziamenti... 2 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 1.1 Dichiarazione di funzioni e procedure... 3 1.2 Istruzioni PSM... 4 2 Vincoli e Trigger...

Dettagli

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE Ing. Mariano Di Claudio Lezione del 24/09/2014 Indice 1. Aspetti di Data Management CouchBase 2. Aspetti Architetturali Infrastruttura

Dettagli

POLITECNICO DI MILANO Facoltà di Ingegneria dell Informazione. Modellazione e valutazione delle prestazioni di database NoSQL

POLITECNICO DI MILANO Facoltà di Ingegneria dell Informazione. Modellazione e valutazione delle prestazioni di database NoSQL POLITECNICO DI MILANO Facoltà di Ingegneria dell Informazione Corso di Laurea Magistrale in Ingegneria Informatica Dipartimento di Elettronica, Informazione e Bioingegneria Modellazione e valutazione delle

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Big ed Open Data, nosql e..

Big ed Open Data, nosql e.. Big ed Open Data, nosql e.. Quadro d insieme Tecnologie interconnesse ed interoperanti Big Data Software Open Open Data Mobile Internet delle Cose Dispositivi indossabili Social Network e Search Metodologie

Dettagli

Architettura dei sistemi di database

Architettura dei sistemi di database 2 Architettura dei sistemi di database 1 Introduzione Come si potrà ben capire, l architettura perfetta non esiste, così come non è sensato credere che esista una sola architettura in grado di risolvere

Dettagli

NOSQL Origini e Significato. NOSQL = NO a SQL. NOSQL = Not Only SQL

NOSQL Origini e Significato. NOSQL = NO a SQL. NOSQL = Not Only SQL NOSQL NOSQL Origini e Significato NOSQL = NO a SQL NOSQL = Not Only SQL Il termine NOSQL fu introdotto da Carlo Strozzi nel 1998 per indicare il suo database relazionale open-source che non aveva una interfaccia

Dettagli

Il clustering. Sistemi Distribuiti 2002/2003

Il clustering. Sistemi Distribuiti 2002/2003 Il clustering Sistemi Distribuiti 2002/2003 Introduzione In termini generali, un cluster è un gruppo di sistemi indipendenti che funzionano come un sistema unico Un client interagisce con un cluster come

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto INTRODUZIONE AI SISTEMI DI BASI

Dettagli

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma Sistemi di gestione delle basi di dati 1 Cos è un DBMS? Una collezione integrata molto grande di dati Modella organizzazioni del mondo reale Entità (ad esempio studenti, corsi) Relazioni (ad esempio, Madonna

Dettagli

MySQL Adoption. Esperienze in ambienti mission-critical. Emilio Scalise, Senior System Engineer, Babel MySQL Tech Tour 18/02/2014

MySQL Adoption. Esperienze in ambienti mission-critical. Emilio Scalise, Senior System Engineer, Babel MySQL Tech Tour 18/02/2014 MySQL Adoption Esperienze in ambienti mission-critical Emilio Scalise, Senior System Engineer, Babel MySQL Tech Tour 18/02/2014 Babel una business unit di Par-Tec S.p.A. - P.zza S. Benedetto da Norcia

Dettagli

DB NoSQL Analisi prestazionale

DB NoSQL Analisi prestazionale DB NoSQL Analisi prestazionale 1 I database NoSQL... 2 1.1 Perché NoSQL? Il teorema di CAP e il No-SQL data model... 2 1.2 Un confronto tra le famiglie di DB NoSQL... 5 1.3 I database document-oriented

Dettagli

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati Informatica B Introduzione alle Basi di Dati e ai DBMS Contenuti Introduzione a dati e basi dati DBMS Modello dei dati Informazioni e dati Dato: elemento semanticamente significativo (data, codice, ecc.),

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

LA PROFESSIONE DEL WEB DESIGNER

LA PROFESSIONE DEL WEB DESIGNER LA PROFESSIONE DEL WEB DESIGNER Lezione 1 1 Web Design Lafiguracentralenelprogettodiunsitowebèilwebdesigner:eglisioccupadell'aspetto visivo e del coinvolgimento emotivo di siti Web business to business

Dettagli

CONFRONTO TRA DBMS RELAZIONALI, A COLONNE E NOSQL

CONFRONTO TRA DBMS RELAZIONALI, A COLONNE E NOSQL CONFRONTO TRA DBMS RELAZIONALI, A COLONNE E NOSQL Università degli Studi di Modena e Reggio Emilia Dipartimento di Ingegneria Enzo Ferrari di Modena Corso di Laurea in Ingegneria Informatica (L.270/04)

Dettagli

NoSQL: concetti generali

NoSQL: concetti generali NoSQL: concetti generali Paolo Atzeni 30/05/2011 Il solito primo lucido DataBase Management System (DBMS) Sistema che gestisce collezioni di dati: grandi persistenti condivise garantendo privatezza affidabilità

Dettagli

Indice. Ringraziamenti dell Editore

Indice. Ringraziamenti dell Editore Prefazione Autori Ringraziamenti dell Editore XVII XXI XXIII 1 Introduzione 1 1.1 Sistemi informativi, informazioni e dati 1 1.2 Basi di dati e sistemi di gestione di basi di dati 3 1.3 Modelli dei dati

Dettagli

La Document Orientation. Come implementare un interfaccia

La Document Orientation. Come implementare un interfaccia La Document Orientation Come implementare un interfaccia Per eliminare l implementazione di una interfaccia da parte di una classe o documento, occorre tirarla su di esso tenendo premuto il tasto ctrl.

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Basi di Dati Graph Database MARCO DE MASI matr. N46000365

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica  Basi di Dati Graph Database MARCO DE MASI matr. N46000365 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato finale in Basi di Dati Graph Database Anno Accademico 2012/2013 Candidato: MARCO DE MASI matr. N46000365 Indice Introduzione 4

Dettagli

Indice. settembre 2008 Il File System 2

Indice. settembre 2008 Il File System 2 Il File System Indice 4. Il File System 5. Vantaggi del FS 6. Protezione 7. Condivisione 8. I file - 1 9. I file - 2 10. Attributi dei file 11. Directory 12. Livelli di astrazione - 1 13. Livelli di astrazione

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

File System Distribuiti

File System Distribuiti File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema 20.1 Introduzione File System Distribuito

Dettagli

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema Introduzione File System Distribuito

Dettagli

Basi di Dati Distribuite

Basi di Dati Distribuite Basi di Dati Distribuite P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone (McGraw-Hill Italia) Basi di dati: architetture linee di evoluzione - seconda edizione Capitolo 3 Appunti dalle lezioni SQL come DDL

Dettagli

Database MySQL: 10 trucchi per migliorarne le performance

Database MySQL: 10 trucchi per migliorarne le performance Database MySQL: 10 trucchi per migliorarne le performance Scopriamo i segreti che molti amministratori professionisti di database usano per migliorare le performance Contenuti a cura di HostingTalk #e-commerce

Dettagli

Big Query, nosql e Big Data

Big Query, nosql e Big Data Big Query, nosql e Big Data Ma c'è veramente bisogno di gestire tutti questi dati? Immaginiamo che.. L'attuale tecnologia Database e Web Services fosse disponibile già DA ANNI Cosa cambierebbe nella Vita

Dettagli

Algoritmi per protocolli peer-to-peer

Algoritmi per protocolli peer-to-peer Algoritmi per protocolli peer-to-peer Introduzione Livio Torrero (livio.torrero@polito.it) 09/2009 Approccio client-server (1/2) Client 1 Client 3 Server Client 2 Client 4 Paradigma molto comune Un client

Dettagli

Progettazione di un sistema informativo aziendale

Progettazione di un sistema informativo aziendale Università degli Studi di Torino Corso in Sistemi Informativi Aziendali Professor M. Segnan Progettazione di un sistema informativo aziendale per un negozio online di articoli sportivi Eseguito da Giovanni

Dettagli

Applicazione: OIL Online Interactive helpdesk

Applicazione: OIL Online Interactive helpdesk Riusabilità del software - Catalogo delle applicazioni: Gestione ICT Applicazione: OIL Online Interactive helpdesk Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi

Dettagli

ARCHIVI E LORO ORGANIZZAZIONI

ARCHIVI E LORO ORGANIZZAZIONI ARCHIVI E LORO ORGANIZZAZIONI Archivio: - insieme di registrazioni (record), ciascuna costituita da un insieme prefissato di informazioni elementari dette attributi (campi) - insieme di informazioni relative

Dettagli

Veloce, economico e sicuro: rendete più agile il vostro lavoro, diminuite il TCO e migliorate la vostra sicurezza grazie alla soluzione di job

Veloce, economico e sicuro: rendete più agile il vostro lavoro, diminuite il TCO e migliorate la vostra sicurezza grazie alla soluzione di job Veloce, economico e sicuro: rendete più agile il vostro lavoro, diminuite il TCO e migliorate la vostra sicurezza grazie alla soluzione di job scheduling senza agente White paper preparato per BMC Software

Dettagli

MongoDB Analisi e prototipazione su applicazioni di Social Business Intelligence

MongoDB Analisi e prototipazione su applicazioni di Social Business Intelligence ALMA MATER STUDIORUM UNIVERSITÀ DI BOLOGNA SEDE DI CESENA FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Triennale in Scienze e Tecnologie Informatiche MongoDB Analisi e prototipazione

Dettagli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli UNIVERSITA DI FIRENZE Facoltà di Ingegneria Persistenza Applicazioni Enterprise Uso dei modelli 1 IL problema della persistenza APPLICAZIONE (programmi) (oggetti) DATI PERSISTENTI (file, record) (basi

Dettagli

Descrizione generale. Architettura del sistema

Descrizione generale. Architettura del sistema Descrizione generale Sister.Net nasce dall esigenza di avere un sistema generale di Cooperazione Applicativa tra Enti nel settore dell Informazione Geografica che consenta la realizzazione progressiva

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

Progetto Turismo Pisa. Sommario dei risultati

Progetto Turismo Pisa. Sommario dei risultati 2012 Progetto Turismo Pisa Sommario dei risultati 0 Studio realizzato per il Comune di Pisa da KddLab ISTI-CNR Pisa Sommario 1 Progetto Turismo Pisa: Sintesi dei risultati... 1 1.1 L Osservatorio Turistico

Dettagli

Studio delle principali Tecnologie No-SQL

Studio delle principali Tecnologie No-SQL Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato finale in Basi di Dati Studio delle principali Tecnologie No-SQL Anno Accademico 2010/2011 Candidato: Giovanni Trotta matr. N46/000047

Dettagli

HighWay/eXtraWay Project - Schema sintetico delle configurazioni hardware Manuale di riferimento. Generato da Doxygen 1.5.1-p1

HighWay/eXtraWay Project - Schema sintetico delle configurazioni hardware Manuale di riferimento. Generato da Doxygen 1.5.1-p1 HighWay/eXtraWay Project - Schema sintetico delle configurazioni hardware Manuale di riferimento Generato da Doxygen 1.5.1-p1 Fri Jan 4 11:10:14 2008 Indice Capitolo 1 Schema sintetico delle possibili

Dettagli

INTRODUZIONE. Motivazioni e Obbiettivi

INTRODUZIONE. Motivazioni e Obbiettivi INTRODUZIONE Motivazioni dei sistemi distribuiti Caratteristiche generali Alcuni richiami sui database centralizzati Standardizzazione dei dati (ANSI/SPARC) Funzioni dei DBMS relazionali Problematiche

Dettagli

NoSQL Databases. Massimo Carro

NoSQL Databases. Massimo Carro NoSQL Databases Massimo Carro Politecnico di Milano Piazza Leonardo da Vinci 32 20133 Milano massimo.carro@mail.polimi.it 1. Introduzione L arrivo di internet negli anni 90 ha permesso a molte aziende

Dettagli

Di seguito ci accingiamo ad analizzare le possibili configurazioni di architettura: Server singolo

Di seguito ci accingiamo ad analizzare le possibili configurazioni di architettura: Server singolo La progettazione dell architettura si concentra sulla scelta dell hardware, dell infrastruttura di rete, e dei componenti software che andranno a costituire il sistema. Gli obbiettivi tecnologici che il

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

ANALISI DELLE PERFORMANCE DEI DATABASE NON RELAZIONALI IL CASO DI STUDIO DI MONGODB

ANALISI DELLE PERFORMANCE DEI DATABASE NON RELAZIONALI IL CASO DI STUDIO DI MONGODB UNIVERSITÀ DEGLI STUDI DI PADOVA DIPARTIMENTO DI INGEGNERIA DELL INFORMAZIONE TESI DI LAUREA ANALISI DELLE PERFORMANCE DEI DATABASE NON RELAZIONALI IL CASO DI STUDIO DI MONGODB RELATORE: Ch.mo Prof. Giorgio

Dettagli

Thea PDM. Cos è Thea PDM? Il PDM (Product Data Management)

Thea PDM. Cos è Thea PDM? Il PDM (Product Data Management) Thea PDM Il PDM (Product Data Management) Nell'industria manifatturiera il PDM è un software per la raccolta ed organizzazione dei file nelle divere fasi di ideazione, progettazione, produzione ed obsolescenza

Dettagli

F.O.A.M. Free Object Access Method. Un introduzione. Documento: Introduzione FOAM.doc Versione: 0.03.2k30131 Autore: Mario Meo Colombo

F.O.A.M. Free Object Access Method. Un introduzione. Documento: Introduzione FOAM.doc Versione: 0.03.2k30131 Autore: Mario Meo Colombo F.O.A.M. Free Object Access Method Un introduzione Documento: Introduzione FOAM.doc Versione: 0.03.2k30131 Autore: Mario Meo Colombo Il protocollo FOAM. FOAM (Free Object Access Method) è un protocollo

Dettagli

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE Ing. Mariano Di Claudio Lezione del 20/10/2014 1 Indice 1. HBase e Hrider Caratteristiche chiave Modello dati Architettura Installazione

Dettagli

IRTUALW. Infinity Portal Infinite possibilità di farti raggiungere PORTAL FORNITORI CLIENTI PROTOCOLLAZIONE KNOWLEDGE BASE CLASSIFICAZIONE VERSIONING

IRTUALW. Infinity Portal Infinite possibilità di farti raggiungere PORTAL FORNITORI CLIENTI PROTOCOLLAZIONE KNOWLEDGE BASE CLASSIFICAZIONE VERSIONING I N F I N I T Y Z U C C H E T T I Infinity Portal Infinite possibilità di farti raggiungere MARKETING SALES SUPPORT CMS KNOWLEDGE BASE E COMMERCE B2B E COMMERCE B2C AD HOC INFINITY ACQUISIZIONE PROTOCOLLAZIONE

Dettagli

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque? NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui

Dettagli

Manuale di Lokalize. Nick Shaforostoff Traduzione italiana: Pino Toscano

Manuale di Lokalize. Nick Shaforostoff Traduzione italiana: Pino Toscano Nick Shaforostoff Traduzione italiana: Pino Toscano 2 Indice 1 Introduzione 5 2 Editor 6 2.1 Finestra principale..................................... 6 2.2 Barre degli strumenti....................................

Dettagli

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Corso di Informatica Generale 1 IN1. Linguaggio SQL Università Roma Tre Facoltà di Scienze M.F.N. di Laurea in Matematica di Informatica Generale 1 Linguaggio SQL Marco (liverani@mat.uniroma3.it) Sommario Prima parte: le basi dati relazionali Basi di dati:

Dettagli

1. BASI DI DATI: GENERALITÀ

1. BASI DI DATI: GENERALITÀ 1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente

Dettagli

La guida CRM per eliminare le incertezze: prendete il controllo del vostro business

La guida CRM per eliminare le incertezze: prendete il controllo del vostro business 2 La guida CRM per eliminare le incertezze: prendete il controllo del vostro business (2 - migliorate la vostra credibilità: i 5 passi per dimostrare l efficacia del Marketing) Pagina 1 di 9 SOMMARIO PREMESSA...

Dettagli

Estratto dell'agenda dell'innovazione e del Trade Bologna 2011. Speciale: I casi. Introduzione dell'area tematica IL CASO PRIMA INDUSTRIES

Estratto dell'agenda dell'innovazione e del Trade Bologna 2011. Speciale: I casi. Introduzione dell'area tematica IL CASO PRIMA INDUSTRIES Estratto dell'agenda dell'innovazione e del Trade Bologna 2011 Speciale: I casi Introduzione dell'area tematica IL CASO PRIMA INDUSTRIES Innovare e competere con le ICT: casi di successo - PARTE I Cap.8

Dettagli

Poi dissero: «Venite, costruiamoci una città e una torre, la cui cima tocchi il cielo e facciamoci un nome, per non disperderci su tutta la terra»

Poi dissero: «Venite, costruiamoci una città e una torre, la cui cima tocchi il cielo e facciamoci un nome, per non disperderci su tutta la terra» Il sistema informativo sulle professioni: passato, presente e futuro. di SOLO GLI IGNORANTI SONO SICURI DI QUELLO CHE DICONO E DI QUESTO NE SONO CERTO Tim Berners-Lee. A lui si deve il World Wide Web (termine

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File system verso DBSM Vantaggi di un DBMS Modelli dei dati Utenti

Dettagli

Implementazione del File System

Implementazione del File System Implementazione del file system Implementazione del File System Struttura del file system. Realizzazione del file system. Implementazione delle directory. Metodi di allocazione. Gestione dello spazio libero.

Dettagli

Audit per l individuazione dell errore umano

Audit per l individuazione dell errore umano 1 Audit per l individuazione dell errore umano Perchè ignoriamo la causa numero 1 dei downtime e delle violazioni di sicurezza? Un Whitepaper di Advanction e ObserveIT 2 Sommario Esecutivo Le aziende stanno

Dettagli

Introduzione ai sistemi di basi di dati

Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Alessandro.bardine@gmail.com alessandro.bardine@iet.unipi.it Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File

Dettagli

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011 Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011 2011 Docente: Gigliola Vaglini Docente laboratorio: Alessandro Lori 1 Obiettivi del corso Imparare

Dettagli

Table of Contents. Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano

Table of Contents. Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Table of Contents Definizione di Sistema Distribuito - 4 Obiettivi Principali di un S.D. - 7 Tipi di Sistemi

Dettagli

CONTENT MANAGMENT SYSTEMS

CONTENT MANAGMENT SYSTEMS CONTENT MANAGMENT SYSTEMS ESTRATTO DA: Ileana D'Incecco, Progettare la comunicazione web per organizzazioni non-profit con strumenti open source: ideazione e realizzazione del sito web della Casa delle

Dettagli

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti Istituto Angioy Informatica BASI DI DATI Prof. Ciaschetti Introduzione e prime definizioni Una Base di dati o Database è un archivio elettronico opportunamente organizzato per reperire in modo efficiente

Dettagli

"_id": "555ae00a475a9b259281b21a", "name": "Nicola Galgano", "alias": "alikon", "gender": "maschile", "work": consulente software bancario",

_id: 555ae00a475a9b259281b21a, name: Nicola Galgano, alias: alikon, gender: maschile, work: consulente software bancario, 1 } { "_id": "555ae00a475a9b259281b21a", "name": "Nicola Galgano", "alias": "alikon", "gender": "maschile", "work": consulente software bancario", "company": sto cercando ", "email": "info@alikonweb.it",

Dettagli

Indice generale. Nota dell editore...xiii. Parte I Antipattern nella progettazione logica di database 11

Indice generale. Nota dell editore...xiii. Parte I Antipattern nella progettazione logica di database 11 Indice generale Nota dell editore...xiii Capitolo 1 Introduzione...1 1.1 A chi si rivolge questo libro... 2 1.2 Contenuto del libro... 3 Struttura del libro... 3 Anatomia di un antipattern... 4 1.3 Che

Dettagli

DEFINIZIONI FONDAMENTALI

DEFINIZIONI FONDAMENTALI Consorzio per la formazione e la ricerca in Ingegneria dell'informazione DEFINIZIONI FONDAMENTALI Per vincere ci vuole una buona partenza... Docente: Cesare Colombo CEFRIEL colombo@cefriel.it http://www.cefriel.it

Dettagli

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE Ing. Mariano Di Claudio Lezione del 17/09/2014 Indice 1. Aspetti fondamentali delle tecnologie Big Data Aspetti di Data Management

Dettagli

NoSQL database: la soluzione Oracle.

NoSQL database: la soluzione Oracle. Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati NoSQL database: la soluzione Oracle. Anno Accademico 2013/2014 Candidato: Alfonso Di

Dettagli

Gestionale web. Completa autonomia del tuo sito. Un perfetto mix di tecnologia & creatività. Design la nostra passione

Gestionale web. Completa autonomia del tuo sito. Un perfetto mix di tecnologia & creatività. Design la nostra passione Agenzia creativa di design & comunicazione Gestionale web Completa autonomia del tuo sito Un perfetto mix di tecnologia & creatività Design la nostra passione Vivete l esperienza SITE con noi! A partire

Dettagli

Windows Azure. introduzione. 16 Maggio 2013. Gianni Rosa Gallina giannishub@hotmail.com. Fabrizio Accatino fhtino@gmail.com

Windows Azure. introduzione. 16 Maggio 2013. Gianni Rosa Gallina giannishub@hotmail.com. Fabrizio Accatino fhtino@gmail.com 16 Maggio 2013 Windows Azure introduzione Gianni Rosa Gallina giannishub@hotmail.com Twitter: @giannirg Blog: http://giannishub.cloudapp.net/it/ Fabrizio Accatino fhtino@gmail.com Twitter: @fhtino Sito

Dettagli

1. FINALITÀ E DEFINIZIONE DELLE SPECIFICHE TECNICHE E FUNZIONALI

1. FINALITÀ E DEFINIZIONE DELLE SPECIFICHE TECNICHE E FUNZIONALI 1. FINALITÀ E DEFINIZIONE DELLE SPECIFICHE TECNICHE E FUNZIONALI Per implementare una piattaforma di e-learning occorre considerare diversi aspetti organizzativi, gestionali e tecnici legati essenzialmente

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

Table of Contents. Definizione di Sistema Distribuito 15/03/2013

Table of Contents. Definizione di Sistema Distribuito 15/03/2013 Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Table of Contents Definizione di Sistema Distribuito - 4-7 - 13 Definizioni e Principali Caratteristiche

Dettagli

La realizzazione di WebGis con strumenti "Open Source".

La realizzazione di WebGis con strumenti Open Source. La realizzazione di WebGis con strumenti "Open Source". Esempi di impiego di strumenti a sorgente aperto per la realizzazione di un Gis con interfaccia Web Cos'è un Web Gis? Da wikipedia: Sono detti WebGIS

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

File e indici. Tecnologia delle BD: perché studiarla? Le basi di dati sono grandi e persistenti. DataBase Management System DBMS

File e indici. Tecnologia delle BD: perché studiarla? Le basi di dati sono grandi e persistenti. DataBase Management System DBMS 1 Tecnologia delle BD: perché studiarla? File e indici I DBMS offrono i loro servizi in modo "trasparente": per questo abbiamo potuto finora ignorare molti aspetti realizzativi abbiamo considerato il DBMS

Dettagli

Il software: natura e qualità

Il software: natura e qualità Sommario Il software: natura e qualità Leggere Cap. 2 Ghezzi et al. Natura e peculiarità del software Classificazione delle qualità del software Qualità del prodotto e del processo Qualità interne ed esterne

Dettagli

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Giampiero Allamprese 0000260193 PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Reti di Calcolatori LS prof. Antonio Corradi A.A. 2007/2008 ABSTRACT L obiettivo di questo progetto è la realizzazione

Dettagli

Groupware e workflow

Groupware e workflow Groupware e workflow Cesare Iacobelli Introduzione Groupware e workflow sono due parole molto usate ultimamente, che, a torto o a ragione, vengono quasi sempre associate. Si moltiplicano i convegni e le

Dettagli

Titolo Perché scegliere Alfresco. Titolo1 ECM Alfresco

Titolo Perché scegliere Alfresco. Titolo1 ECM Alfresco Titolo Perché scegliere Alfresco Titolo1 ECM Alfresco 1 «1» Agenda Presentazione ECM Alfresco; Gli Strumenti di Alfresco; Le funzionalità messe a disposizione; Le caratteristiche Tecniche. 2 «2» ECM Alfresco

Dettagli

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna Il CMS Moka Giovanni Ciardi Regione Emilia Romagna Moka è uno strumento per creare applicazioni GIS utilizzando oggetti (cartografie, temi, legende, database, funzioni) organizzati in un catalogo condiviso.

Dettagli