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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

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

2

3 Indice Introduzione 4 Capitolo 1. Graph Database: Cosa sono Classificazione dei database NoSQL Teoria dei grafi applicata al graph database Nascita ed utilizzo del graph database Caratteristiche del graph database 9 Capitolo 2. Differenze tra database relazionale e a grafo Relationship nei database relazionali e a grafo Differenze tra query con esempio Confronto tra efficienze con esempio Confronto tra modellazione relazionale e a grafo 16 Capitolo 3. Progetti di graph database. Neo4j e Cypher Introduzione a Neo4j Neo4j: un database completamente transazionale Query in Neo4j Cypher per le query sui grafi Esempio con Cypher 27 Bibliografia 29 Ringraziamenti 30 III

4 Introduzione In Informatica il termine database o base di dati (a volte abbreviato con DB) indica una collezione di dati, in cui le informazioni sono organizzate in modo tale da consentire la gestione dei dati stessi attraverso i cosiddetti query language, che ne permettono la ricerca, l inserimento, la cancellazione, l aggiornamento, ecc. grazie a particolari applicazioni software dedicate chiamate DBMS (DataBase Management System), che si basano su un architettura di tipo Client/Server. Una base di dati può avere una diversa struttura a seconda del particolare modello logico, di seguito elencati in ordine cronologico: 1) gerarchico (rappresentato da un albero, anni sessanta); 2) reticolare (rappresentato da un grafo, anni sessanta); 3) relazionale (rappresentato da tabelle e relazioni tra esse, anni settanta); 4) ad oggetti (estensione del paradigma Object-Oriented della programmazione a oggetti, anni ottanta); Il modello relazionale è attualmente il più diffuso modello, anche se negli ultimi anni sono stati progettati nuovi sistemi al fine di ottenere elevate prestazioni nelle operazioni di lettura e scrittura sui database. In particolare sono stati ripresi strumenti del modello reticolare che hanno consentito lo sviluppo dei Graph Database (Basi di dati a grafo). 4

5 Capitolo 1 Graph Database: Cosa sono. 1.1 Classificazione dei database NoSQL Il modello relazionale ha dominato fin dagli anni 80 con implementazioni come Oracle e MySQL, con la diffusione dei RDBMS (Relational Database Management System). Negli ultimi anni però si è verificato un numero crescente di casi d uso in cui il database relazionale ha portato problemi sia nella modellazione dei dati che nella scalabilità orizzontale su più server con grandi quantità di dati. Ciò ha portato allo sviluppo di nuove tecnologie per risolvere questi problemi che hanno consentito la creazione di progetti di database riconosciuti col nome di database NoSQL; in realtà il concetto è più antico dei RDBMS, ed è quindi tornato di moda recentemente. SQL (Structured Query Language) è il linguaggio standardizzato per database basati sul modello relazionale, in contrapposizione a esso si usa la terminologia NoSQL. Il termine NoSQL (acronimo di Not Only SQL ) viene utilizzato generalmente per indicare i database che non usano un modello relazionale, anche se non riflette accuratamente la natura dei suoi database poiché fornisce l errata impressione che il suo concetto sia riferito a SQL. I moderni database non relazionali hanno registrato un notevole sviluppo negli ultimi anni e sono basati su alcuni punti: 5

6 - sono distribuiti; - sono open-source; - puntano a scalare orizzontalmente. Essi tipicamente non richiedono uno schema fisso (schemaless), evitano le operazioni di unione (join), non garantiscono le caratteristiche di Atomicità, Coerenza, Isolamento e Durabilità (ACID), permettono di gestire grandi quantità di dati. Il motivo per cui oggi si sono diffusi è che permettono di gestire dati che col tempo sono cresciuti enormemente in complessità, sia come dimensione che per interconnessioni. Le principali categorie di database NoSQL sono: - Key-Value stores; - Column Family stores; - Document Databases; - Graph Databases. 1.2 Teoria dei grafi applicata al graph database Il modello relazionale utilizza tabelle, il database orientato al documento utilizza documenti, ecc., mentre il database a grafo usa nodi e archi per rappresentare e archiviare l'informazione. Quindi un graph database memorizza i dati in un grafo, che rappresenta la più generica delle strutture dati, capace di rappresentare elegantemente ogni tipo di dato. Quando si parla di modelli dei dati basati su grafo è inevitabile fare riferimento alla teoria dei grafi. In matematica, in informatica e nella geometria combinatoria, la teoria dei grafi si occupa di studiare i grafi, cioè oggetti che consentono di effettuare analisi in termini quantitativi e algoritmici. Un grafo è un insieme di elementi detti nodi o vertici collegati fra loro da archi o lati. 6

7 Più formalmente si dice grafo una coppia ordina G = (V,E), dove V è l insieme dei nodi ed E è l insieme degli archi. Un arco è una coppia (a,b) di vertici, con a V e b V. Esempio: Questo tipo di struttura permette di modellare ogni tipo di scenario. In questo caso ogni nodo rappresenta un entità (per esempio una persona o un attività commerciale) e ogni arco rappresenta una relationship tra due nodi. La variante più conosciuta di modello a grafo è rappresentato dal modello property graph, che presenta le seguenti caratteristiche: - contiene nodi e relationship; - i nodi contengono proprietà attraverso coppie chiave-valore, dove chiave è la stringa identificativa della proprietà, valore dipende invece dal tipo di dato; - le relationship sono espresse da un nome (una label) e collegano due nodi in modo diretto (da un nodo iniziale a uno finale); - anche le relationship possono contenere proprietà; La direzione e la label delle relationship aggiungono semantica alla struttura. La maggior parte delle persone trova il property graph model intuitivo e facile da comprendere, e può descrivere la stragrande maggioranza dei casi d uso. Esso risulta essere il modello di grafo più utilizzato. 7

8 1.3 Nascita ed utilizzo del graph database I graph database nacquero con l idea di ricollocare la semantica dell SQL tabellare attraverso un modello dei dati a grafo che avrebbe semplificato il lavoro degli sviluppatori, dimezzando il tempo normalmente richiesto per i classici database. Originariamente l idea era quella di conservare tutte le caratteristiche del database relazionale (transazioni, ACID, trigger, ecc.). Negli ultimi anni ci sono stati enormi cambiamenti che riguardano soprattutto Google, Facebook e Twitter, che infatti utilizzano i grafi al centro del loro business; Facebook per esempio fu fondato con l idea che oltre alle informazioni discrete sulle persone (il loro nome, cosa fanno, ecc.) ci sono anche informazioni sulle relationship tra esse, rappresentando queste informazioni in un social graph; in modo simile Google capì come memorizzare e processare i documenti Web e i collegamenti tra essi, utilizzando il web graph. La relationship è la chiave per stabilire la semantica del contesto. Oggi i grafi sono adottati con successo anche all esterno del mondo del web, per esempio da compagnie aeree, compagnie logistiche e aziende di servizi finanziari. Le grandi imprese qualche tempo fa crearono tecnologie proprietarie di elaborazione dei grafi. Queste considerazioni portarono alla nascita di nuovi strumenti general-purpose per la gestione dei database, che consentono agli utenti di trarre benefici senza dover costruire la propria infrastruttura a grafo. I graph database risultano essere il miglior modo per rappresentare e interrogare dati connessi, e sono importanti nel business odierno poiché fanno riferimento a relazioni complesse e dinamiche tra questi dati. L interpretazione e il valore dei dati connessi dipende dalle relazioni tra gli elementi dei dati, quindi spesso si dà un nome alle suddette 8

9 relazioni. Quasi sconosciuti fino a qualche anno fa, i graph database oggi sono fortemente utilizzati in diversi settori tra i quali l assistenza sanitaria, la vendita al dettaglio, lo sviluppo di giochi ed altro ancora; inoltre hanno aiutato a risolvere importanti problemi riguardanti ad esempio il social networking e la gestione dei dati. Questo incremento dell uso dei graph database è guidato da due fattori principali: - il grande successo commerciale di compagnie come Facebook, Google e Twitter, le quali hanno concentrato il loro modello di business sulle proprie tecnologie a grafo proprietarie; - l introduzione di graph database general-purpose. 1.4 Caratteristiche del graph database Un graph database è un database ottimizzato per gestire dati altamente connessi. Essi furono progettati con l idea che gli sviluppatori creavano delle strutture a grafo per poi memorizzare i dati in forma non naturale nelle tabelle dei database relazionali, o anche in altri database NoSQL, allora si cercò un modo per poter memorizzare questi dati in una struttura che consentisse di conservare la natura dei dati. Un graph database è generalmente costruito per interagire con i sistemi transazionali OLTP (OnLine Transaction Processing), di conseguenza sono ottimizzati per ottenere buone prestazioni transazionali. I modelli di riferimento di implementazione dei graph database sono due: 9

10 - Property Graph Model (già enunciato in precedenza); - Resource Description Framework (RDF) Graph. RDF è il modello di riferimento del Web Semantico. Il passaggio da un modello all altro è molto intuitivo, per entrambi esistono linguaggi di interrogazione specifici, ma solo per RDF esiste lo standard SPARQL. I modelli prodotti con i graph database sono più semplici e significativi rispetto ai modelli prodotti con i tradizionali database relazionali o con altri database NoSQL. Vantaggi nell utilizzo dei graph database: - Prestazioni. Uno dei principali vantaggi ottenuti con i graph database, rispetto all utilizzo dei database relazionali o altri NoSQL, è l aumento assoluto delle prestazioni quando si ha a che fare con dati connessi. Rispetto ai database relazionali dove le prestazioni delle query diminuiscono all aumentare dei dati, nel graph database le prestazioni tendono a rimanere costanti anche con l aumentare dei dati, poiché le query si riferiscono solo ad una porzione del grafo. Come conseguenza di ciò, il tempo di esecuzione per ogni query è proporzionale solo alla dimensione della parte del grafo da attraversare. - Flessibilità. Il grafo è naturalmente additivo, quindi è possibile aggiungere nuove relationship, nuovi nodi e nuovi sottografi a una struttura senza turbare le query esistenti e le funzionalità. L additività dei grafi permette di eseguire minori migrazioni, riducendo l overhead della manutenzione e i rischi. 10

11 - Agilità (Efficacia risposta ai cambiamenti). I moderni graph database forniscono strumenti per ottenere uno sviluppo senza attrito e una buona manutenzione del sistema. In particolare, è possibile sviluppare un applicazione in modo controllato grazie alla natura dello schema libero del modello a grafo e alla testabilità delle API (Application Programmer Interface) e dei linguaggi query del graph database. Oggi lo sviluppo del graph database si allinea bene con l agilità, in modo migliore rispetto allo sviluppo del database relazionale, permettendo alle applicazioni di supporto ai graph database di evolvere al passo con i cambiamenti dell ambiente del business. Per tutti questi motivi quindi il graph database fornisce la miglior rappresentazione per modellare, memorizzare e interrogare dati connessi. 11

12 Capitolo 2 Differenze tra database relazionale e a grafo. 2.1 Relationship nei database relazionali e a grafo - RELATIONSHIP NEI DATABASE RELAZIONALI Per molti decenni, gli sviluppatori hanno provato a sistemare i dati connessi all interno del database relazionale, che inizialmente erano progettati per codificare figure e tabelle, e subito vennero mostrate difficoltà nel tentativo di modellare le relationship del mondo reale. Le relationship esistono nel mondo del database relazionale, ma solo come rappresentazioni di tabelle accoppiate, spesso si ha la necessità di non avere ambiguità sulla semantica delle relationship che collegano le entità. Se i dati si moltiplicano la loro struttura diventa più complessa e meno uniforme, e il modello relazionale diventa oneroso. Uno dei peggiori svantaggi che si può ottenere nell utilizzo dei database relazionali è l aumento delle costose operazioni di join, che ostacola le prestazioni e rende difficile adattare un database esistente in risposta ai cambiamenti del business. Inoltre lo schema tabellare mescola i propri dati con le foreign-key. Esempio di schema relazionale, rappresentazione di un social network: 12

13 Le relazioni semantiche nel database relazionale sono minori rispetto al caso del database a grafo. Quando le query vincolano il numero di righe da considerare in una tabella (ad esempio con la condizione WHERE ), esse non risultano particolarmente costose e difficili, a differenza di quando le query vanno a considerare tutte le righe della tabella risultando quindi costose; quando si va a considerare join ricorsive, le query diventano computazionalmente e sintatticamente ancora più complesse. - RELATIONSHIP NEI GRAPH DATABASE Quando si ha a che fare con dati connessi ci sono dipendenze semantiche tra le entità. Si vuole una figura completa che includa tutti i collegamenti tra ciascun elemento. Per esempio consideriamo ora il social network: 13

14 Rispetto al modello relazionale ora la rete cresce in espressività, infatti per ogni utente sono mostrate le sue relazioni con altri utenti (nell esempio si può facilmente osservare come James e Charlie siano sia amici che colleghi). Inoltre la flessibilità del modello a grafo permette di aggiungere nuovi nodi e nuove relationship senza compromettere lo schema esistente o la migrazione dei dati. Quindi il grafo offre maggiori ricchezze rispetto al modello tabellare del database relazionale, inoltre si hanno notevoli vantaggi nelle prestazioni dei graph database quando vengono trattati dati connessi. Naturalmente le relationship in un grafo formano dei path, che vengono coinvolti dal grafo attraverso le query. La maggior parte delle operazioni path-based del graph database risultano estremamente efficienti. 2.2 Differenze tra query con esempio Per i database relazionali è definito lo standard SQL per le query, mentre per i graph database non c è un linguaggio standard e nell esempio consideriamo Cypher. Esempio. Selezionare una persona che si chiama Anakin da un gruppo di persone: 14

15 Esempio. Trovare tutti gli indirizzi associati ad una persona di nome Anakin : 2.3 Confronto tra efficienze con esempio Il social network rappresenta l esempio classico per mostrare la maggior efficienza dei graph database rispetto ai relazionali quando si ha a che fare con dati connessi; tutto questo può essere mostrato attraverso un esperimento effettuato per trovare gli amici di amici (fino a profondità 5 di amicizia) in un social network di un milione di persone, ognuna avente circa 50 amici, usando un database relazionale e il graph database Neo4j. L esperimento produsse i seguenti risultati: A profondità 2 (amici di amici) entrambi i database producono buoni risultati e un utente finale non noterebbe la differenza di ms tra i due, ma a partire da profondità 3 (amici di amici di amici) in poi, il database relazionale presenta query con tempi di esecuzione non ragionevoli rispetto alle query del Neo4j, che presentano un tempo di esecuzione quasi invariato ottenendo un risultato più che soddisfacente. 15

16 2.4 Confronto tra modellazione relazionale e a grafo Il database relazionale è il più famoso ed utilizzato database, e presenta poche similarità e molte differenze con i database a grafo. Le tecniche di modellazione relazionali richiedono di partire prima dal modello logico per poi arrivare al modello fisico, e queste trasformazioni introducono dissonanze semantiche. Nei graph database questo gap è ridotto, poiché esso presenta una stretta affinità tra modello logico e modello fisico. Esempio di dominio semplificato per la gestione dei dati tramite il supporto di applicazioni che usano diverse infrastrutture, dalle macchine virtuali ai load balancer: 16

17 - MODELLAZIONE RELAZIONALE La fase iniziale di modellazione relazionale è simile a quella di molte altre tecniche di modellazione dei dati, cioè si cerca di capire e concordare le entità del dominio e come queste ultime sono collegate tra loro. Per esprimere questo tipicamente si crea un diagramma come quello nell esempio precedente, che è un grafo. La fase successiva cattura questi accordi in una forma più rigida creando un diagramma entity-relationship (E-R). Questa trasformazione del modello concettuale in un modello logico usa una notazione più stretta, e non è sempre necessaria (spesso gli utenti non usano questo diagramma E-R intermedio). In riferimento al precedente esempio, si può costruire il seguente diagramma E-R: Si ha ora un modello normalizzato, che ha notevole complessità nella forma di foreign key e tabelle. Il lavoro di progetto non è già completo, infatti i modelli normalizzati relazionali generalmente non sono abbastanza veloci. Per molti sistemi di produzione uno schema normalizzato deve praticamente essere ulteriormente adattato e specializzato, per poter 17

18 essere adattato per il database e non per l utente, questa tecnica è chiamata denormalizzazione. La denormalizzazione comporta dati duplicati al fine di acquisire maggiore performance. Per esempio un utente ha diversi indirizzi , che nel modello normalizzato potrebbero essere memorizzati in una tabella . Per ridurre le join e i decrementi delle prestazioni dovuti alle join tra due tabelle, è utile porre questi dati nella tabella USER, aggiungendo una o più colonne. Invece in riferimento all esempio precedente è possibile ottenere: - MODELLAZIONE A GRAFO I database relazionali non rappresentano uno strumento particolarmente buono per supportare rapidi cambiamenti, quindi si ha bisogno di un modello strettamente allineato col dominio, che non sacrifica le prestazioni e che supporta l evoluzione conservando l integrità 18

19 dei dati quando è sottoposto a rapidi cambiamenti. Questo modello è il modello a grafo. Le fasi iniziali sono simili a quelle del modello relazionale, tramite abbozzi si descrive il dominio. Dopo, invece di trasformare la rappresentazione a grafo in tabelle, bisogna invece arricchirla per produrre una rappresentazione accurata del dominio. Assicurando la correttezza del modello del dominio implicitamente si migliora il modello a grafo, assicurando che ogni nodo abbia le appropriate proprietà e che sia nel contesto semantico corretto creando relationship con nomi e dirette tra i nodi. In riferimento all esempio è possibile costruire il seguente modello a grafo: Il prossimo passo consiste nel testare se il modello è adatto per poter eseguire specifiche query, quindi bisogna correggere eventualmente qualche errata decisione di progetto iniziale. Invece i cambiamenti successivi alla struttura del grafo saranno guidati solamente dai cambiamenti del business, e ciò è facilitato grazie alla flessibilità del modello a grafo. 19

20 Capitolo 3 Progetti di graph database. Neo4j e Cypher. 3.1 Introduzione a Neo4j Esistono vari progetti di basi di dati a grafo, tra i più conosciuti sicuramente ci sono Neo4j, InfoGrid, DEX e HyperGraphDB. Neo4j è un database a grafo open source, completamente transazionale, supportato da Neo Technology, utilizza il modello property graph ed è sviluppato interamente in Java. Il Neo4j possiede le seguenti caratteristiche principali: - è intuitivo, poiché usa un modello a grafo per rappresentare i dati; - è affidabile, con transazioni completamente ACID; - è altamente scalabile, fino a diversi miliardi di nodi, relationship e proprietà; - è espressivo, con un potente linguaggio query per il grafo; - è veloce, con un potente traversal framework per query ad altà velocità; - può essere usato sia in modalità server che embedded. 3.2 Neo4j: un database completamente transazionale La gestione delle transazioni è stato il punto più discusso nelle tecnologie NoSQL da quando 20

21 esse hanno iniziato a diffondersi, così i database non relazionali hanno optato per il trade-off degli attributi transazionali (Atomicità, Coerenza, Isolamento, Durabilità), ad esempio alcuni database non relazionali come BigTable e Cassandra optarono per la coerenza trade-off, permettendo così ai clienti di avere la possibilità di leggere dati non aggiornati. Questi approcci risultano adeguati solo in specifici casi d uso (caching, concorrenza, ) e rappresentano un problema quando si introducono i database non relazionali all interno di qualche azienda. Gli attributi transazionali furono ideati per i database relazionali e risultano ancora importanti in molti casi d uso. Neo4j ha adottato un approccio differente rispetto a tutti gli altri database non relazionali, infatti supporta completamente le proprietà ACID: - Atomicità: si possono avvolgere operazioni multiple all interno di una singola transazione, la transazione è indivisibile (se una delle operazioni fallisce allora fallisce l intera transazione), non sono ammesse esecuzioni parziali; - Coerenza: quando si scrivono dati nel database, ogni client che accederà al database leggerà gli ultimi dati aggiornati; - Isolamento: le operazioni di una singola transazione saranno isolate l una dall altra, così anche le transazioni saranno eseguite in modo isolato; - Durabilità: i dati scritti sul database saranno memorizzati su disco e disponibili dopo il riavvio del database. 21

22 3.3 Query in Neo4j Riguardo alle operazioni sui dati connessi, Neo4j può eseguire molto più velocemente rispetto ai classici e tradizionali database relazionali. Esso aiuta a modellare e a risolvere problemi in modo più elegante ottenendo una migliore esecuzione, anche quando si lavora con grandi quantità di dati. Si consideri come esempio un social network, dove gli utenti collegati tra loro con le frecce sono amici: Neo4j memorizza i dati come vertici ed archi, che nella terminologia del graph database sono rispettivamente nodi e relationship. Nell esempio gli utenti sono rappresentati come nodi e le loro amicizie come relationship tra i nodi. C è una differenza fondamentale tra un database relazionale e un Neo4j nell interrogazione (query) dei dati, poiché in Neo4j non ci sono tabelle né MySQL con i comandi select e join, quindi le query vengono eseguite diversamente. Neo4j, come tutti i graph database, usa un potente concetto matematico dalla teoria dei grafi per effettuare query, chiamato graph traversal. Esso è uno dei principali strumenti che rende 22

23 Neo4j potente per poter trattare dati di larga scala. I principali metodi per eseguire query su una base di dati a grafo e supportati da Neo4j sono Cypher, Gremlin e Traversal. Il traversal (attraversamento) è un operazione che percorre un insieme di nodi nel grafo, muovendosi solo tra nodi collegati con le relationship. E un operazione fondamentale per il retrieval dei dati in un grafo. Interrogare i dati attraverso gli attraversamenti porta in considerazione solo i dati richiesti, mantenendo un rendimento prevedibile a prescindere dal numero di dati, senza la necessità di eseguire costose operazioni di raggruppamento sull intero insieme di dati come avviene con le operazioni di join nei database relazionali. Neo4j fornisce una Traversal API, utilizzata per poter navigare attraverso il grafo. Inoltre è possibile utilizzare REST API o i linguaggi di query Neo4j per attraversare i dati nel grafo. Prima di avviare l attraversamento, si seleziona un nodo da cui l attraversamento avrà inizio, dopodiché si esegue l attraversamento, seguendo tutte le relationship (indicate dalle frecce) e raccogliendo i nodi visitati, così l attraversamento continua poi il suo viaggio da un nodo a un altro attraverso le relationship che li collegano, fin quando non finisce di eseguire il proprio compito e l attraversamento termina. In riferimento al precedente esempio di social network, lo scopo può essere quello di visitare solo i nodi che sono di profondità 1 partendo da un nodo iniziale (trovare gli amici dell utente X), e una volta che questi nodi sono visitati l attraversamento termina. Quindi indipendentemente dal numero di nodi e di relationship esistenti nel grafo, l'attraversamento visita solo i nodi collegati al nodo di partenza. Si ottiene così l attraversamento dei seguenti nodi e delle corrispondenti relationship: 23

24 Il vantaggio principale che si può ottenere utilizzando Neo4j è che fornisce ottime prestazioni anche con i dati in larga scala. Infatti passando da un social network di mille persone a uno che ne comprende un milione, l aumento mille volte maggiore dei dati non influenza in modo significativo le prestazioni del Neo4j, cosa che invece non avviene lavorando con un qualsiasi database relazionale. Ovviamente più sono i nodi da visitare e più è lento l attraversamento, anche se questo aumento è lineare e non dipende dalle dimensioni totali del grafo. Inoltre l utilizzo di un graph database Neo4j permette di preservare la struttura naturale a grafo dei dati (con nodi e relationship), migliorando le prestazioni delle query in modo significativo. Le query sono eseguite in modo efficiente grazie alle Neo4j Traversal API. 3.4 Cypher per le query sui grafi Per utilizzare un database ed avere la possibilità di creare, manipolare e interrogare i suoi dati, c è bisogno di un linguaggio query. A differenza di ciò che avviene nei database relazionali con lo standard SQL, per i database a grafo non c è un linguaggio standard, allora in questo paragrafo si farà riferimento a Cypher. Oltre ad esso ci sono altri famosi linguaggi query come SPARQL del modello RDF 24

25 (utilizzato nel Web semantico) o anche il linguaggio query path-based Gremlin. Cypher è un linguaggio query dichiarativo che consente di effettuare query espressive ed efficienti e di aggiornare la struttura del grafo (in questo caso si esegue una transazione). E uno dei linguaggi query più facili ed utilizzati per descrivere e interrogare i dati nel property graph ed è utilizzato anche in Neo4j. Come la maggior parte dei linguaggi query, Cypher è composto da clausole. Le più semplici query comprendono la clausola START, seguite dalle clausole MATCH e RETURN. A differenza di SQL che opera su insiemi, Cypher lavora prevalentemente sui sotto-grafi. Esempio di query Cypher che usa queste tre clausole per trovare gli amici di un utente chiamato Michael: START a-node:user(name= Michael ) MATCH (a) [ :KNOWS ] - > (b) [ :KNOWS ] - > (c), (a) [ :KNOWS ] - > (c) RETURN b, c - START Specifica uno o più punti iniziali (nodi o relationship) nel grafo. Essi sono ottenuti attraverso ricerche di indici o, molto raramente, acceduti direttamente basandosi sugli ID del nodo o della relationship. Nell esempio si cerca un nodo iniziale, attraverso un indice chiamato user, con un nome il cui valore è Michael. Il valore di ritorno da questa ricerca è legato da un identificatore, nell esempio chiamato a, che permette di far riferimento al nodo iniziale. Da un punto di vista SQL, gli identificatori in START sono come i nomi delle tabelle che indicano un insieme di nodi o di relationship. - MATCH Permette a un utente (o a un applicazione che lavora per lui) di chiedere al database di trovare dati che corrispondono a uno specifico pattern. 25

26 La clausola MATCH evita quindi costose operazioni di join come avviene in SQL. Nell esempio abbiamo un semplice pattern che rappresenta un caso d uso di tre amici: Si trattano i dati di interesse usando i caratteri ASCII per rappresentare i nodi e le relationship. La rappresentazione ASCII equivalente in Cypher è: (a) [ :KNOWS ] - > (b) [ :KNOWS ] - > (c), (a) [ :KNOWS ] - > (c) Questo pattern descrive un path, che comprende tre nodi (uno associato all identificatore a, uno a b e l altro a c ), collegati attraverso le relationship KNOWS. Questo pattern potrebbe teoricamente verificarsi molte volte, infatti con un grande set di utenti ci possono essere molte relationship corrispondenti a questo pattern. I pattern di Cypher seguono molto naturalmente il modo in cui si disegnano i grafi, utilizzando istanze di nodi e relationship. Una query Cypher considera una o più parti del pattern per specificare le locazioni di partenza nel grafo, e allora va sulle parti non considerate per effettuare confronti locali. Le locazioni di partenza sono scoperte principalmente attraverso l uso di un indice (utilizzato da Neo4j). Con la clausola START si è cercato un nodo reale nel grafo, nell esempio il nodo che rappresenta Michael, per poterlo legare all identificatore a, il quale effettua la clausola MATCH. Cypher allora confronta (match) il resto del pattern col grafo circostante il punto considerato, e scopre i nodi 26

27 da legare agli altri identificatori. Mentre a sarà sempre associato a Michael, b e c saranno legati a una certa sequenza di nodi a seconda dell esecuzione della query. - RETURN Questa clausola specifica quali nodi, relationship e proprietà dopo il match dovrebbero essere ritornati. Con riferimento all esempio, i nodi di interesse sono quelli legati agli identificatori b e c. Altre clausole utilizzate da Cypher sono: - WHERE: fornisce condizioni per filtrare i risultati ottenuti dal match; - CREATE e CREATE UNIQUE: crea nodi e relationship; - DELETE: rimuove nodi, relationship e proprietà; - SET: stabilisce i valori associati alle proprietà; - FOREACH: esegue un azione di aggiornamento per ogni elemento di una lista; - UNION: unisce i risultati di due o più query; - WITH: divide una query in multiple parti distinte. 3.5 Esempio con Cypher 27

28 Esempio di query che trova un utente chiamato John attraverso un indice e poi attraversa il grafo in cerca di amici di amici di John prima di ritornare sia John che gli amici di amici trovati: Altro esempio: si consideri la lista di utenti (con ID del nodo) e si attraversi il grafo in cerca di altri utenti, ritornando solo quelli che hanno la proprietà name che inizia per S. Quindi Cypher si concentra su COSA recuperare da un grafo e non COME. 28

29 Bibliografia e Sitografia [1] Ian Robinson, Jim Webber, Emil Eifrem 2013 Graph Databases [2] Jonas Partner, Aleksa Vukotic, Nicki Watt 2013 Neo4j in Action [3] [4] [5] 29

30 Ringraziamenti 30

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

Le funzionalità di un DBMS

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

Dettagli

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

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

Dettagli

Introduzione ad Access

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

Dettagli

Algebra Relazionale. algebra relazionale

Algebra Relazionale. algebra relazionale Algebra Relazionale algebra relazionale Linguaggi di Interrogazione linguaggi formali Algebra relazionale Calcolo relazionale Programmazione logica linguaggi programmativi SQL: Structured Query Language

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

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

Dettagli

Introduzione a MySQL

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

Dettagli

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

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

Dettagli

Dal modello concettuale al modello logico

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

Dettagli

Analisi dei requisiti e casi d uso

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

Dettagli

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

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

Dettagli

BPEL: Business Process Execution Language

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

Dettagli

Import Dati Release 4.0

Import Dati Release 4.0 Piattaforma Applicativa Gestionale Import Dati Release 4.0 COPYRIGHT 2000-2005 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati.questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

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

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

Dettagli

Relazione sul data warehouse e sul data mining

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

Dettagli

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

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

Dettagli

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

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

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

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

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

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

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

Dettagli

Database, SQL & MySQL. Dott. Paolo PAVAN Maggio 2002

Database, SQL & MySQL. Dott. Paolo PAVAN Maggio 2002 Database, SQL & MySQL Dott. Paolo PAVAN Maggio 2002 1 Struttura RDBMS MYSQL - RDBMS DATABASE TABELLE 2 Introduzione ai DATABASE Database Indica in genere un insieme di dati rivolti alla rappresentazione

Dettagli

Progettazione di un DB....in breve

Progettazione di un DB....in breve Progettazione di un DB...in breve Cosa significa progettare un DB Definirne struttura,caratteristiche e contenuto. Per farlo è opportuno seguire delle metodologie che permettono di ottenere prodotti di

Dettagli

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

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

Dettagli

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

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

Dettagli

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

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

Dettagli

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

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

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

Dettagli

Business Process Management

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

Dettagli

SQL. Dipartimento del Tesoro

SQL. Dipartimento del Tesoro Dipartimento del Tesoro SQL 1 Database...4 1.1 COS È UN DATABASE...4 1.2 DAGLI ARCHIVI AI DBMS...5 1.3 VANTAGGI OFFERTI DAI DBMS...6 1.4 INDIPENDENZA DEI DATI DALL APPLICAZIONE...7 1.5 RISERVATEZZA NELL

Dettagli

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

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

Dettagli

LA TEMATICA. Questa situazione si traduce facilmente:

LA TEMATICA. Questa situazione si traduce facilmente: IDENTITY AND ACCESS MANAGEMENT: LA DEFINIZIONE DI UN MODELLO PROCEDURALE ED ORGANIZZATIVO CHE, SUPPORTATO DALLE INFRASTRUTTURE, SIA IN GRADO DI CREARE, GESTIRE ED UTILIZZARE LE IDENTITÀ DIGITALI SECONDO

Dettagli

Elaidon Web Solutions

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

Dettagli

Business Intelligence

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

Dettagli

UML Component and Deployment diagram

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

Dettagli

Metadati e Modellazione. standard P_META

Metadati e Modellazione. standard P_META Metadati e Modellazione Lo standard Parte I ing. Laurent Boch, ing. Roberto Del Pero Rai Centro Ricerche e Innovazione Tecnologica Torino 1. Introduzione 1.1 Scopo dell articolo Questo articolo prosegue

Dettagli

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

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

Dettagli

IT FOR BUSINESS AND FINANCE

IT FOR BUSINESS AND FINANCE IT FOR BUSINESS AND FINANCE Business Intelligence Siena 14 aprile 2011 AGENDA Cos è la Business Intelligence Terminologia Perché la Business Intelligence La Piramide Informativa Macro Architettura Obiettivi

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

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

Dettagli

Analisi dei requisiti e casi d uso

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

Dettagli

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

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

Dettagli

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Introduzione generale Autenticazione dell operatore https://sebina1.unife.it/sebinatest Al primo accesso ai servizi di Back Office, utilizzando

Dettagli

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP

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

Dettagli

CAPITOLO CAPIT Tecnologie dell ecnologie dell info inf rmazione e controllo

CAPITOLO CAPIT Tecnologie dell ecnologie dell info inf rmazione e controllo CAPITOLO 8 Tecnologie dell informazione e controllo Agenda Evoluzione dell IT IT, processo decisionale e controllo Sistemi di supporto al processo decisionale Sistemi di controllo a feedback IT e coordinamento

Dettagli

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

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

Dettagli

REALIZZARE UN MODELLO DI IMPRESA

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

Dettagli

Cos è l Ingegneria del Software?

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

Dettagli

Il linguaggio SQL: transazioni

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

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

(anno accademico 2008-09)

(anno accademico 2008-09) Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato

Dettagli

F O R M A T O E U R O P E O

F O R M A T O E U R O P E O F O R M A T O E U R O P E O P E R I L C U R R I C U L U M V I T A E INFORMAZIONI PERSONALI Nome Indirizzo Laura Bacci, PMP Via Tezze, 36 46100 MANTOVA Telefono (+39) 348 6947997 Fax (+39) 0376 1810801

Dettagli

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

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

Dettagli

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

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

Dettagli

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

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

Dettagli

DataFix. La soluzione innovativa per l'help Desk aziendale

DataFix. La soluzione innovativa per l'help Desk aziendale DataFix D A T A N O S T O P La soluzione innovativa per l'help Desk aziendale La soluzione innovativa per l'help Desk aziendale L a necessità di fornire un adeguato supporto agli utenti di sistemi informatici

Dettagli

FORM Il sistema informativo di gestione della modulistica elettronica.

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

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

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

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

Dettagli

SIASFi: il sistema ed il suo sviluppo

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

Dettagli

PROFILI ALLEGATO A. Profili professionali

PROFILI ALLEGATO A. Profili professionali ALLEGATO A Profili professionali Nei profili di seguito descritti vengono sintetizzate le caratteristiche di delle figure professionali che verranno coinvolte nell erogazione dei servizi oggetto della

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

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

Dettagli

Plesk Automation. Parallels. Domande tecniche più frequenti

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

Dettagli

Piattaforma Applicativa Gestionale. Import dati. Release 7.0

Piattaforma Applicativa Gestionale. Import dati. Release 7.0 Piattaforma Applicativa Gestionale Import dati Release 7.0 COPYRIGHT 2000-2012 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati. Questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

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

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

Dettagli

Il ciclo di vita del software

Il ciclo di vita del software Il ciclo di vita del software Il ciclo di vita del software Definisce un modello per il software, dalla sua concezione iniziale fino al suo sviluppo completo, al suo rilascio, alla sua successiva evoluzione,

Dettagli

IL PROBLEMA DELLO SHORTEST SPANNING TREE

IL PROBLEMA DELLO SHORTEST SPANNING TREE IL PROBLEMA DELLO SHORTEST SPANNING TREE n. 1 - Formulazione del problema Consideriamo il seguente problema: Abbiamo un certo numero di città a cui deve essere fornito un servizio, quale può essere l energia

Dettagli

Dal punto di vista organizzativo sono possibili due soluzioni per il sistema di rete.

Dal punto di vista organizzativo sono possibili due soluzioni per il sistema di rete. Premessa. La traccia di questo anno integra richieste che possono essere ricondotte a due tipi di prove, informatica sistemi, senza lasciare spazio ad opzioni facoltative. Alcuni quesiti vanno oltre le

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

OPEN DAY: ELOCAL GROUP RELOADED

OPEN DAY: ELOCAL GROUP RELOADED L'ingegneria di Elocal Roberto Boccadoro / Luca Zucchelli OPEN DAY: ELOCAL GROUP RELOADED ELOCAL GROUP SRL Chi siamo Giorgio Dosi Lorenzo Gatti Luca Zucchelli Ha iniziato il suo percorso lavorativo in

Dettagli

Indicizzazione terza parte e modello booleano

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

Dettagli

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

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

Dettagli

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

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

Dettagli

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Se a e b sono numeri interi, si dice che a divide b, in simboli: a b, se e solo se esiste c Z tale che b = ac. Si può subito notare che:

Dettagli

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 Sistemi Web-Based - Terminologia Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 CLIENT: il client è il programma che richiede un servizio a un computer collegato in

Dettagli

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

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

Dettagli

Progetto VirtualCED Clustered

Progetto VirtualCED Clustered Progetto VirtualCED Clustered Un passo indietro Il progetto VirtualCED, descritto in un precedente articolo 1, è ormai stato implementato con successo. Riassumendo brevemente, si tratta di un progetto

Dettagli

IT FINANCIAL MANAGEMENT

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

Dettagli

Università di Venezia Corso di Laurea in Informatica. Marco Fusaro KPMG S.p.A.

Università di Venezia Corso di Laurea in Informatica. Marco Fusaro KPMG S.p.A. Università di Venezia Corso di Laurea in Informatica Laboratorio di Informatica Applicata Introduzione all IT Governance Lezione 5 Marco Fusaro KPMG S.p.A. 1 CobiT: strumento per la comprensione di una

Dettagli

L 8 maggio 2002 il Ministero

L 8 maggio 2002 il Ministero > > > > > Prima strategia: ascoltare le esigenze degli utenti, semplificare il linguaggio e la navigazione del sito. Seconda: sviluppare al nostro interno le competenze e le tecnologie per gestire in proprio

Dettagli

PROGRAMMAZIONE ORIENTATA AGLI ASPETTI: SCENARI DI ADOZIONE INDUSTRIALE

PROGRAMMAZIONE ORIENTATA AGLI ASPETTI: SCENARI DI ADOZIONE INDUSTRIALE PROGRAMMAZIONE ORIENTATA AGLI ASPETTI: SCENARI DI ADOZIONE INDUSTRIALE Il grande successo della programmazione orientata agli oggetti non ha limitato la ricerca di nuovi paradigmi e tecnologie che possano

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

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

Dettagli

MANUALE DI INSTALLAZIONE GESTIONE FLOTTE /REMIND

MANUALE DI INSTALLAZIONE GESTIONE FLOTTE /REMIND Progettisti dentro e oltre l impresa MANUALE DI INSTALLAZIONE GESTIONE FLOTTE /REMIND Pag 1 di 31 INTRODUZIONE Questo documento ha lo scopo di illustrare le modalità di installazione e configurazione dell

Dettagli

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

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

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Business Intelligence: dell impresa

Business Intelligence: dell impresa Architetture Business Intelligence: dell impresa Silvana Bortolin Come organizzare la complessità e porla al servizio dell impresa attraverso i sistemi di Business Intelligence, per creare processi organizzativi

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

THUN con ARIS: dall'ottimizzazione dei processi verso l enterprise SOA

THUN con ARIS: dall'ottimizzazione dei processi verso l enterprise SOA SAP World Tour 2007 - Milano 11-12 Luglio 2007 THUN con ARIS: dall'ottimizzazione dei processi verso l enterprise SOA Agenda Presentazione Derga Consulting Enterprise SOA Allineamento Processi & IT Il

Dettagli

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014 Processi di business sovra-regionali relativi ai sistemi regionali di FSE Versione 1.0 24 Giugno 2014 1 Indice Indice... 2 Indice delle figure... 3 Indice delle tabelle... 4 Obiettivi del documento...

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Grandi dimensioni e dimensioni variabili

Grandi dimensioni e dimensioni variabili Grandi dimensioni e dimensioni variabili aprile 2012 1 Questo capitolo studia alcuni ulteriori aspetti importanti e caratteristici della gestione delle dimensioni in particolare, delle grandi dimensioni

Dettagli

app, API e opportunità Integrazione delle piattaforme e il futuro di Internet

app, API e opportunità Integrazione delle piattaforme e il futuro di Internet app, API e opportunità Integrazione delle piattaforme e il futuro di Internet 2 app, API e opportunità Integrazione delle piattaforme e il futuro di Internet L integrazione delle piattaforme è il concetto

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

più del mercato applicazioni dei processi modificato. Reply www.reply.eu

più del mercato applicazioni dei processi modificato. Reply www.reply.eu SOA IN AMBITO TELCO Al fine di ottimizzare i costi e di migliorare la gestione dell'it, le aziende guardano, sempre più con maggiore interesse, alle problematiche di gestionee ed ottimizzazione dei processi

Dettagli

Gli asteroidi. Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it

Gli asteroidi. Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it Esempio sull'utilizzo dell'osservatorio Virtuale Gli asteroidi Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it Distribuzione degli asteroidi Il Sistema Solare è composto

Dettagli

GESTIRE LA BIBLIOGRAFIA

GESTIRE LA BIBLIOGRAFIA GESTIRE LA BIBLIOGRAFIA STRUMENTI DI GESTIONE BIBLIOGRAFICA I software di gestione bibliografica permettono di raccogliere, catalogare e organizzare diverse tipologie di materiali, prendere appunti, formattare

Dettagli