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

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

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

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

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

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

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

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

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

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

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

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

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

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

Altri metodi di indicizzazione

Altri metodi di indicizzazione Organizzazione a indici su più livelli Altri metodi di indicizzazione Al crescere della dimensione del file l organizzazione sequenziale a indice diventa inefficiente: in lettura a causa del crescere del

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

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

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

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

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

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

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

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

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

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

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

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

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o Navigare verso il cambiamento La St r a d a p i ù semplice verso il ca m b i a m e n t o Le caratteristiche tecniche del software La Tecnologia utilizzata EASY è una applicazione Open Source basata sul

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

Lezione 8. Motori di Ricerca

Lezione 8. Motori di Ricerca Lezione 8 Motori di Ricerca Basi di dati Un campo prevalente dell applicazione informatica è quello costituito dall archiviazione e dalla gestione dei dati (basi di dati). Sistema Informativo. Un sistema

Dettagli

PROGETTAZIONE FISICA

PROGETTAZIONE FISICA PROGETTAZIONE FISICA Memorizzazione su disco, organizzazione di file e tecniche hash 2 Introduzione La collezione di dati che costituisce una BDD deve essere fisicamente organizzata su qualche supporto

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

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

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

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

Alfresco ECM. La gestione documentale on-demand

Alfresco ECM. La gestione documentale on-demand Alfresco ECM La gestione documentale on-demand Alfresco 3.2 La gestione documentale on-demand Oltre alla possibilità di agire sull efficienza dei processi, riducendone i costi, è oggi universalmente conosciuto

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

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

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

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

Le Basi di dati: generalità. Unità di Apprendimento A1 1

Le Basi di dati: generalità. Unità di Apprendimento A1 1 Le Basi di dati: generalità Unità di Apprendimento A1 1 1 Cosa è una base di dati In ogni modello di organizzazione della vita dell uomo vengono trattate informazioni Una volta individuate e raccolte devono

Dettagli

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Informazioni sul copyright 2004 Copyright Hewlett-Packard Development Company, L.P. Sono vietati la riproduzione, l'adattamento e la

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

LIBERA L EFFICIENZA E LA COMPETITIVITÀ DEI TUOI STRUMENTI! Open Solutions, Smart Integration

LIBERA L EFFICIENZA E LA COMPETITIVITÀ DEI TUOI STRUMENTI! Open Solutions, Smart Integration LIBERA L EFFICIENZA E LA COMPETITIVITÀ DEI TUOI STRUMENTI! Open Solutions, Smart Integration COSA FACCIAMO SEMPLIFICHIAMO I PROCESSI DEL TUO BUSINESS CON SOLUZIONI SU MISURA EXTRA supporta lo sviluppo

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

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

Presentazione della famiglia openshare 2.2. 4/30/2003 Infosquare.com 1

Presentazione della famiglia openshare 2.2. 4/30/2003 Infosquare.com 1 Presentazione della famiglia 2.2 4/30/2003 Infosquare.com 1 La piattaforma Un ambiente completo e versatile per la costruzione di portali aziendali Una piattaforma integrata di content management per raccogliere,

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

Configuratore di Prodotto Diapason

Configuratore di Prodotto Diapason Configuratore di Prodotto Diapason Indice Scopo di questo documento...1 Perché il nuovo Configuratore di Prodotto...2 Il configuratore di prodotto...3 Architettura e impostazione tecnica...5 Piano dei

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

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a. 2011-2012

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a. 2011-2012 Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Ipertesti e Internet Prof.ssa E. Gentile a.a. 2011-2012 Ipertesto Qualsiasi forma di testualità parole, immagini,

Dettagli

PTDR Disaster Recovery for oracle database

PTDR Disaster Recovery for oracle database PTDR Disaster Recovery for oracle database INTRODUZIONE... 3 INTRODUZIONE... 3 I MECCANISMI BASE DI ORACLE DATA GUARD... 3 COSA SONO I REDO LOG?... 4 IMPATTO SULL'ARCHITETTURA COMPLESSIVA... 4 CONCLUSIONI...

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

Dettagli

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato SCP: SCHEDULER LAYER a cura di Alberto Boccato PREMESSA: Negli ultimi tre anni la nostra scuola ha portato avanti un progetto al quale ho partecipato chiamato SCP (Scuola di Calcolo Parallelo). Di fatto

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

Privacy Policy e utilizzo dei cookie.

Privacy Policy e utilizzo dei cookie. Privacy Policy e utilizzo dei cookie. Privacy Policy Informativa resa ai sensi dell articolo 13 del D.lgs. n.196/2003 ai visitatori del sito di Hakomagazine e fruitori dei servizi offerti dallo stesso,

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

2. e i risultati che si vogliono conseguire

2. e i risultati che si vogliono conseguire L obiettivo di questo intervento consiste nel mostrare come trarre la massima efficienza nelle operazioni multi-canale di vendita e sincronizzazione online. Per efficienza si intende la migliore coniugazione

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

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

Brochure prodotto Infrastrutture di ricarica per veicoli elettrici Servizi di connessione ABB

Brochure prodotto Infrastrutture di ricarica per veicoli elettrici Servizi di connessione ABB Brochure prodotto Infrastrutture di ricarica per veicoli elettrici Servizi di connessione ABB Servizi di connessione Prodotti a supporto del business Per sfruttare al meglio una rete di ricarica per veicoli

Dettagli

Cataloghi per i dati aperti

Cataloghi per i dati aperti Cataloghi per i dati aperti Questo materiale didattico è stato realizzato da Formez PA nel Progetto PerformancePA, Ambito A Linea 1, in convenzione con il Dipartimento della Funzione Pubblica, organismo

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

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

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

Cataloghi per i dati aperti

Cataloghi per i dati aperti Progetto PerformancePA Ambito A - Linea 1 - Una rete per la riforma della PA Cataloghi per i dati aperti Autore: Vincenzo Patruno Creatore: Formez PA, Progetto Performance PA Diritti: Dipartimento della

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

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

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

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

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

Introduzione ad OLAP (On-Line Analytical Processing)

Introduzione ad OLAP (On-Line Analytical Processing) Introduzione ad OLAP (On-Line Analytical Processing) Metodi e Modelli per il Supporto alle Decisioni 2002 Dipartimento di Informatica Sistemistica e Telematica (Dist) Il termine OLAP e l acronimo di On-Line

Dettagli

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più

Dettagli

Soluzioni innovative per la semplificazione dell infrastruttura IT. Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems

Soluzioni innovative per la semplificazione dell infrastruttura IT. Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems Soluzioni innovative per la semplificazione dell infrastruttura IT Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems Caratteristiche principali La flessibilità e la scalabilità della

Dettagli

Archivi e database. Lezione n. 7

Archivi e database. Lezione n. 7 Archivi e database Lezione n. 7 Dagli archivi ai database (1) I dati non sempre sono stati considerati dall informatica oggetto separato di studio e di analisi Nei primi tempi i dati erano parte integrante

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

Content Management Systems

Content Management Systems Content Management Systems L o Guido Porruvecchio Tecnologia e Applicazioni della Rete Internet Definizione Un Content Management System (CMS) è letteralmente un sistema per la gestione dei contenuti Definisce

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

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

catalogo corsi di formazione 2015/2016

catalogo corsi di formazione 2015/2016 L offerta formativa inserita in questo catalogo è stata suddivisa in quattro sezioni tematiche che raggruppano i corsi di formazione sulla base degli argomenti trattati. Organizzazione, progettazione e

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

Scheda 15 Accedere ai DataBase con JDBC

Scheda 15 Accedere ai DataBase con JDBC Scheda 15 Accedere ai DataBase con JDBC G IOVANNI PULITI Panoramica: che cosa è JDBC La API JDBC, introdotta per la prima volta con il JDK 1.0, è una API che permette di accedere a database relazionali

Dettagli

Capitolo II Le reti elettriche

Capitolo II Le reti elettriche Capitolo II Le reti elettriche Fino ad ora abbiamo immaginato di disporre di due soli bipoli da collegare attraverso i loro morsetti; supponiamo ora, invece, di disporre di l bipoli e di collegarli tra

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

PROGRAMMA DI INFORMATICA CLASSE: 1 C Indirizzo: AMMINISTRAZIONE FINANZA E MARKETING Anno Scolastico 2014-2015

PROGRAMMA DI INFORMATICA CLASSE: 1 C Indirizzo: AMMINISTRAZIONE FINANZA E MARKETING Anno Scolastico 2014-2015 CLASSE: 1 C Indirizzo: AMMINISTRAZIONE FINANZA E MARKETING MODULO HARDWARE 1. Che cos è il PC - Gli elementi del computer- Unità centrale:uc-alu- RAM - La memorizzazione delle informazioni:bit-byte. Sistemi

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Una soluzione WEB-GIS per la pubblicazione di dati statistici della Regione Sardegna

Una soluzione WEB-GIS per la pubblicazione di dati statistici della Regione Sardegna Una soluzione WEB-GIS per la pubblicazione di dati statistici della Regione Sardegna Sergio Loddo, Luca Devola GFOSS - Cagliari, 27 febbraio 2009 Indice 1. Presentazione 2. Progetto 3. Architettura, metodologia

Dettagli

Speciale: I casi. Introduzione dell'area tematica IL CASO FEDERAZIONE DELLE BCC DELL'EMILIA- ROMAGNA

Speciale: I casi. Introduzione dell'area tematica IL CASO FEDERAZIONE DELLE BCC DELL'EMILIA- ROMAGNA Estratto dell'agenda dell'innovazione e del Trade Bologna 2011 Speciale: I casi Introduzione dell'area tematica IL CASO FEDERAZIONE DELLE BCC DELL'EMILIA- ROMAGNA Innovare e competere con le ICT: casi

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

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE I DATABASE o basi di dati possono essere definiti come una collezione di dati gestita dai DBMS. Tali basi di dati devono possedere determinati requisiti, definiti come specifiche, necessarie per il processo

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

Dettagli

Appunti di Sistemi Distribuiti

Appunti di Sistemi Distribuiti Appunti di Sistemi Distribuiti Matteo Gianello 27 settembre 2013 1 Indice 1 Introduzione 3 1.1 Definizione di sistema distribuito........................... 3 1.2 Obiettivi.........................................

Dettagli

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database Uso delle basi di dati Uso delle Basi di Dati Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database,

Dettagli

Release Notes di OpenSPCoop2. Release Notes di OpenSPCoop2

Release Notes di OpenSPCoop2. Release Notes di OpenSPCoop2 Release Notes di OpenSPCoop2 i Release Notes di OpenSPCoop2 Release Notes di OpenSPCoop2 ii Copyright 2005-2015 Link.it srl Release Notes di OpenSPCoop2 iii Indice 1 Versione 2.1 1 1.1 Gestione del protocollo

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

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