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

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

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

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

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

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità

Dettagli

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione Programma del Corso Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione (I prova scritta) (II prova scritta) Interazione fra linguaggi di programmazione e basi di dati Cenni

Dettagli

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

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

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015 BASE DI DATI: introduzione Informatica 5BSA Febbraio 2015 Di cosa parleremo? Base di dati relazionali, modelli e linguaggi: verranno presentate le caratteristiche fondamentali della basi di dati. In particolare

Dettagli

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

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

Dettagli

Corso di Basi di Dati e Conoscenza

Corso di Basi di Dati e Conoscenza Corso di Basi di Dati e Conoscenza Gestione dei Dati e della Conoscenza Primo Emicorso - Basi di Dati Roberto Basili a.a. 2012/13 1 Obbiettivi Formativi Scenario Le grandi quantità di dati accumulate nelle

Dettagli

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Progettaz. e sviluppo Data Base

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

Dettagli

Introduzione al data base

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

Dettagli

Sistemi Informativi e Basi di Dati

Sistemi Informativi e Basi di Dati Sistemi Informativi e Basi di Dati Laurea Specialistica in Tecnologie di Analisi degli Impatti Ecotossicologici Docente: Francesco Geri Dipartimento di Scienze Ambientali G. Sarfatti Via P.A. Mattioli

Dettagli

Introduzione all Information Retrieval

Introduzione all Information Retrieval Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information

Dettagli

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

Le Basi di Dati. Le Basi di Dati

Le Basi di Dati. Le Basi di Dati Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per

Dettagli

Introduzione all Architettura del DBMS

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

Dettagli

DATABASE. www.andreavai.it

DATABASE. www.andreavai.it Cos'è un database? Quando si usa? Differenze con i fogli elettronici Le tabelle: record, campi, tipi di dati Chiavi e indici Database relazionali (R-DBMS) Relazioni uno-a-uno Relazioni uno-a-molti Relazioni

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

Basi di Dati Relazionali

Basi di Dati Relazionali Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 PROGETTAZIONE DI UNA BASE DI DATI Raccolta e Analisi dei requisiti Progettazione concettuale Schema concettuale Progettazione logica

Dettagli

Scenario di Progettazione

Scenario di Progettazione Appunti del 3 Ottobre 2008 Prof. Mario Bochicchio SCENARIO DI PROGETTAZIONE Scenario di Progettazione Il Committente mette a disposizione delle risorse e propone dei documenti che solitamente rappresentano

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

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

database: modello entityrelationship

database: modello entityrelationship Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8 database: modello entityrelationship Prof.Valle D.ssaFolgieri Lez7 25.10.07 Trattamento dati. Database: modello entity-relationship 1 Fasi

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti Basi di dati Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti Anno Accademico 2008/2009 Introduzione alle basi di dati Docente Pierangelo

Dettagli

Strumenti di modellazione. Gabriella Trucco

Strumenti di modellazione. Gabriella Trucco Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

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

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. Progettazione logica Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. La progettazione logica è basata su un particolare modello logico dei

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

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

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

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

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12 SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I Anno accademico 2011/12 DEFINIZIONE Il concetto di vista 2 È una relazione derivata. Si specifica l espressione che genera il suo contenuto.

Dettagli

Architetture Applicative

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

Dettagli

Corso di Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati) Corso di Informatica (Basi di Dati) Lezione 1 (12 dicembre 2008) Introduzione alle Basi di Dati Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini,

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

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

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

Dettagli

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Introduzione ai Sistemi di Gestione di Basi di Dati XML Introduzione ai Sistemi di Gestione di Basi di Dati Introduzione ai Sistemi di Gestione di Basi di Dati Obiettivi Memorizzare ed estrarre documenti da RDBMS. Trasformare dati tabellari in dati e viceversa.

Dettagli

MODELLO RELAZIONALE. Introduzione

MODELLO RELAZIONALE. Introduzione MODELLO RELAZIONALE Introduzione E' stato proposto agli inizi degli anni 70 da Codd finalizzato alla realizzazione dell indipendenza dei dati, unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO Modulo 1: IL LINGUAGGIO HTML Formato degli oggetti utilizzati nel Web Elementi del linguaggio HTML: tag, e attributi

Dettagli

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati Basi di dati Il Modello Relazionale dei Dati Proposto da E. Codd nel 1970 per favorire l indipendenza dei dati Disponibile come modello logico in DBMS reali nel 1981 (non è facile realizzare l indipendenza

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

Ottimizzazione delle interrogazioni (parte I)

Ottimizzazione delle interrogazioni (parte I) Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di

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

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse Politecnico di Milano View integration 1 Integrazione di dati di sorgenti diverse Al giorno d oggi d la mole di informazioni che viene gestita in molti contesti applicativi è enorme. In alcuni casi le

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

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro Database relazionali: un'introduzione Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro Rappresentazione astratta di aspetti del mondo reale (Universe

Dettagli

Volumi di riferimento

Volumi di riferimento Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di

Dettagli

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo Gestione delle transazioni Introduzione Transazioni in SQL Linguaggio SQL: costrutti avanzati 2 applicativo Operazioni bancarie operazione di prelievo dal proprio conto corrente mediante bancomat Gestione

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

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

BASI DI DATI - : I modelli di database

BASI DI DATI - : I modelli di database BASI DI DATI - : I modelli di database DAL 1960 ci si e' orientati verso 3 direzioni: 1 MODELLO GERARCHICO Se i dati si presentano naturalmente in una struttura ad albero (ES. File System) Limiti: rigidità

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione

Dettagli

Lezione 2. Il modello entità relazione

Lezione 2. Il modello entità relazione Lezione 2 Il modello entità relazione Pag.1 Introduzione alla progettazione delle basi di dati 1. Analisi dei requisiti Quali sono le entità e le relazioni dell organizzazione? Quali informazioni su queste

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

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database Per comprendere al meglio cosa sia un database, dobbiamo prima introdurre il concetto di

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

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli

Indice. pagina 2 di 10

Indice. pagina 2 di 10 LEZIONE PROGETTAZIONE ORGANIZZATIVA DOTT.SSA ROSAMARIA D AMORE Indice PROGETTAZIONE ORGANIZZATIVA---------------------------------------------------------------------------------------- 3 LA STRUTTURA

Dettagli

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Introduzione alle Basi di Dati Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati

Dettagli

Novità di Access 2010

Novità di Access 2010 2 Novità di Access 2010 In questo capitolo: Gestire le impostazioni e i file di Access nella visualizzazione Backstage Personalizzare l interfaccia utente di Access 2010 Creare database utilizzando modelli

Dettagli

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L.

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L. DATA WAREHOUSE Un Dataware House può essere definito come una base di dati di database. In molte aziende ad esempio ci potrebbero essere molti DB, per effettuare ricerche di diverso tipo, in funzione del

Dettagli

9. Architetture di Dominio

9. Architetture di Dominio 9. Architetture di Dominio imparare dall esperienza comune Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 9. Architetture di Dominio 1 / 20 Sommario 1 Architetture

Dettagli

Linee di evoluzione dei Database

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

Dettagli

Caratteristiche principali. Contesti di utilizzo

Caratteristiche principali. Contesti di utilizzo Dalle basi di dati distribuite alle BASI DI DATI FEDERATE Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza Anno Accademico 2006/2007 http://www.dis.uniroma1.it/

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

L architettura di un DBMS

L architettura di un DBMS L architettura di un DBMS sources: Lucidi del corso di Lucidi del corso di Laboratorio di Basi di dati e sistemi informativi, Montesi, Magnani, Corso di laurea in Informatica per il management, Scienze

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

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007 Basi di dati Concetti introduttivi Ultima modifica: 26/02/2007 ESEMPIO INSEGNAMENTI Fisica, Analisi, Informatica Aule Docenti Entità Relazioni Interrogazioni St udent i Database 2 Tabella (I) STUDENTE

Dettagli

Tecnologia di un Database Server (centralizzato) Introduzione generale

Tecnologia di un Database Server (centralizzato) Introduzione generale Introduzione Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Introduzione generale Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

Base di dati e sistemi informativi

Base di dati e sistemi informativi Base di dati e sistemi informativi Una base di dati è un insieme organizzato di dati opportunamente strutturato per lo svolgimento di determinate attività La base di dati è un elemento fondamentale per

Dettagli

Organizzazione delle informazioni: Database

Organizzazione delle informazioni: Database Organizzazione delle informazioni: Database Laboratorio Informatico di base A.A. 2013/2014 Dipartimento di Scienze Aziendali e Giuridiche Università della Calabria Dott. Pierluigi Muoio (pierluigi.muoio@unical.it)

Dettagli

Alessandra Raffaetà. Basi di Dati

Alessandra Raffaetà. Basi di Dati Lezione 2 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Basi di Dati

Dettagli

I Sistemi Informativi

I Sistemi Informativi I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e

Dettagli

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi

Dettagli

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17 Lorenzo Braidi Database design Libro_datadesign.indb 1 23-11-2004 10:06:17 Sommario Introduzione...XI Capitolo 1 Le basi di dati relazionali... 1 Le basi di dati... 1 Un po di storia... 2 I database gerarchici...

Dettagli

DATABASE. nozioni di base

DATABASE. nozioni di base DATABASE nozioni di base Un database è una raccolta di informazioni organizzata in modo da poter essere facilmente accessibile per consultazione, modifiche e aggiornamenti. All'inizio della storia dei

Dettagli

TEORIA sulle BASI DI DATI

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

Dettagli

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI Documenti su Internet LINGUAGGI DI MARKUP Internet permette (tra l altro) di accedere a documenti remoti In generale, i documenti acceduti via Internet sono multimediali, cioè che possono essere riprodotti

Dettagli

Database. Francesco Tapparo Informatica e Bioinformatica 2013-14 1/16

Database. Francesco Tapparo Informatica e Bioinformatica 2013-14 1/16 Database Francesco Tapparo Informatica e Bioinformatica 2013-14 1/16 Trend attuali CPU sempre più potenti Memorie di massa di dimensioni sempre maggiori Eniac: 180m 2 Memoria: 20 numeri di 10 cifre, meno

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

Dettagli

Introduzione alle basi di dati (prima parte)

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

Dettagli

Il Modello Relazionale

Il Modello Relazionale Il Modello Relazionale Il modello relazionale 1 Il modello relazionale Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO TECNICO ECONOMICO MOSSOTTI CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche

Dettagli