Panoramica dei più diffusi NoSQL Database

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Panoramica dei più diffusi NoSQL Database"

Transcript

1 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 Salvatore matr. N

2

3 Indice Indice... III Introduzione... 4 Capitolo 1: Sistemi NoSQL Il Teorema CAP Classificazione dei Database NoSQL Key-Value stores Document-Oriented stores Graph stores Column-oriented stores Capitolo 2: MongoDB Caratteristiche e strumenti Interrogazione Persistenza e velocità La Shell di MongoDB Inserimento Lettura Cancellazione Aggiornamento di un documento Capitolo 3: CouchDB Modello dei dati JSON Replicazione Le API di CouchDB Server API Database API Document API Replication API Confronto con MongoDB Capitolo 4: Neo4j Caratteristiche e strumenti Proprietà Creazione di un grafo Neo4j Query in Neo4j Traversal Conclusioni Bibliografia... 27

4 Introduzione Negli ultimi anni tecniche e strumenti per la persistenza e la ricerca dei dati hanno avuto una forte crescita. In particolare nel 1998 l'italiano Carlo Strozzi conia il termine NoSQL, acronimo di Not only SQL, usato per identificare tutti quei database che non fanno uso di un modello di dati relazionale. In questi, concetti come tabella, indici e chiavi non è detto che siano presenti. Solo a partire dal 2009 però questo movimento ha mostrato una rapida crescita, sono infatti già molte le aziende che decidono di passare a questo tipo di database. Tra i pionieri troviamo Google con il suo BigTable e Amazon che ha dato vita a DynamoDB. Entrambi i DB hanno dimostrato la necessità di uscire dai classici schemi relazionali per permettere un'efficiente scalabilità dei loro servizi. Da questi esperimenti sono nati i primi database NoSql, ognuno caratterizzato da strutture dati diverse e altamente ottimizzate, ma che comunque presentano caratteristiche in comune quali: - Schema free. - Gestione di un'enorme quantità di dati garantendone un rapido accesso. - Facilità di replicazione. - Utilizzo di api per l'interfacciamento con i più noti linguaggi di sviluppo. 4

5 Capitolo 1: Sistemi NoSQL La necessità di sviluppare nuove applicazioni che non possono essere affrontate con il tradizionale approccio relazionale, ha portato a ricercare una soluzione alternativa ai database relazionali che può essere spiegata da due principali esigenze: La continua crescita del volume di dati da memorizzare. La necessità di elaborare grandi quantità di dati in poco tempo. Queste nuove necessità sono dovute all aumento esponenziale del numero di utenti della rete, alla diffusione sempre maggiore dell OpenID, allo sviluppo di sinergie tra le varie community e i fornitori di servizi, ma anche alla crescente disponibilità di dispositivi con accesso ad Internet. Per far fronte alla necessità di gestire quantità di dati sempre maggiori e a velocità sempre più elevate, i nuovi sistemi di memorizzazione si sono evoluti per essere più flessibili, utilizzando modelli di dati meno complessi per aumentare le prestazioni nella gestione e nell interrogazione dei dati. Inoltre, questi sistemi mostrano peculiarità che possono tornare molto utili: Abbracciano totalmente la filosofia open-source, a differenza dei database relazionali che invece spesso non lo sono. I dati sono altamente portabili su sistemi differenti. 5

6 Non si definisce uno schema rigido per cui non esistono limiti o restrizioni ai dati memorizzati. Velocità di esecuzione, interrogazione di grosse quantità di dati e possibilità di distribuirli su più sistemi, con un meccanismo totalmente trasparente all utilizzatore. Si focalizzano su una scalabilità orizzontale e non verticale come quelli relazionali. 1.1 Il Teorema CAP Nel 2000 Eric Brewer alla conferenza Principle of Distributed Computing presentò il Teorema del CAP, dove ogni lettera dell'acronimo è una caratteristica del sistema distribuito su cui si sta lavorando: Consistency (Coerenza): dopo una modifica tutti i nodi del sistema distribuito riflettono la modifica. Availability (Disponibilità): ad una richiesta, il sistema è sempre in grado di dare una risposta. Partition Tollerance (Tolleranza al Partizionamento): se le comunicazioni si interrompono tra due punti del sistema, il sistema non fallisce ma continua ad essere disponibile. Secondo il teorema, avere tutte e tre queste caratteristiche in un sistema distribuito in un determinato momento è impossibile, ma si può scegliere quale delle due avere a discapito della terza. Amazon, ad esempio, per garantire una migliore esperienza all utente, e avendo a che fare con la tolleranza al partizionamento, scelse di privilegiare le caratteristiche AP del CAP, rinunciando ad avere un sistema sempre consistente. 1.2 Classificazione dei Database NoSQL I Criteri fondamentali in base ai quali possiamo confrontare i diversi Database NoSQL sono: Scalabilità: Capacità di un sistema di accrescere o decrescere le proprie prestazioni a seconda delle necessità. 6

7 Prestazione: Solitamente viene stimata tramite un applicazione di benchmark che verifica i vantaggi su certi tipi di operazioni. Consistenza: Capacità di eseguire una transizione dall inizio alla fine senza l interferenza di altre transizioni., cioè portare la base di dati da uno stato consistente ad un altro. Sulla base di questi criteri distinguiamo principalmente 4 grandi gruppi di basi di dati NoSQL: 1. Key/Value: Definiti da un semplice dizionario/mappa che permette all'utente di recuperare e aggiornare il valore memorizzato conoscendo la sua chiave. 2. Document-oriented: Memorizza le informazioni come collezioni di documenti. Un documento ha un formato riconosciuto (JSON, XML, etc.) che permette poi al server di eseguire delle query sui dati. 3. Graph: Rappresentano perfettamente una realtà composta da una fitta rete di connessioni e la modellano sotto forma di nodi e rami di un grafo. Ai nodi, come ai singoli rami, vengono associate le informazioni attraverso Key-Value store. 4. Column-oriented: Sistemi che utilizzano ancora le tabelle ma che non fanno alcun tipo di join. Le informazioni non sono memorizzate per riga bensì per colonna. 7

8 Altre importanti categorie sono: 5. Multi-Model: sono in grado di memorizzare diversi tipi di modelli di dati, agendo come un Key/Value store o anche come un document store e fornendo meccanismi di query per tutti i modelli di dati. Oltre alla struttura "multi-livello" questi DB possono non avere nient'altro in comune. 6. Object-oriented: Modello nel quale l informazione è rappresentata sotto forma di oggetti, così come nei linguaggi di programmazione ad oggetti quali java e c++. Attualmente la più grande base di dati del mondo, allo Stanford Linear Accelerator Centre, utilizza questa tipologia di DBMS; contenendo oltre 1000 TB di dati e con un tasso di assorbimento record, per un DB commerciale, di 1 TB per ora. 7. Multidimensional: DB strutturati per ottimizzare l elaborazione analitica online (OLAP online analytical processing) e il data warehouse. I dati vengono presentati agli utenti come un ipercubo, ovvero un array multidimensionale dove ogni singolo dato è contenuto in celle accessibili attraverso diversi indici. 8. Multivalue: hanno un metodo di archiviazione dei dati più flessibile della tabella bidimensionale dei DB relazionali, consentendo di memorizzare più campi all interno di un unico campo. In questi sistemi, il DB viene chiamato ACCOUNT, la tabella FILE e la colonna è un ATTRIBUTO composto da un ATTRIBUTO MULTIVALUE e un ATTRIBUTO SUBVALUE, per poter memorizzare valori multipli nello stesso attributo Key-Value stores Basati sul concetto di Associative array, ossia una semplice struttura in grado di contenere le coppie chiave/valore. Generalmente la chiave, come nei database relazionali, è un identificativo univoco grazie al quale è possibile ricercare ed identificare i dati presenti nel database. Solitamente gli Associative array sono implementati attraverso Hash Table e consentono le seguenti operazioni: ADD: Per aggiungere un elemento all array. 8

9 REMOVE: Per eliminare un elemento dall array. MODIFY: Per cambiare il valore associato ad una data chiave. FIND: Per trovare un valore nell array tramite la chiave. Queste appena elencate risultano essere anche le operazioni fornite dai database di tipo Key/Value, operazioni semplici, che garantiscono tempi di esecuzione costanti. Le basi di dati appartenenti a questa famiglia presentano un modello di dati abbastanza semplice, ma per quanto riguarda la scalabilità orizzontale, ossia la capacità di far fronte alla crescita dei dati aggiungendo nodi alla struttura, mostrano aspetti notevolmente più sofisticati Document-Oriented stores Sistemi di questo tipo possono essere implementati come strato sopra un DB relazionale o a oggetti. I dati non sono memorizzati più in tabelle con campi uniformi per ogni record come nei database relazionali, ma ogni record è salvato come documento. Quest ultimo possiede determinate caratteristiche e gli si possono aggiungere un qualsiasi numero di campi con qualsiasi lunghezza. Documento Ogni implementazione di questo sistema differisce nei dettagli della definizione del documento, ma comunque dati o informazioni vengono incapsulati e codificati in base ad uno standard, i più comuni sono XML, YAML, PDF. In figura 1.1, alla pagina successiva, è mostrato un esempio di documento: 9

10 Fig. 1.1 Differentemente dai campi delle basi di dati relazionali, che possono rimanere vuoti, in sistemi Document-oriented non ci sono campi vuoti in nessun documento. I documenti sono indirizzati nella base dati attraverso keys univoche e solitamente il DB mantiene un indice delle chiavi che consente un più veloce recupero del documento. Il recupero può avvenire non solo attraverso la semplice ricerca per chiave, ma anche attraverso API o con un semplice linguaggio di query in base al contenuto, ossia basandosi sul valore di un determinato campo Graph stores Questa tipologia di Base di Dati utilizza nodi e archi per rappresentare e archiviare le informazioni, risultando più veloce nell associazione di insiemi di dati rispetto ai DB strettamente relazionali. Inoltre essi non richiedono le onerose operazioni di join, permettono di scalare più facilmente grandi quantità di dati e sono molto più adeguati nello gestire dati mutevoli con schemi evolutivi. 10

11 Modelli di riferimento Facendo riferimento alla teoria dei grafi, attualmente, i modelli di riferimento per l implementazione di basi di dati con questo schema sono due: il property graph model e il resource description framework graph (RDF). Il secondo è il modello di riferimento del Web semantico e i database che lo utilizzano sono anche noti come Triple Store, Quad Store, o RDF Store Column-oriented stores In questa tipologia di BD i dati, come indica il nome stesso, sono memorizzati assieme per colonna, mantenendo così la classica organizzazione in righe e colonne. Per evitare la presenza di dati null, i database orientati a colonna permettono ad ogni riga di avere un set diverso di colonne, che possono essere aggiunte se necessario o tolte se inutilizzate. Per quanto riguarda la struttura dei dati, in questi sistemi, ogni valore può essere una stringa, o se l implementazione lo permette, qualsiasi altro tipo di dato primitivo. Non avendo uno schema formale, non c è nessuna specifica che indichi gli attributi obbligatori e il loro tipo. I vantaggi offerti da questo tipo di orientamento si vedono soprattutto in lettura: Le query mirano a recuperare valori soltanto da determinate colonne e quindi non da tutta la riga. Essendo composte da tipi di dati uniformi, le colonne risultano essere più facili da comprimere, a vantaggio della velocità di esecuzione. 11

12 Capitolo 2: MongoDB MongoDB possiede un modello di dati orientato ai documenti per poter ottenere elevate prestazioni in lettura e in scrittura e risultare facilmente scalabile. Progettato per essere flessibile e potente, combina le caratteristiche dei Key-Value stores, semplici, veloci e scalabili, con le caratteristiche dei DB relazionali, per il loro potente linguaggio di interrogazione. Per questo motivo, esso è stato adottato anche da importanti aziende come ebay che usa MongoDB per i suggerimenti della ricerca o The New York Times che usa MongoDB nella sua applicazione di caricamento di fotografie. 2.1 Caratteristiche e strumenti Partendo dall alto, MongoDB gestisce più basi di dati, ognuna delle quali contiene un insieme di collezioni, le quali sono composte da più documenti costituiti da un certo numero di campi che sono coppie chiave-valore Interrogazione MongoDB permette interrogazioni dinamiche o ad hoc, ovvero si può evitare di definire in anticipo quali interrogazioni il sistema dovrà accettare, permettendo agli utenti di trovare i 12

13 dati usando qualsiasi condizione. Si può quindi, in base ai valori che si vogliono cercare, scrivere un interrogazione sempre diversa. Una classica interrogazione in MongoDB potrebbe essere: che ritorna tutti i posts taggati come politics che hanno 10 voti o più. Potendo effettuare interrogazioni con qualsiasi condizione, MongoDB raggiunge il suo scopo di mantenere alta la potenza di interrogazione. Per migliorare ulteriormente le prestazioni sulle interrogazioni, il query optimizer di MongoDB utilizza una struttura dati che raccoglie informazioni sui valori dei campi indice nei documenti di una collezione, permettendo così di ordinarli e attraversarli più velocemente. Ogni collezione può avere più di 64 indici utilizzabili anche per i documenti Persistenza e velocità Definiamo la velocità in scrittura come il volume di operazioni di inserimento, aggiornamento o cancellazione che il sistema può elaborare in un determinato periodo di tempo. La persistenza invece, si riferisce alla garanzia che queste operazioni siano effettuate in modo permanente. In MongoDB è possibile scegliere tra diverse semantiche di scrittura, quelle di default sono di tipo fire-and-forget, ossia le operazioni di scrittura sono inviate attraverso un socket TCP senza richiesta di risposta da parte del DB. Se l utente richiede una risposta, si può usare la modalità safe mode. 2.2 La Shell di MongoDB La shell è uno strumento che permette di amministrare e manipolare i dati del DB e in MongoDB è basata sul linguaggio JavaScript. In questi sistemi, database e collezioni vengono creati solo quando viene inserito un documento Inserimento Il metodo insert permette di inserire un documento in una collezione. Un esempio di linea di comando è il seguente: 13

14 Tramite questa operazione si aggiunge al documento una chiave detta _id, che rappresenta l identificatore unico e globale nel sistema. Infatti, in MongoDB ogni documento deve necessariamente avere un _id, che se non presente, verrà creato in automatico. Dopo l inserimento, la struttura dati viene convertita in BSON (formato binario che memorizza qualsiasi documento come stringa di byte) e poi ricevuta dal DB che controlla la validità del campo _id e la dimensione, 4MB massimo Lettura Popolato il DB, è possibile cercare un documento all interno di esso grazie al metodo find, che ritorna tutti i documenti di una collezione. Si può però aggiungere a questo metodo un query selector, ovvero un documento che viene confrontato con tutti quelli presenti nella collezione per trovare quello che si sta cercando. Un esempio può essere: Cancellazione Per eliminare documenti da una collezione si invoca il metodo remove che, chiamato senza alcun parametro, elimina tutti i documenti della collezione, altrimenti è necessario specificare un criterio di rimozione come nella seguente linea di codice: che elimina un documento con il valore mario associato alla chiave username. 2.3 Aggiornamento di un documento MongoDB offre due metodi per aggiornare un documento: Rimpiazzare completamente il documento. Usare combinazioni di operatori di aggiornamento per modificare uno specifico campo del documento (aggiornamento mirato). Per rimpiazzare completamente un documento il DB deve prima ritornarlo. In seguito, il documento viene modificato dal lato client e si emette l aggiornamento con il documento 14

15 modificato. Si può anche modificare uno specifico campo se si è a conoscenza dell _id del documento da modificare. Infine il documento modificato viene passato al metodo update. Con l aggiornamento mirato invece, il metodo update richiede due argomenti, il primo identifica il documento da aggiornare e il secondo come deve essere aggiornato, ad esempio: che aggiorna il campo del documento specificato. Questo secondo approccio consente migliori prestazioni, in quanto elimina il tempo di andata e ritorno del documento dal server. 15

16 Capitolo 3: CouchDB Scritto in Erlang e sviluppato da Apache Software Foundation, CouchDB è una base di dati open source che presenta un approccio nuovo rispetto alle basi di dati relazionali. I vantaggi si riscontrano soprattutto nel modo di strutturare, salvare e compiere operazioni di interrogazione, filtraggio e replicazione dei dati. Risulta inoltre essere di facile comprensione perché: La comunicazione con il DB è effettuata grazie al protocollo HTTP, infatti è scelto già da molti sviluppatori che lavorano in ambito Web. Basato sui documenti, esso consente più flessibilità ai dati che evolvono la loro struttura nel tempo Se si verifica un problema, questo rimane isolato nella sua operazione, senza propagarsi nel server. (fault-tolerant) La struttura di CouchDB è basata anche sui Key-value stores consentendo così accessi rapidi ai documenti sia in lettura che in scrittura grazie all utilizzo di una chiave. 16

17 3.1 Modello dei dati Come in MongoDB, essendo orientato ai documenti, anche CouchDB offre un formato per i dati molto flessibile, consentendo di modificare la struttura con semplicità. Scritti in linguaggio JSON i documenti permettono di rappresentare meglio le informazioni reali JSON Basato su un sottoinsieme della sintassi di JavaScript, JSON risulta essere un formato semplice e chiaro, facile da generare e analizzare. JSON viene utilizzato da CouchDB per ogni comunicazione contenente strutture dati. Alcuni dei tipi di dati supportati, come in JavaScript, sono: Numbers: interi positivi e negativi. String: caratteri Unicode. Boolean: valori booleani (true o false). Array: liste di valori. Object: liste di coppie Chiave-Valore Replicazione La replicazione dei dati in CouchDB è un processo unidirezionale, ossia passa da un DB sorgente a uno destinatario ed è incrementale, in modo tale che in caso di interruzione dell operazione si possa riprendere dal punto in cui il processo si era interrotto. CouchDB svolge l operazione di replicazione dei dati in maniera molto efficiente. Esso confronta prima di tutto i due DB per trovare quali documenti sono diversi, per poi trasmettere i soli documenti che hanno una versione più aggiornata, grazie al numero di sequenza. In questi sistemi, in caso di malfunzionamenti della rete, un singolo server può continuare a fornire operazioni in lettura e scrittura, per poi sincronizzare i dati con gli altri server al ripristino del collegamento. CouchDB rispetta solo le proprietà di disponibilità e tolleranza al partizionamento del teorema CAP, ed è così eventualmente coerente. 17

18 3.2 Le API di CouchDB Il DBMS fornisce quattro principali categorie di API per poter interagire con esso: 1. Server 2. Database 3. Documents 4. Replication Per analizzare queste categorie verrà utilizzato curl, strumento per il trasferimento dei dati con sintassi URL, che ovviamente supporta il metodo HTTP Server API Digitando la riga di comando: si ricevono informazioni riguardo l istanza di CouchDB in esecuzione. Nell URL viene specificato l indirizzo IP del server, 5984 è invece la porta di default. La risposta del server è una stringa in formato JSON: Database API Creare un database Usando l opzione curl -X, che consente di usare il metodo PUT, è possibile realizzare un database specificandone il nome nella seconda parte dell URL: In caso di esito positivo dell operazione il server risponde con: Informazioni sul database Il comando che permette di ottenere informazioni su uno specifico DB è invece il GET: La stringa di risposta del server contiene varie informazioni, tra cui: il numero di 18

19 documenti contenuti nel DB in questione, la data della sua creazione e la dimensione dei dati. Eliminare un database Fornendo il percorso, per eliminare un database basta usare il comando DELETE: Document API In CouchDB, come in MongoDB, la struttura dati centrale è il documento, sul quale è possibile compiere diverse operazioni: Inserimento L inserimento può essere effettuato grazie a due metodi: il POST inserisce un nuovo documento senza specificare l identificatore, invece il PUT inserisce l identificatore alla fine dell URL. In entrambi i casi, il documento da inserire nel body della richiesta si indica con il comando d: Lettura Per ottenere un documento è necessario specificare l identificatore nell URL e usare il metodo GET: Così facendo il server restituisce il documento con tutti i suoi campi, l identificatore e il numero di revisione Replication API Per replicare un DB in locale, ad esempio per funzioni di backup, si deve innanzitutto 19

20 creare il database di destinazione: Creato recipes-replica come destinazione si procede alla copia con il metodo POST: Questo processo mantiene aperta la connessione tra i due database per tutta la durata dell operazione e può richiedere molto tempo. 3.3 Confronto con MongoDB CouchDB oltre che ad un affidabilità maggiore ha come punto di forza un interfaccia utente semplice ed intuitiva, non proprio come la shell con interprete javascript di MongoDB. Aggiornamento dati CouchDB offre maggiore libertà di design introducendo però il problema della compattazione. MongoDB invece, mette a disposizione una maggiore velocità in scrittura e offre un notevole risparmio di memoria di archiviazione, non tenendo però memoria delle versioni. Query MongoDB permette query dinamiche offrendo inoltre un valido strumento per ottimizzarle, con la creazione di indici se necessario. CouchDB invece, usa un particolare sistema per generare indici e ottimizzare le query, che però devono essere predefinite necessariamente. 20

21 Capitolo 4: Neo4j Sviluppato completamente in java, Neo4j è un DB a grafo open source totalmente transazionale che emerge rispetto alla concorrenza. Infatti supporta Cypher, Gremline e Traversal, i principali metodi per eseguire query su una base di dati a grafo. Inoltre grazie alle diverse librerie che possiede, è possibile utilizzare questo DB con java, PHP etc. 4.1 Caratteristiche e strumenti Questa base di dati trova utilizzo sia in modalità embedded che server. Nella prima modalità il DB viene incorporato nell applicazione ed eseguito all interno della macchina virtuale java (JVM), ossia nello stesso processo ma accettando thread concorrenti. In modalità server il database è un processo a sé stante, a cui si accede facendo delle query e ricevendo i dati in remoto. Inoltre, il server consente l utilizzo di plugin per filtrare i dati in input e in output e per servizi aggiuntivi come ad esempio le query spaziali. Per l uso comune Neo4j si basa sulle transazioni e solo dopo averne aperta una è possibile creare nodi e assegnarvi delle proprietà. 21

22 4.1.1 Proprietà Differentemente da tutti gli altri database non relazionali Neo4j supporta completamente le proprietà ACID: Atomicità: Le esecuzioni parziali non sono ammesse; ossia una transazione, che può contenere operazioni multiple al suo interno, è indivisibile (se fallisce una delle operazioni allora fallisce l intera transazione). Coerenza: Dopo una scrittura, tutti i client che accederanno al DB leggeranno gli ultimi aggiornamenti. Isolamento: Le operazioni di una specifica transazione sono isolate l una dalle altre, di conseguenza tutte le transazioni saranno eseguite in modo isolato. Durabilità: I dati scritti e memorizzati saranno disponibili anche dopo il riavvio del DB. 4.2 Creazione di un grafo Neo4j Il primo passo per la creazione di un grafo Neo4j, attraverso le API native dello stesso, consiste nell istanziare il database, come mostrato nella seguente linea di codice: Considerando un esempio di un grafo, rappresentante due stanze collegate in entrambe le direzioni da un passaggio, bisogna definire, tramite enum, un tipo di relazione: In questo esempio è stato creato il tipo di relazione PASSAGGIO, che servirà a collegare le due room implementate di seguito: 22

23 Queste stanze rappresentano i nodi del grafo, collegati tra di loro attraverso il metodo createrelationshipto() : Ottenendo una relazione che collega i nodi in entrambe le direzioni. 4.3 Query in Neo4j A differenza dei classici database relazionali Neo4j è in grado di eseguire molto più velocemente le operazioni sui dati connessi. Per comprendere meglio come opera Neo4j prendiamo come esempio il caso di un social network. Nello schema rappresentato in figura 4.1, gli utenti collegati tra loro sono amici. Fig. 4.1 In questo esempio gli utenti rappresentano i nodi, le loro amicizie rappresentano le relationship tra i nodi stessi. Essendo strutturato a grafo, neo4j non presenta né tabelle né comandi come select e join, quindi le query vengono effettuate grazie ad un potente concetto matematico della teoria dei grafi, chiamato graph traversal, che rende il DB 23

24 potente per poter trattare dati di grandi volumi. Ma questo non è l unico metodo messo a disposizione da Neo4j, infatti per eseguire query su basi di dati è possibile scegliere tra: Cypher, Gremlin, Traversal Traversal L attraversamento è un operazione (fondamentale per il retrival dei dati) che percorre il grafo muovendosi solo tra nodi collegati con le relationship. Interrogando il DB con questo metodo si portano in conto solo i dati richiesti, mantenendo così, a prescindere dalla quantità dei dati, un rendimento prevedibile. Per poter avviare l attraversamento, si deve prima selezionare il nodo dal quale si desidera partire, dopodichè è possibile effettuare l attraversamento seguendo le relationship e raccogliendo i nodi visitati. L attraversamento continua poi da nodo a nodo, fin quando non finisce il proprio compito e termina. Ritornando al precedente esempio del social network, supponiamo di voler trovare gli amici di un utente X, ossia di voler visitare i nodi di profondità 1 partendo da X. L attraversamento in questo caso indipendentemente dal numero di nodi e relazioni nel grafo, visita solo i nodi collegati direttamente a X. Fig

25 Come si può intuire da questo semplice esempio in figura 4.2, Neo4j è in grado di fornire ottime prestazioni anche con i dati in larga scala. Infatti passando dal caso esaminato a un caso con un milione di utenti, l aumento di più di mille volte del volume dei dati, non influenza le prestazioni di Neo4j. 25

26 Conclusioni In questa tesi dapprima si sono spiegati i motivi che hanno portato alla nascita del movimento NoSQL, come la necessità di dover gestire grosse quantità di informazioni pur mantenendo una struttura flessibile nel tempo, dopodiché si è passati al classificare questi DBMS in diverse famiglie. Le principali di queste, sono state oggetto di analisi, accennando ai concetti strutturali sulle quali si basano, per poi spiegarne il funzionamento. Sono poi stati analizzati nello specifico tre database, i primi due, MongoDB e CouchDB, sono entrambi document-oriented, mentre il terzo Neo4j ha una struttura organizzata a grafo. Di questi, si sono approfonditi i dettagli strutturali, i concetti sui quali si basano e gli obiettivi che si pongono, per poi andare ad analizzare nello specifico importanti funzioni, come le operazioni di inserimento e cancellazione, ma anche il modo di interrogare il database. Vantando ottime prestazioni e capacità di adattamento ad una tecnologia in frequente aggiornamento, i sistemi NoSQL sono subito stati adottati e sviluppati dalle più grandi aziende, ottenendo in alcuni casi un efficienza irraggiungibile dai classici DB relazionali. 26

27 Bibliografia [1] Jonas Partner, Aleksa Vukotic, Nicki Watt, 2013, Neo4j in Action [2] [3] [4] [5] [6] [7] [9] Alessandro Rezzani, Big Data: Architettura, tecnologie e metodi per l utilizzo di grandi basi di dati, Maggioli Editore, 2013 [10] 27

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

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

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

Dettagli

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

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

CONFRONTO TRA DBMS RELAZIONALI, A COLONNE E NOSQL

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

Dettagli

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

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

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

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

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

Dettagli

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

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

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

Indice. Ringraziamenti dell Editore

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

Dettagli

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

Studio delle principali Tecnologie No-SQL

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

Dettagli

Università degli Studi di Padova

Università degli Studi di Padova Università degli Studi di Padova Dipartimento di Ingegneria dell Informazione Corso di Laurea Triennale in Ingegneria Informatica Il movimento NoSQL Il caso di studio di CouchDB Relatore: Prof. Giorgio

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

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

DB NoSQL Analisi prestazionale

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

Dettagli

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

Corso di Informatica Generale 1 IN1. Linguaggio SQL

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

Dettagli

Basi di Dati. prof. Letizia Tanca. Le transazioni e il database server, cenni sui nuovi sistemi per Big Data

Basi di Dati. prof. Letizia Tanca. Le transazioni e il database server, cenni sui nuovi sistemi per Big Data Basi di Dati prof. Letizia Tanca Le transazioni e il database server, cenni sui nuovi sistemi per Big Data (lucidi parzialmente tratti dal libro: Atzeni, Ceri, Paraboschi, Torlone Introduzione alle Basi

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

DEFINIZIONI FONDAMENTALI

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

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

Esercitazioni di Basi di Dati

Esercitazioni di Basi di Dati Esercitazioni di Basi di Dati A.A. 2008-09 Dispense del corso Utilizzo base di pgadmin III Lorenzo Sarti sarti@dii.unisi.it PgAdmin III PgAdmin III è un sistema di progettazione e gestione grafica di database

Dettagli

Informatica I per la. Fisica

Informatica I per la. Fisica Corso di Laurea in Fisica Informatica I per la Fisica Lezione: Software applicativo II Fogli elettronici e Data Base Software: software di sistema (BIOS) sistema operativo software applicativo ROM Dischi

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

31/05/2013. Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming. Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

31/05/2013. Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming. Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano /28 Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming 3 Sincronizzazione 4 Consistenza e Replica 5 Replica di sistemi

Dettagli

Data Warehousing e Data Mining

Data Warehousing e Data Mining Università degli Studi di Firenze Dipartimento di Sistemi e Informatica A.A. 2011-2012 I primi passi Data Warehousing e Data Mining Parte 2 Docente: Alessandro Gori a.gori@unifi.it OLTP vs. OLAP OLTP vs.

Dettagli

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY

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

Dettagli

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

Basi di dati. Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: presentazione corso (1.

Basi di dati. Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: presentazione corso (1. Università di Modena e Reggio Emilia Basi di dati Docente: andrea.bulgarelli@gmail.com Argomento: presentazione corso (1.0) - Basi di Dati 1 Materiale didattico Web site: www.andrea.bulgarelli.name/corso

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

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

Data warehouse. Architettura complessiva con OLTP e OLAP OLTP. Sistemi di supporto alle decisioni

Data warehouse. Architettura complessiva con OLTP e OLAP OLTP. Sistemi di supporto alle decisioni Data warehouse Data warehouse La crescita dell importanza dell analisi dei dati ha portato ad una separazione architetturale dell ambiente transazionale (OLTP on-line transaction processing) da quello

Dettagli

NoSQL: concetti generali

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

Dettagli

Sistemi di Elaborazione delle Informazioni (C.I. 15) Access

Sistemi di Elaborazione delle Informazioni (C.I. 15) Access Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Sistemi di Elaborazione delle Informazioni (C.I. 15) Anno Accademico 2009/2010 Docente: ing. Salvatore Sorce Access C.d.L. in Igiene

Dettagli

Approfondimento: i sistemi di gestione delle basi di dati (DBMS)

Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Prerequisito essenziale della funzionalità delle basi di dati è il controllo e la fruibilità dell informazione in esse contenuta: a tale

Dettagli

Basi di dati (3) Ing. Integrazione di Impresa A.A. 2007/08

Basi di dati (3) Ing. Integrazione di Impresa A.A. 2007/08 Università di Modena e Reggio Emilia Panoramica Basi di dati (3) Ing. Integrazione di Impresa A.A. 2007/08 Docente: andrea.bulgarelli@gmail.com Argomento: struttura SQL Server (1.0)! Componenti! Edizioni!

Dettagli

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

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

Dettagli

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

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

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Accesso ai Dati Ing. Giuseppe D'Aquì Testi Consigliati Eclipse In Action Core J2EE Patterns - DAO [http://java.sun.com/blueprints/corej2eepatterns/patterns/dataaccessobject.html]

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

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

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

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

Dettagli

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

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

Introduzione alle Basi di Dati

Introduzione alle Basi di Dati 1 Introduzione alle Basi di Dati Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Sistema Azienda 2 Sistema organizzativo è costituito da una serie di risorse e di regole necessarie

Dettagli

NoSQL database: la soluzione Oracle.

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

Dettagli

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

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

Dettagli

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

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti

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

Dettagli

L interfaccia a riga di comando di MySql

L interfaccia a riga di comando di MySql L interfaccia a riga di comando di MySql Una volta completata la procedura di installazione possiamo finalmente testare le funzionalità di MySQL. Sia che ci si trovi in ambiente Linux che Windows, l'interfaccia

Dettagli

Introduzione ai sistemi di basi di dati

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

Dettagli

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

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

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

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

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste PROGRAMMAZIONE MODULARE Indirizzo: INFORMATICA SIRIO Disciplina: INFORMATICA Classe: QUINTA Ore previste: 16 di cui 66 ore di teoria e 99 ore di laboratorio. N. modulo Titolo Modulo Titolo unità didattiche

Dettagli

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni Uso dei data bases con PHP Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal

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

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Basi di dati Il linguaggio SQL teoria e pratica con Microsoft Access Riepilogando Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Riepilogando Basi di dati Il linguaggio SQL Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi degli attributi, domini, 2. una parte

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2010 Seconda prova scritta Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA

Dettagli

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa.

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa. Introduzione alla tecnologia JMX 1 Viene analizzata l architettura sottostante le Java Managment Extensions (JMX) mostrandone un utilizzo applicativo e analizzando altri possibili scenari d uso di Ivan

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

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

Tecnologie NoSQL: SESAME

Tecnologie NoSQL: SESAME Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati Tecnologie NoSQL: SESAME Anno Accademico 2014/2015 Candidato: Antonio Giordano matr.

Dettagli

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client

Dettagli

PROGRAMMA DI CLASSE 5AI

PROGRAMMA DI CLASSE 5AI Istituto di Istruzione Superiore Euganeo Istituto tecnico del settore tecnologico Istituto professionale del settore servizi socio-sanitari Istituto professionale del settore industria e artigianato PROGRAMMA

Dettagli

PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI

PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI 1 Web Link Monitor... 2 2 Database Browser... 4 3 Network Monitor... 5 4 Ghost Site... 7 5 Copy Search... 9 6 Remote Audio Video

Dettagli

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

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

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

SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI

SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI Il Database è una collezione di archivi di dati ben organizzati e ben strutturati, in modo che possano costituire una base di lavoro per utenti diversi

Dettagli

Aspetti applicativi e tecnologia

Aspetti applicativi e tecnologia Aspetti applicativi e tecnologia Premessa Architetture usate per i database Le prime applicazioni erano definite monolitiche, cioè un unico computer (mainframe) gestiva sia le applicazioni che i dati,

Dettagli

Progetto e sviluppo di un applicazione per il pilotaggio remoto di reti

Progetto e sviluppo di un applicazione per il pilotaggio remoto di reti tesi di laurea Progetto e sviluppo di un applicazione per il pilotaggio remoto di reti di sensori Anno Accademico 2011/2012 relatore Ch.mo prof. Marcello Cinque candidato Andrea Fretta Matr. 534003135

Dettagli

Data Base. Prof. Filippo TROTTA

Data Base. Prof. Filippo TROTTA Data Base Definizione di DataBase Un Database può essere definito come un insieme di informazioni strettamente correlate, memorizzate su un supporto di memoria di massa, costituenti un tutt uno, che possono

Dettagli

Progetto Gennaio 2013: Social Chat Internazionale

Progetto Gennaio 2013: Social Chat Internazionale UNIVERSITÀ DEGLI STUDI DI MILANO, DIPARTIMENTO DI INFORMATICA LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE CORSO DI RETI DI CALCOLATORI ANNO ACCADEMICO 2011/2012 Progetto Gennaio 2013: Social Chat Internazionale

Dettagli

Data warehousing con SQL Server

Data warehousing con SQL Server Data warehousing con SQL Server SQL Server è un RDBMS (Relational DataBase Management System) Analysis Services è un componente di SQL Server che offre un insieme di funzionalità di supporto al data warehousing

Dettagli

Data Warehouse Architettura e Progettazione

Data Warehouse Architettura e Progettazione Introduzione Data Warehouse Architettura! Nei seguenti lucidi verrà fornita una panoramica del mondo dei Data Warehouse.! Verranno riportate diverse definizioni per identificare i molteplici aspetti che

Dettagli

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

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

Dettagli

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

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

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

Il sistema IBM DB2. Sistemi Informativi T. Versione elettronica: L01.1.IntroduzioneDB2.pdf

Il sistema IBM DB2. Sistemi Informativi T. Versione elettronica: L01.1.IntroduzioneDB2.pdf Il sistema IBM DB2 Sistemi Informativi T Versione elettronica: L01.1.IntroduzioneDB2.pdf IBM DB2 Il DBMS relazionale IBM DB2 è il prodotto di punta dell IBM per la gestione di basi di dati relazionali

Dettagli

Master Quiz. Matteo Zignani. 18 agosto 2014

Master Quiz. Matteo Zignani. 18 agosto 2014 UNIVESITÁ DEGLI STUDI DI MILANO LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE PROGETTO LABORATORIO DI RETI DI CALCOLATORI Master Quiz Matteo Zignani 18 agosto 2014 1 PRESENTAZIONE DEL PROBLEMA Lo studente

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

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

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

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati Che cos è un DBMS? Capitolo 1 Introduzione ai sistemi di basi di dati Una collezione integrata molto grande di dati Modella organizzazioni del mondo reale Entità (ad esempio studenti, corsi) Relazioni

Dettagli

Basi di Dati prof. A. Longheu. 5 Progettazione fisica

Basi di Dati prof. A. Longheu. 5 Progettazione fisica Basi di Dati prof. A. Longheu 5 Progettazione fisica Progettazione Fisica Per effettuare la progettazione fisica, ossia l implementazione reale del modello logico creato nella fase della progettazione

Dettagli

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

DBMS (Data Base Management System)

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

Dettagli

Motore di riempimento DB (generatore dati per simulazione)

Motore di riempimento DB (generatore dati per simulazione) SISTEMI DISTRIBUITI prof. S.Pizzutilo Motore di riempimento DB (generatore dati per simulazione) Studente: Alessandro Balestrucci 617937 Corso di Laurea: Informatica Magistrale Dipartimento di Informatica

Dettagli

Informatica Introduzione alle basi di dati

Informatica Introduzione alle basi di dati Informatica Introduzione alle basi di dati Prof. Giovanni Giuffrida e-mail: giovanni.giuffrida@dmi.unict.it 27 November 2014 Basi di Dati - Introd. - Prof. G. Giuffrida 1 Materiale didattico Atzeni,Ceri,Paraboschi,Torlone,

Dettagli

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) Realizzazione del file system Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Realizzazione

Dettagli