Database NoSQL: i GraphDB
|
|
- Serafina Di Lorenzo
- 8 anni fa
- Visualizzazioni
Transcript
1 Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati Database NoSQL: i GraphDB Anno Accademico 2013/2014 Candidato: Daniele Passaretti matr.n46/001340
2
3
4 Indice Introduzione vi 1 NoSQL Databases Che cos è un NoSQL Database? Breve cenni storici Caratteristiche Teorema di CAP e proprietà BASE Elementi Fondanti RDBMS vs NoSQL Panoramica dei NoSQL Key-Value Databases Document Databases Column-Family Stores Graph Databases Graph Database I Grafi applicati ai Database: Graph Databases Flessibilità Performance Agilità Storing Connection Data iii
5 Indice 4 Realizzazione di un Graph DB Cypher Esempio di implementazione di Graph DB: Shakespeare example CREATE del Grafo QUERY sul Grafo Grafi nel mondo Reale Perchè le organizzazioni scelgono i Graph DB Casi d uso Conclusione 24 Bibliografia 26 iv
6 Elenco delle figure 1.1 Ricapitolazione storica Teorema di CAP Struttura dati di un Graph DB Confronto tra RDBMS e GRAPH DB Esempio CREATE Esempio Query v
7 Introduzione Storicamente, con la nascita del web e la divulgazione delle informazioni attraverso tale mezzo, per la gestione delle informazioni venivano usati dei database di tipo relazionale. Negli ultimi anni, con l enorme sviluppo della rete, il notevole aumento degli utenti e quindi delle informazioni da gestire, la nascita dei social network e delle web apps, è emersa l esigenza di dover gestire database di dimensioni sempre maggiori, ossia con dati in continuo cambiamento sia orizzontalmente che verticalmente, i quali fossero capaci di rispettare vincoli di velocità tali da riuscire a soddisfare le esigenze degli utenti. Inizialmente, per gestire queste problematiche si è cercato di capire come poter migliorare i sistemi RDBMS per tali finalità. Si è osservato che per migliorare le prestazioni legate alla velocità si poteva limitare l uso del JOIN, costruendo tabelle più annidate; ma questa soluzione comportava una serie di problematiche ancora più complesse da gestire e andava ulteriormente a contribuire al primo problema suddetto, ossia l aumento delle dimensioni del database. Per ovviare a tutte queste problematiche, si è deciso di ricorrere ad una nuova tipologia di database, i NoSQL Database (Not Only SQL Database). Alla famiglia dei NoSQL DB appartengono varie tipologie di database, vi
8 Introduzione ognuna con caratteristiche in comune e non. In questo elaborato faremo solo un accenno ai NoSQL DB con relative caratteristiche, e una panoramica generale delle varie tipologie di NoSQL DB presenti sul mercato. Ci so ermeremo soprattutto sulla famiglia dei GraphDB, partendo dalla descrizione del concetto di grafo, su come questo può essere sfruttato e applicato per modellare un database, e sulle caratteristiche e la struttura implementativa di una query in un GraphDB, per capirne i vantaggi sia teorici che applicati a casi reali. vii
9 Capitolo 1 NoSQL Databases In questo capitolo verrà descritto che cos è un NoSQL DB attraverso la sua storia, le sue caratteristiche, e le di erenze rispetto ai Relational Databases. 1.1 Che cos è un NoSQL Database? Breve cenni storici. Spesso, quando si sente il termine NoSQL DB si pensa che questo faccia riferimento a tutti quei database che non usano SQL; in Realtà l acronimo di questa sigla è Not Only SQL,che sta ad indicare tutti quei database che vanno oltre l utilizzo di SQL; ossia che possono sfruttare anche SQL ma hanno una struttura molto più complessa del classico SQL. Il termine NoSQL viene utilizzato per la prima volta nel 1998, quando Carlo Strozzi pubblica un database open-source non basato sulla struttura tipica di SQL. Si ritornerà a parlare di SQL solo dopo alcuni anni. Infatti tale termine diventa protagonista nel 2009 come hashtag di twitter per indicare un evento di basi di dati distribuite. Al centro dell evento troviamo i due 1
10 Capitolo 1. NoSQL Databases database che potrebbero essere definiti i precursori dei NoSQL DB: Dynamo e BigTable. Anche se diventa una realtà solo dopo il 2009, bisogna fare un piccolo cenno agli anni precedenti al fine di comprendere qual è stato l e ettivo sviluppo e l esigenza da parte delle aziende di perseguire questa strada. Nel 2004 Google, per dover gestire e migliorare i sistemi legati ai propri servizi on-line decide di investire su un nuovo progetto: MapReduce, un sistema distribuito che nel 2006 è stato utilizzato per implementare BigTable. Sulle orme di BigTable, Amazon sviluppa Dynamo e lo presenta nel Da questi due grandi progetti prendono spunto vari hobbisti per realizzare DB di erenti che puntassero a risolvere problematiche di diversa natura, che con i classici database relazionali, non si riuscivano a risolvere in maniera performante. Contemporaneamente anche altre società tra cui IBM, Facebook, Yahoo, EBay, Netflix investono e sviluppano nuovi sistemi che poi rientreranno tra i NoSQL BD. Oggi noi classifichiamo varie tipologie di NoSQL DB, ognuna con determinate caratteristiche in comune e non. Figura 1.1: Ricapitolazione storica 2
11 Capitolo 1. NoSQL Databases 1.2 Caratteristiche Sulla base di quanto suddetto i NoSQL DB nascono e si sviluppano per cause e necessità varie al contrario di un RDBMS in cui fondamentali sono le proprietà ACID. Dunque, non si ha più come obiettivo principale quello di garantire le proprietà ACID, ma si parla di proprietà BASE, in relazione al Teorema di CAP. Dunque, cardine di questi DB, è la disponibilità dei dati e la relativa velocità nel recuperare gli stessi a discapito della consistenza Teorema di CAP e proprietà BASE Nei NoSQL DB, la consistenza non è una proprietà stringente come negli RDBMS, quindi possiamo parlare di Relax Consistency. A supporto di tale caratteristica troviamo il teorema di CAP. Tale teorema fu originariamente proposto da Eric Brewer nel 2000 e poi formalmente espresso da Seth Gilbert e Nancy Lynch. Il Teorema di CAP a erma che è impossibile per un sistema informatico distribuito fornire simultaneamente tutte e tre le seguenti garanzie: Coerenza, Disponibilità, Tolleranza di Partizione. Secondo il teorema, un sistema distribuito è in grado di soddisfare al massimo due di queste garanzie allo stesso tempo, ma non tutte e tre, cit:[4]. Tale teorema può essere espresso graficamente come in figura 4.1 Ora, applicando questo teorema ad un sistema che deve rispettare le proprietà BASE, si osserva che tra le tre proprietà sopra indicate, sacrificabile è la consistency. Perl availability dobbiamo fare un ulteriore osservazione. Nei sistemi in cui si vuole trovare un compromesso tra availability e consistency, si può parlare di Latency. La Latency ci indica il limite di tempo che l utente è disposto a sopportare per definire un sistema 3
12 Capitolo 1. NoSQL Databases Figura 1.2: Teorema di CAP availability. Le proprietà BASE esprimono le caratteristiche fondamentali di un No- SQL DB, infatti queste, sacrificando la consistenza, mirano a garantire la disponibilità dell informazione e la scalabilità del sistema. Sono esprimibili dal seguente acronimo: Basically Available: bisogna garantire la dispnibilità delle informazioni; Soft State: il sistema può cambiare stato nel tempo anche in assenza di Letture o Scritture; Eventual Consistency: la consistenza va garantita nel tempo attraverso sistemi di recupero della consistenza Elementi Fondanti Ogni NoSQL DB, come abbiamo già detto, punta a garantire alte performance di velocità e disponibilità a costi contenuti, a discapito della 4
13 Capitolo 1. NoSQL Databases consistenza. Per fare ciò questi devono avere i seguenti elementi fondamentali: Ambiente Multi-Nodo: il sistema è distribuito su più cluster, che a loro volta singolarmente possono essere aggiunti o rimossi dal sistema; Sharding dei Dati: con algoritmi ottimizzati, i dati vengono distribuiti sui vari nodi; grazie a tali algoritmi è possibile gestire tali dati in maniera molto semplice; Replica delle Informazioni: i dati distribuiti su più nodi a loro volta vengono duplicati su ulteriori nodi per avere una maggiore integrità e performance; Eliminazione della Complessità: grazie ai meccanismi usati per distribuire il carico si cerca di eliminare la complessità riscontrata in molti sistemi RDBMS; Correlazione dei Dati: escludendo i sistemi Graph DB in cui le Relazioni variano nel tempo e hanno meccanismi di erenti dai restanti NoSQL BD, si cerca di gestire e distribuire i dati in maniera aggregata, così da facilitare le correlazioni tra i dati; 1.3 RDBMS vs NoSQL Confrontando queste due tipologie di database si osserva che due sono i fattori fondamentali su cui si poggia tale confronto:standardizzazione degli RDBMS e Scalabilità e Costo dei NoSQL. Standardizzazione: questo elemento è a vantaggio degli RDBMS, poichè si osserva che i vari RDBMS sono standardizzati tra loro; così si ha che 5
14 Capitolo 1. NoSQL Databases una data query fatta in un determinato linguaggio o ambiente di lavoro è facilmente applicabile ad un altro database RDBMS; quindi anche lo stesso database realizzato in un dato ambiente è facilmente interfacciabile con un altro RDBMS o con un determinato ambiente di sviluppo software applicativo. Invece per i NoSQL DB, come vedremo meglio in seguito, ciò non è possibile perché sono tra loro molto di erenti sia a livello concettuale teorico, che implementativo. Questi sono il risultato di esigenze avvenute negli anni, infatti puntano a risolvere determinate problematiche senza pensare al resto. Scalabilità e Costo: si osserva che proprio a fronte delle problematiche che i NoSQL DB sono chiamati a risolvere, devono essere flessibili e scalabili. Infatti, questi sono progettati per essere scalabili orizzontalmente a costi ridotti, mantenendo performance altissime, cosa che non è assolutamente applicabile a sistemi RDBMS, in quanto questi ultimi hanno una struttura schematica tabellare. Inoltre gli RDBMS puntano proprio ad evolversi prettamente in verticale e, in parallelo a tale evoluzione, per rimanere performanti richiedono un hardware dedicato e sempre più costoso, contrariamente all hardware richiesto da un NoSQL DB. 6
15 Capitolo 2 Panoramica dei NoSQL Finora sono state implementate varie tipologie di NoSQL DB, in base alle esigenze, ognuna con peculiarità e scopi di erenti. In questo capitolo faremo una panoramica sui principali NoSQL DB presenti sul mercato, spiegandone le caratteristiche e i vantaggi in relazione al loro utilizzo. 2.1 Key-Value Databases Un Key-Value Database può essere definito come una semplice hashtable, principalmente usato quando bisogna accedere al database prettamente attraverso la PRIMARY KEY. Di base possiamo vedere un keyvalue DB come un RDBMS con due colonne: la prima per la key ela seconda per il value. La di erenza fondamentale con gli RDBMS è data proprio dal value nei quali è rappresentato da un tipo di cui sappiamo le caratteristiche, mentre qui il value può essere definito come un blob(oggetto o struttura di cui non conosciamo come è fatto). Proprio per la struttura appena descritta, bisogna osservare che questo database permette una facile scalabilità orizzontale, ma permette query solo sulla key, non conoscendo nulla sui dati 7
16 Capitolo 2. Panoramica dei NoSQL del value. A tal porposito importante ricordare DynamoDB, il primo key-value DB, lanciato da Amazon. 2.2 Document Databases Il concetto base su cui sono fondati tali Database è quello dei documenti. Il database scrive e restituisce documenti, che possono essere XML, JSON, BSON, e altri ancora. Questi documenti possono trovarsi in molteplici forme e strutture. Tali database sono spesso confrontati con i Key-Value DB, poichè è possibile vedere i documenti contenuti come dei value esaminabili. Da ciò è semplice osservare che, in questo caso è possibile estendere le query anche sulle informazioni contenute nei documenti. Questi DB sono molto usati oggi sul mercato, poiché oltre ad avere dati aggregati, riescono bene a gestire le query. Tra essi uno dei più di usi è MongoDB. 2.3 Column-Family Stores I database di questa categoria introducono il concetto di Column- Family. A di erenza di un database relazionale dove non è possibile avere attributi multi-valore, poichè gli attributi vengono divisi in attributi atomici, qui vengono raggruppati in column-family. Infatti un column-family stores permette di scrivere dati chiave mappati con i valori a loro volta raggruppati in column family multiple. Ogni column family è a sua volta un map di dati; inoltre ogni column-family è costituita da molteplici righe, ognuna formata da un chiave e una serie di colonne contenenti i valori. Spesso tali database sono realizzati per consentire accessi a blog, 8
17 Capitolo 2. Panoramica dei NoSQL poichè permettono di inserire link, categorie e tag nelle varie colonne. Un DB molto noto appartenente a tale categoria è Cassandra. 2.4 Graph Databases Un Graph Database permette di scrivere entità e relazioni tra più entità. Le Entità sono indicate dai Nodi, che hanno proprietà. Un nodo può essere visto come l istanza di un oggetto in un applicazione. Le Relazioni sono indicate dagli Archi, che a loro volta possono avere proprietà, la cui direzione permette di definire o trovare gli schemi comuni tra i nodi. Fondamentale, come si vedrà, è che qui i dati sono scritti, indicizzati ed interpretati in vari modi in base alle Relazioni. Un elemento che li contraddistingue e che ha permesso la di usione di tali DB è legato al modo in cui vengono realizzate le query sui grafi: esse sono localizzate solamente alla zona o ai nodi di interesse del grafo; ciò permetterà una serie di vantaggi che verranno approfonditi in seguito. Tra i più noti Graph DB dobbiamo ricordare Neo4j. 9
18 Capitolo 3 Graph Database 3.1 I Grafi applicati ai Database: Graph Databases Prima di parlare dei Graph DB, è utile definire il concetto di Grafo. Un grafo è una collezione di vertices ed edges, ounsetdinodes(nodi) e relationships(relazioni espresse da archi con frecce) che connettono questi. I grafi rappresentano le Entità(attraverso i nodi) e come queste entità sono connesse(attraverso le relationships). In questo modo tale struttura permette di modellare tutti i tipi di scenari. Un grafo inoltre deve avere le seguenti proprietà: contenere Nodi e Relazioni; i Nodi contengono Proprietà(espresse da valori); le Relazioni hanno un nome, sono dirette e hanno sempre un inizio eunafine; le Relazioni possono anche contenere proprietà; 10
19 Capitolo 3. Graph Database Un Graph database è un on-line management system che rispetta i metodi CRUD(Create, Remove, Update, e Delete) ed è associato ad un Graph Data Model. Come si è detto precedentemente i grafi, se da un lato ci permettono di esprimere concetti molto complessi in maniera semplice, dall altro presentano una problematica non trascurabile: non ci sono tecniche universali abbastanza adeguate che ci permettono di modellare facilmente tale struttura rispetto ad un qualsivoglia problema. In compenso i Graph Databases o rono flessibilità, performance, e si accoppiano bene nei sistemi di sviluppo agile del software Flessibilità Grazie alla loro flessibilità, lo sviluppatore può non conoscere a priori le caratteristiche del DB, e quindi tutte le problematiche del dominio che in futuro si potrebbero presentare con l espansione dello stesso. Infatti la flessibilità è data dalla scalabilità orizzontale. I grafi sono additivi, ciò significa che possiamo aggiungere nuovi tipi di relazioni, nuovi nodi, e nuovi sotto-grafi per una struttura esistente, senza dover modificare query e le funzionalità applicative esistenti Performance Una problematica predominante negli RDBMS è legata al costo del JOIN nelle query, soprattutto in relazione alla dimensione del database. In un Graph DB il costo tende a rimanere costante al crescere del Data-set, dal momento che le query sono localizzate alla sola porzione del grafo su cui agiscono. 11
20 Capitolo 3. Graph Database Agilità Si definiscono sistemi agili quei sistemi che sono in continua evoluzione. Oggi la necessità da parte delle aziende di cambiare sempre più spesso e in breve tempo le loro politiche e metodologie di business, ha fatto si che metodi evolutivi, tra cui le metodologie agili, diventassero sempre più di usi. Inoltre, in parallelo a quelle che sono le necessità di evolvibilità del software, vi è la necessità di ristrutturare e far evolvere anche i database da quest ultimo usati. I Graph Databases sono dei sistemi che, grazie alla loro scalabilità orizzontale e verticale, e alla località delle query rispetto a possibili modifiche della stessa struttura del database, si accoppiano bene con tali metodologie. 3.2 Storing Connection Data Si osserva che i database relazionali, anche se riescono ad esprimere le relazioni tra due o più entità, hanno alla base strutture di tipo tabellare, e l unico modo per esprimere una relazione è attraverso il JOIN. Il JOIN però, a sua volta, comporta una serie di problematiche legate alla performance e alla quantità di dati inutili che essa genera e deve gestire. Di queste porblematiche ne mensioniamo le principali: Le JOIN tables aggiungono un accidentale complessità; Overhead legato alla FOREIGN KEY; Inoltre se da una semplice JOIN passiamo ad una JOIN INNESTATA tra più tabelle, tali problematiche si amplificano, così da ottenere che la complessità per la risoluzione di una query, dove vi sono JOIN INNESTA- TE, aumenta enormemente con la profondità. Questo problema è ereditato 12
21 Capitolo 3. Graph Database anche da molti altri NoSQL DB, che pur risolvendo molti problemi legati ai campi nulli e alla ridondanza dei dati grazie alla loro struttura aggregata, non sono performanti rispetto alle relazioni che ci sono all interno di un database. I graph DB, basati proprio sul concetto di Relazione, risolvono questo problema già all origine poiché la loro struttura non è tabellare, nè aggregata. Qui si parla di stored as connection data. Per risolvere tale problema, i Graph DB usano l index-free adjacency dove ogni nodo ha un esplicito riferimento ai nodi adiacenti e non ha bisogno di ulteriori indici per trovare questi. Inoltre qui per ottimizzare le graph traversal performance, le informazioni sui nodi, sulle relazioni e sulle proprietà vengono scritte su file di erenti. Figura 3.1: Struttura dati di un Graph DB Per dimostrare ciò che è stato appena detto abbiamo considerato un esperimento fatto da Partner e Vukotic, in cui è stata fatta una query su 13
22 Capitolo 3. Graph Database un database di un social networks che avesse l obiettivo di trovare gli amici degli amici; date due persone scelte casualmente e un percorso che connettesse loro al più di una profondita di cinque relationships. In un social network con di persone sono stati ottenuti i risultati in figura 3.2, dove si può osservare la di erenza dei tempi ottenuti con l aumentare della profondità tra Neo4j (graphdb) e un RDBMS. Figura 3.2: Confronto tra RDBMS e GRAPH DB 14
23 Capitolo 4 Realizzazione di un Graph DB In questo capitolo descriveremo come modellare un graph DB, quindi ci serviremo di un graph query language, per mostrare come creare un database e come fare query. A tale scopo abbiamo deciso di adoperare Cypher. 4.1 Cypher Cypher è un declarative graph query language che permette di fare e cientemente operazioni di query e update (CRUD) su un graph DB. Cypher è un linguaggio potente, fluido e semplice da imparare e da comprendere. Come la maggior parte dei query language, Cypher è composto da clausole, di cui alcune fondamentali ed altre opzionali, sia per le query che per altre operazioni sul database. La semplice query è formata da una clausola START, seguita da una MATCH e una RETURN. 15
24 Capitolo 4. Realizzazione di un Graph DB START: specifica uno o più punti di partenza (nodi o relationships) in un grafo. Questi punti di partenza sono ottenuti via indice o accesso diretto basato su ID del nodo o della relationship. MATCH: questa clausola ci permette di indicare come e quali nodi mettere in connessione nella query, ossia indica la relazione che c è tra i nodi. Essa può mettere più nodi in connessione attraverso un unico match. RETURN questa clausola specifica quali nodi, relazioni, e proprietà espresse dal MATCH dovrebbero ritornare come risultato della query. Oltre alle tre clausole sopra descritte, essenziali per una query, possiamo usare ulteriori clausole che ci permettono di fare operazioni sul DB o a nare le query stesse: WHERE: ci permette di stabilire dei criteri per filtrare i risultati del matching. CREATE, CREATE UNIQUE: ci permette di creare nuove Relationships e Nodi. DELETE: rimuove Relazioni, Nodi e proprietà. SET: setta i valori delle Proprietà. FOREACH: un azione di update per ogni elemento della lista. UNION: unisce il risultato di due o più query. 16
25 Capitolo 4. Realizzazione di un Graph DB WITH: concatena parti di query avanzando dalla prima in avanti (simile al comando piping di UNIX ). 4.2 Esempio di implementazione di Graph DB: Shakespeare example In questo paragrafo abbiamo preso un esempio già implementato per spiegare approfonditamente come realizzare un graph DB e come fare query, su quest ultimo CREATE del Grafo Per creare il DB presente in figura 4.1 abbiamo usato la CREATE; tale create è eseguibile a runtime e ci permette di implementare l intero grafo in un unico statement. La procedura in figura 4.1 Crea nodi(rigo 1) e relazioni(rigo 3) contemporaneamente. Noi potremmo modificare il grafo in 2 modi: aggiungendo nuove relazioni e nodi al grafo, oppure modificando le esistenti. 17
26 Capitolo 4. Realizzazione di un Graph DB Figura 4.1: Esempio CREATE 18
27 Capitolo 4. Realizzazione di un Graph DB QUERY sul Grafo Ora spiegheremo come realizzare una query che ci restituisca tutte le performance dei spettacoli scritti da Shakespeare nel Teatro Teatre Royal di Newcastle. START Creato il grafo, dobbiamo fare delle query su questo. In Cypher dobbiamo iniziare una query da uno o più punti di START, chiamati bound nodes, inoltre, anche se meno frequente possiamo partire anche da una o più relazioni. Nel nostro esempio se vogliamo scoprire delle informazioni sugli eventi, sul Teatro e su Shakespeare usiamo come punti di STARD quelli mostrati in figura 4.2. MATCH Dopo aver definito i punti di START da cui deve partire la query, viene la parte chiave della query, attraverso la clausola MATCH. Qui descriviamo cosa desideriamo trovare all interno del database. La clausola MATCH si serve di elementi sintattici opzionali per descrivere le relazioni su cui vuole fare la ricerca e i criteri della ricerca da fare. Nell esempio analizzato in figura 4.2, osserviamo che attraverso il primo rigo restringiamo la ricerca del theater ( Theatre Royal come indicato dalla START) alla sola città di Newcastel, definita sempre dalla START con la relazione city; infatti qui associamo theater attraverso la relazione <-[STREET CITY*1..2]- che indica che tale teatro non può essere associato a più di due città o strade Newcastle. Poi troviamo (theater)<-[:venue]-(), qui si osserva che non siamo interessati ad un specifica relazione (in questo caso performance) con tale teatro infatti si ha un anonymous node, poi siccome non siamo interessati a specificare nessuna produzione di interesse troviamo ()-[:PERFORMANCE OF]- >()-[:PRODUCTION OF]->. Infine, troviamo (play)<-[:wrote 19
28 Capitolo 4. Realizzazione di un Graph DB PLAY]-(bard) che ci indica l autore (bard:=shakespeare) e soprattutto a cosa siamo interessati (che con riferimento al nostro esempio è il play ). RETURN In questo esempio usiamo la RETURN DISTINCT che indica quale nodo restituire in relazione a possibili vincoli e quali attributi restituire. nel nostro caso siamo interessati al titolo. Come abbiamo già detto oltre alle tre clausole fondamentali, per fare una query possiamo aggiungere delle ulteriori clausole che ci permettono di filtrare ulteriormente i risultati della RETURN, ad esempio,ne nostro caso con la WHERE otteniamo solo gli spettacoli la cui data di scrittura è successiva al Figura 4.2: Esempio Query 20
29 Capitolo 5 Grafi nel mondo Reale In questo capitolo mostreremo alcuni casi di Graph DB nel mondo reale, motivando le cause, per cui si è scelto di utilizzare un Graph DB anzichè un RDBMS o un altro tipo di NoSQL DB. 5.1 Perchè le organizzazioni scelgono i Graph DB Già abbiamo visto le potenzialità di un Graph DB legate alle performance e all espressività che questo ci o re nella risoluzione di molteplici problemi, ma spesso le organizzazioni prediligono un Graph Database anche per le seguenti ragioni: Minutes to millisenconds performance L obiettivo principale di molte organizzazioni è legato alla performance delle query per le loro piattaforme. Essendo un DB rivolto per lo più a sistemi transazionali online o applicazioni web di enormi dimensioni, un requisito fondamentale per l utente finale è che il sistema risponda in pochi millisecondi. Nel mondo relazionale, come già si è detto, a causa dell enorme dimensione del data-set e del costo computazionale della JOIN, tali parametri di e cienza 21
30 Capitolo 5. Grafi nel mondo Reale sono irraggiungibili. Invece un graph DB, grazie all index-free adjacency, risolve questo problema. Drastically accelerated development cycles I graph DB, grazie al modello basato sui grafi, riduce in maniera naturale il gap semantico che c è tra il modello ad ogetti e il modello tabulare. Inoltre anche per quanto riguarda il dominio su cui verte il database in questione grazie a tale modello, risulta semplice da leggere e comprendere lo stesso modello da parte di tutti coloro che devono lavorare sul progetto: sia per gli sviluppatori che per chi si occupa delle problematiche di business, dal momento che entrambi utilizzano i grafi per comprendere e rappresentare le problematiche in question. Extreme business responsiveness In passato i sistemi database, essendo RDBMS, avevano una struttura dati di tipo tabulare e non erano molto scalabili orizzontalmente; motivo per cui, con l evoluzione del business era richiesta un enorme quantità economica per aggiornare tali sistemi e riadattarli o per fare vere e proprie migrazioni in nuovi sistemi. Di contro un graph DB, avendo una struttura di tipo free nature, cioè senza schema, è ben predisposto all evoluzione. 5.2 Casi d uso In questa sezione descriveremo alcuni casi d uso reali in cui è conveniete utilizzare un graph DB. Social I Social networks, data la loro struttura e i loro scopi, che sono basati sul concetto di relationship. Dunque per poter migliorare le loro 22
31 Capitolo 5. Grafi nel mondo Reale performance e facilitare il loro utilizzo devono avere un database ottimizzato per tali finalità. Basti pensare a Facebook, a cui possiamo associare il termine social graph. Nei social networks attraverso la semantica dei graph DB riusciamo farcilmente ad identificare le relazioni dirette o indirette che ci sono tra persone e gruppi. Le relazioni sociali potrebbero essere esplicite o implicite. Le relazioni Esplicite occorrono in presenza di un link diretto, come un link di Facebook (amici di facebook); un caso di relazione implicita si ha quando in un legame tra due nodi, nel caso di facebook tra due amici, si hanno degli intermediari che legano tale relazione (amico dell amico). Geospatial Nelle applicazioni Geospaziali vengono usati i Graph DB, poichè la loro struttura è molto performante nel calcolo di rotte tra due posti in una rete astratta, come ad esempio una strada o una rete ferroviaria, o per trovare dei punti di interesse in una determinata area. Spesso se il dominio di interesse è quello geospaziale, per la struttura dei dati viene predileto un R-tree. 23
32 Capitolo 6 Conclusione In questo elaborato siamo partiti dal presentare i NoSQL DB muovendoci attraverso le problematiche che hanno portato hobbisti ed aziende ad investire risorse umane ed economiche per lo sviluppo di tali sistemi, spiegandone caratteristiche, vantaggi e svantaggi rispetto ai sistemi RDBMS. Poi ci siamo so ermati sui GraphDB, partendo dal concetto di Grafo, con le relative caratteristiche arrivando a spegare come, tale struttura possa essere utilizzata per modellare un database per un problema di dominio comune. Inoltre ci siamo concentrati sulle motivazioni per cui tali database fossero, per determinati casi d uso, molto più performanti rispetto ad un RDBMS, sia dal punto di vista semantico che prestazionale. Dopo aver fatto un esempio di Graph DB, abbiamo fatto accenno ad alcuni casi reali di utilizzo di tale tipologia di database. Possiamo concludere partendo con un osservazione fatta sui NoSQL DB. Se nel nostro dominio applicativo non ci sono tantissime Relazioni ma il database deve contenere moltissimi dati da dovere gestire e su cui fare molte operazioni un RDBMS è sconsigliabile, poichè potrebbe non riu- 24
33 Capitolo 6. Conclusione scire a soddisfare le performance richieste. Contrariamente con un NoSQL DB di tipo Key-Value DB o Document DB riusciremmo bene a gestire i dati, anche se sono eterogenei (presenza di attributi NULL o multi-valore). Se si ha un dominio in cui le relazioni sono fondamentali e le operazioni da fare riguardano prettamente i legami che ci sono tra le entità coinvolte si predilige un Graph DB. I Graph DB grazie alla loro semantica riescono ad esprimere ed a far emergere informazioni sulle Relazioni che ci sono tra le Entità, direttamente o indirettamente. Questi sono semplici da comprendere anche per coloro che non conoscono i database. Certamente si osserva che siamo ancora in uno stato embrionale per poter comprendere la loro potenzialità rispetto ai sistemi RDBMS, usati comunemente oggi. Ma per come si è evoluta e si sta evolvendo l informazione, questi, fra qualche anno, rappresenteranno una gran fetta dei sistemi di basi di dati. 25
34 Bibliografia [1] Pramod J. Sadalage, Martin Fowler, NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence, Pearson - Addison-Wesley. [2] Ian Robinson, Jim Webber e Emil Eifrem, Graph Databases, O REILLY. [3] Massimo Carro, NoSQL Databases, [4] CAPcite note-3 (visualizzato il ) [5] Neo4j Manual. 26
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
DettagliOrganizzazione 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
DettagliControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi
ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,
DettagliLinee 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
DettagliBig 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
DettagliIntroduzione 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
DettagliLezione 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
DettagliHBase 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
DettagliDBMS (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
DettagliIntroduzione 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
DettagliI 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
DettagliCorso 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
DettagliDatabase. 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
DettagliCapitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
Dettaglie-dva - eni-depth Velocity Analysis
Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa
DettagliSQL, NoSQL, o entrambi?
Introduzione Nella prima parte di questo corso abbiamo fatto una prima introduzione sul quando e come scegliere un database per risolvere un determinato problema. In questa parte finale vedremo attraverso
DettagliCapitolo 2. Operazione di limite
Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A
DettagliBASI 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
DettagliIndice 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)
DettagliMODULO 5 Appunti ACCESS - Basi di dati
MODULO 5 Appunti ACCESS - Basi di dati Lezione 1 www.mondopcnet.com Modulo 5 basi di dati Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database.
DettagliLe 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
DettagliIntroduzione 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
Dettagli2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso
2.0 Gli archivi All interno della sezione archivi sono inserite le anagrafiche. In pratica si stratta di tutti quei dati che ricorreranno costantemente all interno dei documenti. 2.1 Inserire gli archivi
DettagliProgettaz. 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
DettagliCOMUNIC@CTION INVIO SMS
S I G e s t S.r.l S e d e l e g a l e : V i a d e l F o r n o 3 19125 L a S p e z i a T e l e f o n o 0187/284510/15 - F a x 0187/525519 P a r t i t a I V A 01223450113 COMUNIC@CTION INVIO SMS GUIDA ALL
DettagliLezione 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
DettagliCapitolo 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
DettagliLezione 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)
DettagliIntroduzione 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
Dettagli1. 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
DettagliArchivi e database. Prof. Michele Batocchi A.S. 2013/2014
Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi
DettagliProgettazione della componente applicativa
7 Progettazione della componente applicativa In questo capitolo illustreremo la progettazione della componente applicativa di un sistema informativo. La metodologia da noi utilizzata sarà basata sull utilizzo
DettagliArchitetture Applicative
Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture
DettagliGuida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
DettagliMANUALE PARCELLA FACILE PLUS INDICE
MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella
DettagliI database relazionali (Access)
I database relazionali (Access) Filippo TROTTA 04/02/2013 1 Prof.Filippo TROTTA Definizioni Database Sistema di gestione di database (DBMS, Database Management System) Sistema di gestione di database relazionale
DettagliDatabase 1 biblioteca universitaria. Testo del quesito
Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole
DettagliObiettivo Principale: Aiutare gli studenti a capire cos è la programmazione
4 LEZIONE: Programmazione su Carta a Quadretti Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10 Minuti Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione SOMMARIO:
DettagliProgettazione di un Database
Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di
DettagliSISTEMI 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
DettagliDispensa 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
DettagliAttività federale di marketing
Attività federale di marketing Gestione e certificazione delle sponsorizzazioni Il Feedback Web Nel piano di sviluppo della propria attività di marketing, la FIS ha adottato il sistema Feedback Web realizzato
DettagliIntroduzione 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
DettagliStrutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
DettagliBASE 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
DettagliGRUPPO MY- social media solutions / Via G.Dottori 94, Perugia / PI 03078860545
Capitolo 3 - Dalla strategia al piano editoriale GRUPPO MY- social media solutions / Via G.Dottori 94, Perugia / PI 03078860545 Social Toolbox ed i contenuti presenti nel seguente documento (incluso a
DettagliLe effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi
Le effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi Indagine ottenuta grazie alla somministrazione di questionario ad oltre 260
Dettaglimartedì 17 aprile 12 1
1 Come nasce l impresa La voglia di crescere creare qualcosa che non esiste Così nel 2000 dopo anni di esperienza nel settore informatico nasce 2 Intenzione Creare un software in grado di gestire progetti
DettagliDimensione di uno Spazio vettoriale
Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione
DettagliProgettazione concettuale
Progettazione concettuale Strategie top-down A partire da uno schema che descrive le specifiche mediante pochi concetti molto astratti, si produce uno schema concettuale mediante raffinamenti successivi
DettagliProgettazione 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
DettagliModello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli
Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli gerarchico e reticolare sono più vicini alle strutture
DettagliFacoltà 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
DettagliAnalisi e diagramma di Pareto
Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo
DettagliInformatica 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à
DettagliAppunti di Sistemi Distribuiti
Appunti di Sistemi Distribuiti Matteo Gianello 27 settembre 2013 1 Indice 1 Introduzione 3 1.1 Definizione di sistema distribuito........................... 3 1.2 Obiettivi.........................................
DettagliScenario 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
DettagliEsercizio data base "Biblioteca"
Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni
DettagliProgettaz. 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)
DettagliARCHIVI E DATABASE (prof. Ivaldi Giuliano)
ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).
DettagliBasi 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
DettagliCORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)
Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni
DettagliSOLUZIONE Web.Orders online
SOLUZIONE Web.Orders online Gennaio 2005 1 INDICE SOLUZIONE Web.Orders online Introduzione Pag. 3 Obiettivi generali Pag. 4 Modulo di gestione sistema Pag. 5 Modulo di navigazione prodotti Pag. 7 Modulo
DettagliISTRUZIONI PER LA GESTIONE BUDGET
ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET
DettagliExport Development Export Development
SERVICE PROFILE 2014 Chi siamo L attuale scenario economico nazionale impone alle imprese la necessità di valutare le opportunità di mercato offerte dai mercati internazionali. Sebbene una strategia commerciale
DettagliMODELLO 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)
DettagliBasi di Dati Multimediali. Fabio Strocco
Basi di Dati Multimediali Fabio Strocco September 19, 2011 1 Contents 2 Introduzione Le basi di dati (o database) hanno applicazioni in molti campi, in cui è necessario memorizzare, analizzare e gestire
DettagliMANUALE MOODLE STUDENTI. Accesso al Materiale Didattico
MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...
DettagliFile, Modifica, Visualizza, Strumenti, Messaggio
Guida installare account in Outlook Express Introduzione Questa guida riguarda di sicuro uno dei programmi maggiormente usati oggi: il client di posta elettronica. Tutti, ormai, siamo abituati a ricevere
DettagliConcetti fondamentali dei database database Cos'è un database Principali database
Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione
DettagliIpertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a. 2011-2012
Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Ipertesti e Internet Prof.ssa E. Gentile a.a. 2011-2012 Ipertesto Qualsiasi forma di testualità parole, immagini,
DettagliAPPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI
APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................
DettagliGHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.
*+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti
DettagliTEORIA 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
DettagliUniversità degli Studi di Salerno
Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Algoritmi basati su formule di quadratura interpolatorie per GPU ABSTRACT
DettagliIntroduzione 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
DettagliBanca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste
Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)
DettagliGuida alla registrazione on-line di un DataLogger
NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso
DettagliRaggruppamenti Conti Movimenti
ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli
Dettaglicorso di Access MICROSOFT ACCESS Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012
1 MICROSOFT ACCESS 1 Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012 Che cos'è Access? 2 Access è un'applicazione database (DBMS), cioè un programma che serve a gestire
DettagliSOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE
Pag. 1 di 16 SOFTWARE A SUPPORTO DELLA (VERS. 3.1) Specifica dei Requisiti Utente Funzionalità di associazione di più Richiedenti ad un procedimento Codice Identificativo VERIFICHE ED APPROVAZIONI CONTROLLO
DettagliIl calendario di Windows Vista
Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative
DettagliINFORMATICA. 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
DettagliOrganizzazione 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)
DettagliDalla progettazione concettuale alla modellazione di dominio
Luca Cabibbo A P S Analisi e Progettazione del Software Dalla progettazione concettuale alla modellazione di dominio Capitolo 91 marzo 2015 Se qualcuno vi avvicinasse in un vicolo buio dicendo psst, vuoi
DettagliBASI 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à
DettagliMANUALEDIUTILIZZO MODULO CRM POSTVENDITA
MANUALEDIUTILIZZO MODULO CRM POSTVENDITA INDICE INTRODUZIONE INSERIMENTO CHIAMATA CHIAMATE Dettaglio Chiamate Macchine Coinvolte Documenti Riepilogo MACCHINE Dettaglio Macchine Documenti Interventi MACCHINE
DettagliDa dove nasce l idea dei video
Da dove nasce l idea dei video Per anni abbiamo incontrato i potenziali clienti presso le loro sedi, come la tradizione commerciale vuole. L incontro nasce con una telefonata che il consulente fa a chi
DettagliB.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
DettagliLa Metodologia adottata nel Corso
La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema
DettagliHR - Sicurezza. Parma 17/12/2015
HR - Sicurezza Parma 17/12/2015 FG Software Produce software gestionale da più di 10 anni Opera nel mondo del software qualità da 15 anni Sviluppa i propri software con un motore completamente proprietario
DettagliDATABASE. 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
Dettagli2003.06.16 Il sistema C.R.M. / E.R.M.
2003.06.16 Il sistema C.R.M. / E.R.M. Customer / Enterprise : Resource Management of Informations I-SKIPPER è un sistema di CONOSCENZE che raccoglie ed integra INFORMAZIONI COMMERCIALI, dati su Clienti,
DettagliLa manutenzione come elemento di garanzia della sicurezza di macchine e impianti
La manutenzione come elemento di garanzia della sicurezza di macchine e impianti Alessandro Mazzeranghi, Rossano Rossetti MECQ S.r.l. Quanto è importante la manutenzione negli ambienti di lavoro? E cosa
DettagliGoogle AdWords. Corrispondenze Parole Chiave
Google AdWords Corrispondenze Parole Chiave Una mini guida sulle varie tipologie di corrispondenze per le parole chiave di Google AdWords, la scelta su quali usare può far cambiare di molto il punteggio
DettagliARTICOLO TECNICO Smart-MED-Parks: il Software
ARTICOLO TECNICO Smart-MED-Parks: il Software Introduzione Da Febbraio 2013, data di lancio del progetto Smart-MED-Parks, sono state realizzate un insieme di azioni al fine di: - Aumentare il livello di
DettagliMentore. Rende ordinario quello che per gli altri è straordinario
Mentore Rende ordinario quello che per gli altri è straordinario Vision Creare un futuro migliore per le Nuove Generazioni Come? Mission Rendere quante più persone possibili Libere Finanziariamente Con
DettagliNUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.
NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti
DettagliDATABASE. A cura di Massimiliano Buschi
DATABASE A cura di Massimiliano Buschi Introduzione Con Microsoft Access: Immissione dati e interrogazione Interfaccia per applicazioni e report Ma prima bisogna definire alcune conoscenze di base sui
Dettagli