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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Introduzione alle basi di dati (prima parte)

Introduzione alle basi di dati (prima parte) Introduzione alle basi di dati (prima parte) Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2007/2008

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

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

Testi di riferimento. Atzeni, Ceri, Paraboschi, Torlone Basi di Dati Modelli e linguaggi di interrogazione Mc Graw Hill 2008 (III Edizione)

Testi di riferimento. Atzeni, Ceri, Paraboschi, Torlone Basi di Dati Modelli e linguaggi di interrogazione Mc Graw Hill 2008 (III Edizione) 2.1b: DB e DBMS Testi di riferimento Atzeni, Ceri, Paraboschi, Torlone Basi di Dati Modelli e linguaggi di interrogazione Mc Graw Hill 2008 (III Edizione) Altri testi di consultazione e approfondimento

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

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

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

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

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

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

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

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

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

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

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

B.P.S. Business Process Server ALLEGATO C10

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

Dettagli

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

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

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

AT&S Aumenta l Efficienza e l Agilità del Business Tramite il Miglioramento della Gestione IT

AT&S Aumenta l Efficienza e l Agilità del Business Tramite il Miglioramento della Gestione IT CUSTOMER SUCCESS STORY Ottobre 2013 AT&S Aumenta l Efficienza e l Agilità del Business Tramite il Miglioramento della Gestione IT PROFILO DEL CLIENTE Settore: Manifatturiero Azienda: AT&S Dipendenti: 7500

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 A2 Introduzione ai database 1 Prerequisiti Concetto di sistema File system Archivi File e record 2 1 Introduzione Nella gestione di una attività, ad esempio un azienda, la

Dettagli

L Informatica al Vostro Servizio

L Informatica al Vostro Servizio L Informatica al Vostro Servizio Faticoni S.p.A. è Certificata UNI ENI ISO 9001:2008 N. CERT-02228-97-AQ-MILSINCERT per Progettazione, Realizzazione, Manutenzione di soluzioni Hardware e Software Soluzioni

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

Presentazione Photo Agency

Presentazione Photo Agency Presentazione Photo Agency L Agenzia Mareefotografiche opera sia in ambito Fotografico che Video. Mareefotografiche è un insieme di professionalità diverse, che si sono unite per dare vita a una nuova

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

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

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

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

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

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

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

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

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

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

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

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

Facoltà di Farmacia - Corso di Informatica

Facoltà di Farmacia - Corso di Informatica Basi di dati Riferimenti: Curtin cap. 8 Versione: 13/03/2007 1 Basi di dati (Database, DB) Una delle applicazioni informatiche più utilizzate, ma meno conosciute dai non informatici Avete già interagito

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno 2.1b: DB e DBMS Testi di riferimento 3 mar 2010 Dia 2 Atzeni, Ceri, Paraboschi,

Dettagli

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito LEZIONE 3 Il pannello di amministrazione di Drupal, configurazione del sito Figura 12 pannello di controllo di Drupal il back-end Come già descritto nella lezione precedente il pannello di amministrazione

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

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

I P E R T E C H w h i t e p a p e r Pag. 1/6

I P E R T E C H w h i t e p a p e r Pag. 1/6 Ipertech è un potente sistema per la configurazione tecnica e commerciale di prodotto. È una soluzione completa, che integra numerose funzioni che potranno essere attivate in relazione alle necessità del

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

SPORTLANDIA TRADATE Cookie Policy

SPORTLANDIA TRADATE Cookie Policy SPORTLANDIA TRADATE Cookie Policy Informativa Privacy (art.13 D.Lgs. 196/2003): i dati che i partecipanti al Blog conferiscono all atto della loro iscrizione sono limitati all indirizzo e-mail e sono obbligatori

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

Web. Hosting. Application

Web. Hosting. Application amministrazione siti CMS e CRM CONSULENZA WEB APPLICATION WEB DESIGN WEB MARKETING HOSTING GRAFICA Web. Hosting. Application EXPLICO Explico è la Web Agency, costituita nel 99 da professionisti specializzati

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

INFORMATIVA PRIVACY & COOKIE

INFORMATIVA PRIVACY & COOKIE INFORMATIVA PRIVACY & COOKIE Il presente documento sulla privacy policy (di seguito, Privacy Policy ) del sito www.fromac.it (di seguito, Sito ), si conforma alla privacy policy del sito del Garante per

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

Ferrovie dello Stato Italiane Garantisce l Efficienza dei Servizi IT in Outsourcing con CA Business Service Insight

Ferrovie dello Stato Italiane Garantisce l Efficienza dei Servizi IT in Outsourcing con CA Business Service Insight CUSTOMER SUCCESS STORY April 2014 Garantisce l Efficienza dei Servizi IT in Outsourcing con CA Business Service Insight PROFILO DEL CLIENTE: Azienda: S.p.A. Settore: logistica e trasporti Fatturato: 8,2

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

Antonio Brunetti, Mathias Galizia, Fabio Campanella

Antonio Brunetti, Mathias Galizia, Fabio Campanella Atti Progetto AQUATER, Bari, 31 ottobre 2007, 9-14 LA BANCA DATI DEI PROGETTI DI RICERCA E L ARCHIVIO DOCUMENTALE DEL CRA Antonio Brunetti, Mathias Galizia, Fabio Campanella Consiglio per la Ricerca e

Dettagli

Base Dati Introduzione

Base Dati Introduzione Università di Cassino Facoltà di Ingegneria Modulo di Alfabetizzazione Informatica Base Dati Introduzione Si ringrazia l ing. Francesco Colace dell Università di Salerno Gli archivi costituiscono una memoria

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

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

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

InfoTecna ITCube Web

InfoTecna ITCube Web InfoTecna ITCubeWeb ITCubeWeb è un software avanzato per la consultazione tramite interfaccia Web di dati analitici organizzati in forma multidimensionale. L analisi multidimensionale è il sistema più

Dettagli

Teeled S.r.l. PRESENTAZIONE DELLA SOCIETÀ

Teeled S.r.l. PRESENTAZIONE DELLA SOCIETÀ Teeled S.r.l. PRESENTAZIONE DELLA SOCIETÀ Teeled S.r.l. - Sede in Rapallo (GE), Corso Italia n.36/6 C.F. e P.IVA: 01931930992 - Capitale sociale: 10.000,00 - Iscritta presso la C.C.I.A.A. di Genova - R.E.A.446248

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

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

ESB perché? Dare una svolta all'azienda grazie all'integrazione Dati.

ESB perché? Dare una svolta all'azienda grazie all'integrazione Dati. 1 ESB perché? Dare una svolta all'azienda grazie all'integrazione Dati. 2 Indice generale Abstract...3 Integrare: perché?...3 Le soluzioni attuali...4 Cos'è un ESB...5 GreenVulcano ESB...6 3 Abstract L'integrazione

Dettagli

Concetti fondamentali dei database database Cos'è un database Principali database

Concetti fondamentali dei database database Cos'è un database Principali database Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione

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

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

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

Vision. highlights. la soddisfazione di ampliare i confini dell azienda. Un portale che fa!

Vision. highlights. la soddisfazione di ampliare i confini dell azienda. Un portale che fa! la soddisfazione di ampliare i confini dell azienda Un portale che fa! Il portale aziendale è un luogo di lavoro. Gemino è un Portal Application ricco di contenuti applicativi pronti all uso! highlights

Dettagli

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario Data Base Management System Strumenti: Software specifico Formato: Pro: Proprietario Massima semplicità di inserimento e gestione Tipizzazione Validazione dei dati Contro: Creazione del database Programmazione

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

INFORMATIVA SUL TRATTAMENTO DEI DATI PERSONALI RELATIVA AL SITO WEB

INFORMATIVA SUL TRATTAMENTO DEI DATI PERSONALI RELATIVA AL SITO WEB INFORMATIVA SUL TRATTAMENTO DEI DATI PERSONALI RELATIVA AL SITO WEB In questa pagina l Azienda Ospedaliera Istituto Ortopedico G. Pini descrive le modalità di gestione del sito www.gpini.it in riferimento

Dettagli

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. SISTEMI E RETI Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. CRITTOGRAFIA La crittografia è una tecnica che si occupa della scrittura segreta in codice o cifrata

Dettagli

Questa tipologia di cookie permette il corretto funzionamento di alcune sezioni del Sito. Sono di due categorie: persistenti e di sessione:

Questa tipologia di cookie permette il corretto funzionamento di alcune sezioni del Sito. Sono di due categorie: persistenti e di sessione: Informativa estesa sui Cookie Cosa sono i cookies? In informatica i cookie HTTP (più comunemente denominati Web cookie, tracking cookie o semplicemente cookie) sono righe di testo usate per eseguire autenticazioni

Dettagli

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 12 JDBC + Cosa vediamo nella lezione di oggi Oggi analizzeremo insieme una specifica tecnologia Java per l accesso e la manipolazione di basi di dati relazionali

Dettagli

Introduzione all elaborazione di database nel Web

Introduzione all elaborazione di database nel Web Introduzione all elaborazione di database nel Web Prof.ssa M. Cesa 1 Concetti base del Web Il Web è formato da computer nella rete Internet connessi fra loro in una modalità particolare che consente un

Dettagli

TYPO3 in azione con l infrastruttura ZEND: affidabilità e sicurezza. Mauro Lorenzutti CTO di Webformat srl mauro.lorenzutti@webformat.

TYPO3 in azione con l infrastruttura ZEND: affidabilità e sicurezza. Mauro Lorenzutti CTO di Webformat srl mauro.lorenzutti@webformat. TYPO3 in azione con l infrastruttura ZEND: affidabilità e sicurezza Mauro Lorenzutti CTO di Webformat srl mauro.lorenzutti@webformat.com Scaletta Test di performance Monitoring e reportistica errori Integrazione

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 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

Cercare è per metà trovare

Cercare è per metà trovare Introduzione Cercare è per metà trovare Cercare su Internet Un Web nella Rete Struttura del libro I n t r o d u z i o n e La prima edizione del libro che avete tra le mani nasceva nel 2005. Si trattava

Dettagli

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System) (DataBase Management System) Sistemi di ges3one di basi di da3 Un Database Management System è un sistema software progettato per consentire la creazione e manipolazione efficiente di database (collezioni

Dettagli

Your business to the next level

Your business to the next level Your business to the next level 1 2 Your business to the next level Soluzioni B2B per le costruzioni e il Real Estate New way of working 3 01 02 03 04 BIM Cloud Multi-Platform SaaS La rivoluzione digitale

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