Database NoSQL: i GraphDB

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Database NoSQL: i GraphDB"

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

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

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

ControlloCosti. 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,

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

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

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

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

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

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

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

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

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

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 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

Dettagli

e-dva - eni-depth Velocity Analysis

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

Dettagli

SQL, NoSQL, o entrambi?

SQL, NoSQL, o entrambi? Introduzione Nella prima parte di questo corso abbiamo fatto una prima introduzione sul quando e come scegliere un database per risolvere un determinato problema. In questa parte finale vedremo attraverso

Dettagli

Capitolo 2. Operazione di limite

Capitolo 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

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

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

MODULO 5 Appunti ACCESS - Basi di dati

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

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

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

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

COMUNIC@CTION INVIO SMS

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

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

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

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

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

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

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi 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

Dettagli

Progettazione della componente applicativa

Progettazione 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

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

Guida all uso di Java Diagrammi ER

Guida 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

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE 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

Dettagli

I database relazionali (Access)

I 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

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 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

Dettagli

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

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

Dettagli

Progettazione di un Database

Progettazione 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

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

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

Attività federale di marketing

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

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

Strutturazione logica dei dati: i file

Strutturazione 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

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

GRUPPO MY- social media solutions / Via G.Dottori 94, Perugia / PI 03078860545

GRUPPO 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

Dettagli

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

Dettagli

martedì 17 aprile 12 1

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

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione 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

Dettagli

Progettazione concettuale

Progettazione 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

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

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

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

Analisi e diagramma di Pareto

Analisi 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

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

Appunti di Sistemi Distribuiti

Appunti di Sistemi Distribuiti Appunti di Sistemi Distribuiti Matteo Gianello 27 settembre 2013 1 Indice 1 Introduzione 3 1.1 Definizione di sistema distribuito........................... 3 1.2 Obiettivi.........................................

Dettagli

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

Esercizio data base "Biblioteca"

Esercizio 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

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

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

ARCHIVI 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).

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

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO 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

Dettagli

SOLUZIONE Web.Orders online

SOLUZIONE 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

Dettagli

ISTRUZIONI PER LA GESTIONE BUDGET

ISTRUZIONI 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

Dettagli

Export Development Export Development

Export 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

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

Basi di Dati Multimediali. Fabio Strocco

Basi 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

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

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

Dettagli

File, Modifica, Visualizza, Strumenti, Messaggio

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

Dettagli

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

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

Dettagli

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a. 2011-2012

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a. 2011-2012 Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Ipertesti e Internet Prof.ssa E. Gentile a.a. 2011-2012 Ipertesto Qualsiasi forma di testualità parole, immagini,

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

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

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

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

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

Università degli Studi di Salerno

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

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

Banca 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 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/)

Dettagli

Guida alla registrazione on-line di un DataLogger

Guida 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

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti 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

Dettagli

corso di Access MICROSOFT ACCESS Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012

corso 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

Dettagli

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

SOFTWARE 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

Dettagli

Il calendario di Windows Vista

Il 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

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

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

Dalla progettazione concettuale alla modellazione di dominio

Dalla 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

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

MANUALEDIUTILIZZO MODULO CRM POSTVENDITA

MANUALEDIUTILIZZO MODULO CRM POSTVENDITA MANUALEDIUTILIZZO MODULO CRM POSTVENDITA INDICE INTRODUZIONE INSERIMENTO CHIAMATA CHIAMATE Dettaglio Chiamate Macchine Coinvolte Documenti Riepilogo MACCHINE Dettaglio Macchine Documenti Interventi MACCHINE

Dettagli

Da dove nasce l idea dei video

Da 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

Dettagli

B.P.S. Business Process Server ALLEGATO C10

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

Dettagli

La Metodologia adottata nel Corso

La 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

Dettagli

HR - Sicurezza. Parma 17/12/2015

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

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

2003.06.16 Il sistema C.R.M. / E.R.M.

2003.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,

Dettagli

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

La 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

Dettagli

Google AdWords. Corrispondenze Parole Chiave

Google 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

Dettagli

ARTICOLO TECNICO Smart-MED-Parks: il Software

ARTICOLO 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

Dettagli

Mentore. Rende ordinario quello che per gli altri è straordinario

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

Dettagli

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

Dettagli

DATABASE. A cura di Massimiliano Buschi

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