Studio delle principali Tecnologie No-SQL

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Studio delle principali Tecnologie No-SQL"

Transcript

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

2 Indice Introduzione 1 Capitolo 1. Confronto con il modello relazionale Normalizzazione Scalabilità 4 Capitolo 2. Text Database Criteri di Valutazione Sistemi di Information Retrival Rappresentazione di documenti tetuali Estrazione delle Feature di testo 11 Capitolo 3. MongoDB Introduzione Document-Oriented Storage Supporto agli indici Replicazione Sharding Query 17 Capitolo 4. Apache CouchDB Introduzione Il modello Map-Reduce M.V.C.C Query Confronto con MongoDB 21 Capitolo 5. Apache Cassandra Introduzione Data Model 24 II

3 2.3 Keyspace Confronto con MongoDBe CouchDB 25 Bibliografia 26 III

4 Studio delle principali tecnologie No-SQL Introduzione La richiesta sempre maggiore di database di enormi dimensioni, la crescente richiesta del mercato di sistemi cloud e l eterogeneità delle applicazioni ha messo in risalto alcuni svantaggi del modello relazionale. La soluzione proposta dalle principali aziende di Information Tecnology è il movimento No-SQL, acronimo di Not Only SQL, che sta ad indicare un modello basato su database non relazionali. In questo elaborato si presenterà il modello facendo attenzione ai vantaggi che questo offre, si studieranno più nel dettaglio due delle principali tecnologie MongoDB, CouchDB e Cassandra. Perché No-SQL? Il principale obiettivo del No-SQL è quello di creare un supporto per particolari esigenze rispetto al modello relazionale. Quest ultimo non viene sostituito, infatti in molti campi, ancora oggi, il sistema relazionale rappresenta la migliore soluzione possibile, come per sistemi transazionali ad esempio sistemi bancari. Il concetto di No-SQL non è nuovo, infatti fu usato per la prima volta nel 1998 per indicare una basi dati relazionale open-source che non usava una interfaccia SQL, ma non particolarmente richiesto in passato. 1

5 Studio delle principali tecnologie No-SQL Il mercato però negli ultimi anni, anche grazie all avvento di Social Network e del cloud computing, ha richiesto l utilizzo di sistemi non legati basati su relazioni. Le cause possono essere: Big Data Si è assistito a un incremento esponenziale della richiesta di archiviazione. In pratica aumentando linearmente la quantità di dati in modelli relazionali, si incrementa esponenzialmente il tempo di risposta del sistema. Diversity Uno dei principali obbiettivi di questa tecnica è quello di creare un supporto per l eterogeneità dei sistemi software. Un modello relazionale è rigidamente progettato su una struttura relazionale, l esigenza è quella di uno schema-free cioè memorizzare su uno spazio libero i dati. Connectivity Il modello relazionale rende molto oneroso la comunicazione e la suddivisione su più nodi della base di dati, non presenta neanche notevoli vantaggi al P2P Knowledge. Cloud Computing Nel Cloud Computing i nodi possono essere veramente molti, gestire un RDBMS diventa davvero molto complicato e la potenza computazione si riduce notevolmente. Cuncurrency Il mercato ha imposto quindi di ridurre il time-to-market, ovvero il tempo che intercorre tra l ideazione e la commercializzazione di un progetto, strutture always online, sicure, affidabili. 2

6 Capitolo 1 Confronti con Il modello Relazionale 1.1 Normalizzazione Una delle tecniche più usate nei modelli relazionali è la Normalizzazione, ossia la creazione e la definizione di nuove tabelle per risolvere due problemi legati alla ridondanza dei dati e alla dipendenza incoerente. La ridondanza dei dati comporta notevoli svantaggi come lo spreco di risorse e per esempio in caso di modifica di un campo di una tabella, questa deve essere replicata su tutti i dati. La dipendenza incoerente invece può rendere difficile l accesso ai dati, in quanto il percorso per la ricerca dei dati può risultare mancante o danneggiato. Ci sono varie fasi di Normalizzazione chiamate Forme Normali che ne certificano la qualità. Nel caso più comune le forme normali sono tre. Prima forma normale Eliminare i gruppi ripetuti in singole tabelle. Creare una tabella separata per ciascun insieme di dati correlati. Identificare ciascun insieme di dati correlati associandovi una chiave primaria. Non utilizzare campi multipli in una singola tabella per memorizzare dati simili. 3

7 Seconda forma normale Creare tabelle separate per insiemi di valori validi per più record. Correlare queste tabelle a una chiave esterna. I record devono dipendere solo dalla chiave primaria della tabella, se necessario una chiave composta. Terza forma normale Eliminare i campi che dipendono dalla chiave. Si capisce che la terza forma normale non è sempre praticabile anche se teoricamente auspicabile. L utilizzo elevato di tabelle compromette la reattività del sistema richiede infatti capacità di apertura dei file superiori a quelli disponibili. 1.2 Scalabilità La modifica alle strutture delle tabella comporta un overhead notevole e una difficoltà nella modifica della struttura delle tabelle. In questo caso la possibile soluzione è la scalabilità, che può essere di due tipi: orizzontale e verticale. Scalabilità Orizzontale Significa partizionare le enormi tabelle su databese e server differenti. Può essere definito come uno schema di partizionamento shared-noting e costituisce una soluzione economica alla latenza. Questo però introduce anche degli svantaggi per esempio le tabelle sono consultabili solo tramite join. Occorre un attenta analisi durante il partizionamento per organizzare in modo adeguato le query. Una volta analizzato il problema occorre implementare tutta la parte software per lo 4

8 smistamento delle query in modo da evitare che la stessa query venga sottoposta ad ogni entità. Le funzioni disponibili saranno quindi limitate. Per i database No-SQL questo problema non si riscontra in quanto non esistono tabelle ne tantomeno operazioni di aggregazione. Ogni elemento è da considerarsi come oggetto a se stante, questo presenta molti vantaggi come l auto-sharding, cioè scalare orizzontalmente in maniera automatica. Ovviamente quindi presenta svantaggi legati alla ridondanza dei dati e allo spreco di risorse di archiviazione. Per effettuare lo sharding si devono valutare una serie di caratteristiche che il sistema deve soddisfare. Affidabilità Il sistema deve sempre essere consultabile e deve garantire la possibilità di ripristinarsi in caso di errori. Ogni shard deve essere sottoposto a backup automatici Avere come minimo due copie di ogni shard Hardware ridondati Procedura di ripristino Query distribuite Un approccio molto importate è quello di distribuire le query su tutti i shard e in seguito consolidare tutti i risultati e restituirli all applicativo. Questa tecnica aumenta di 10 volte le prestazioni rispetto al modello relazionale. 5

9 Evitare Cross-Shard joins Le richieste di join di solito, nei sistemi distribuiti sono molto inefficienti e difficili da realizzare. Per risolvere questo problema esistono vari approcci come replicare le tabelle globali richiamate nei join e prevedere un meccanismo automatico di sincronizzazione per mantenerle aggiornate. Auto incremento delle chiavi primarie Ogni volta che si crea una nuova riga tipicamente si fornisce una nuova chiave primaria. Per il database partizionato questo non è sufficiente a garantire l unicità, occorre quindi creare un meccanismo che crea chiavi uniche in tutto il sistema. Supporto shard a schemi multipli Per ottimizzare le prestazioni si prevede una serie di reti di shard a cui indirizzare la richiesta. Molto spesso le applicazioni utilizzano più configurazioni di reti per ottenere il risultato ottimo. Session-based sharding Ogni utente o processo interagisce con uno specifico shard per tutta la durata della sessione dell utente o del processo. Questo è l approccio più semplice e si sviluppa per applicazioni del tipo customercentric, ove tutte le informazioni che un utente può richiedere e tutte le informazioni di quello stesso utente sono contenute in un unico shard. Transaction-based sharding La decisione dello shard da utilizzare è basato sulla prima richiesta. Tutte le altre sono indirizzate al primo shard. Statement-based sharding Ad ogni query si sceglie lo shard più appropriato. 6

10 Determinare il miglior metodo di sharding Il metodo di suddivisione deve tener presente l applicazione che gestisce il database, come devono essere distribuite le chiavi e il numero di transizioni che si devono effettuare e la grandezza delle tabelle. Le stategie sono: Shard per chiave primaria su una tabella, è il metodo più semplice da implementare ma efficace alla condizione che i dati siano ben distribuiti, è+se ad esempio si sceglie di attribuire una chiave primaria sequenziale il vantaggio risulterebbe nullo, mentre per una chiave opportunamente distribuita i vantaggi sono notevoli. Usare una tabella di riferimento in uno shard a cui fanno riferimento tutti gli altri shard. Richiede una ulteriore query e causa un peggioramento delle prestazioni. Shard per data, Ogni shard conserva dati appartenenti ad un certo intervallo di tempo o date. Scalabilità verticale La scalabilità verticale invece consiste in un incremento delle risorse del sistema che gestisce il database sia per incremento della memoria che della Potenza di calcolo. Questo approccio non richiede la modifica delle applicazioni ma comporta un notevole aumento dei costi e per questo motivo non molto spesso usato. 7

11 Capitolo 2 Text Database Un particolare esempio di No-SQL è un database in grado di gestire, memorizzare ed interrogare documenti testuali non strutturati. Bisogna minimizzare il tempo necessario per la ricerca delle informazioni ed assicurare che i risultati siano ordinati per rilevanza. Lo scopo principale del Natural Language Processing, ovvero sistemi in grado di processare il linguaggio umano, è quello di rendere le conoscenze linguistiche necessarie a comprendere il significato e la struttura del testo, a un calcolatore. Con lo sviluppo del web si è cambiata la metodologia e l approccio delle basi di dati multimediali. Sono poi state introdotte nuove problematiche quali la bassa qualità dei dati pervenuti, dati ridondati ma anche deadlinks. Esistono due tipi di approcci per l accesso alla base dati che sono il Retrival e il Browsing, nel primo caso c è una query basata su keywords, nel secondo caso invece si può partire da documenti di interesse, seguire gli hyperlinks per arrivare a specificare la query sul documento. 8

12 2.1 Criteri di Valutazione I criteri di valutazione hanno come scopo di reperire solo e tutti i documenti interessanti per l utente. Un sistema di questo tipo è ideale per questo si valuta la precision (precisione)e il recall (richiamo). Il recall valuta la capacità di escludere documenti non rilevanti e rappresenta la percentuale di documenti rilevanti presenti nel database. Il suo valore ideale è uno ma non può mai avere questo valore perché significa che ogni documento presente nel database è rilevante. La precision, valuta la capacità di trovare documenti rilevanti all interno del database e rappresenta la percenutale dei documenti rilevanti sul totale dei documenti recuperati. 9

13 2.2 Sistemi di Information Retrival I database di testi sfruttano tecniche sviluppate per i sistemi di Information Retrival (IR). L ambito di questi sistemi ha introdotto molti modelli per la rappresentazione di documenti, architetture e linguaggi, interfacce e metodi di visualizzazione. L IR è un insieme di tecniche che permettono di estrapolare informazioni rilevanti, usando dei criteri di valutazione, da documenti non strutturati secondo schemi come il testo; Devono essere estratte semantica e parole chiavi, questo però molto spesso produce notevoli cambiamenti dal contenuto informativo. L ambiguità dei testi rende il Retrival molto complicato e richiede un attenta analisi e particolari elaborazioni. Le interrogazioni, spesso non si riferiscono al semplice dato, ma a particolari esigenze. Per questo si analizza in principio il testo sottomesso per la ricerca, per valutarne il contenuto e rendere la restituzione dei documenti di interesse quanto più precisa possibile. Anche i documenti restituiti devono essere di una quantità limitata rispetto alla grande quantità di dati presenti del database. Si cercano pertanto quelle informazioni che sono di interesse per il topic. Tra tutti i risultati restituiti bisogna fare una classificazione in base alla pertinenza del documento rispetto alla query inserita. Per questo si sfruttano tecniche di ranking ovvero si attribuisce ad ogni documento la sua rilevanza rispetto a quella query. Tutti questi valori vengono poi restituiti del document-query matching. In questo documento è mantenuta quindi una classificazione basata sul contenuto informativo del documento. Nasce quindi l esigenza di definire una misura del contenuto informativo. Distinguere quindi ì documenti in: elite e non elite. Si valuta la frequenza delle parole chiavi di interesse, ma anche la quantità del contenuto informativo del documento in base alla frequenza di parole chiave. 10

14 2.3 Rappresentazione documenti testuali Si sfruttano dei modelli per rappresentare dei testi, i più usati sono il modello booleano, il modello vettoriale o algebrico e il modello probabilistico. La rappresentazione, poi, si suddivide in cinque fasi. Structure struttura interna del documento (capitoli, sottocapitoli) Stopwords articoli e congiunzioni Noun groups si eliminano aggettivi e verbi Stemming si riduce a radice comune (plurale, singloare) 2.4 Estrazione delle Features di testo L estrazione delle feature di testo avviene in quattro fasi. Analisi Lessicale del testo Ha il compito di eliminare la punteggiatura e convertire in maiuscolo e minuscolo per creare una sequenza di parole partendo da una sequenza di caratteri. Eliminare le stopwords Le stopwords sono parole con un elevata ricorrenza nel testo che non portano informazione utile all estrazione semantica. Statisticamente le dimensioni del documento vengono ridotte del 20-30%. L eliminazione diminuisce il potere di recall. Solitamente sono congiunzioni, articoli e proposizioni. 11

15 Normalizzazione La normalizzazione consiste nel condurre tutte le parole alla radice morfologica cosi com è sul vocabolario, eliminando flessi, coniugazioni. La sua utilità presenta pareri tuttora discordanti, per esempio è stato dimostrato che nelle lingue anglosassoni è di scarsa utilità. Selezioni dei termini caratterizzanti (indicizzazione) Bisogna distinguere i metodi di rappresentazione dei documenti e i criteri di recupero per soddisfare una specifica richiesta. I metodi si suddividono in metodi di rappresentazione diretta e indiretta. Per quanto riguarda la rappresentazione diretta, il documento è rappresentato dalle parole in esso contenute in sequenza. Però questa rappresentazione non è adeguata sempre perché si possono cercare documenti che non hanno parole chiavi in comune con il testo di ricerca. La rappresentazione indiretta, è realizzata con un indicizzazione, derivati manualmente o automaticamente che descrivono in modo sintetico il contenuto. Vengono associati ai testi delle parole chiavi (keywords), semplici o composte. E di solito fatta manualmente da esperti ma sono state studiate tecniche automatiche. Il fine ultimo dell indicizzazione è rappresentare il contenuto in modo sintetico tenendo presente due obiettivi: esaustività ( numero elevato di indici assegnati) e specificità ( recuperare pochi documenti e specifici). Gli indici o tag possono essere radici di parole, frasi estratte, metadati ecc. La fase di indicizzazione serve al recupero e alla restituzione del documento, può essere Manuale e automatico. L indicizzazione manuale è affidata a una persona con competenze su quella materia la quale sceglie termini che meglio caratterizzano il contenuto. Quello Automatico è eseguito da un programma, statisticamente peggiore ma in proporzione molto più economico. Tramite un analisi in base a degli algoritmi vengono generati degli index terms. Quest analisi è fatta in modo statistico usando la frequenza delle parole chiave. 12

16 Capitolo 3 MongoDB 3.1 Introduzione MongoDB è un Database management System, orientato alla gestione dei testi, è sviluppato in C++ è ha come obiettivo quello di strutturare delle basi di dati testuali, in particolare con dati poco strutturati. 13

17 E possibile realizzare un database orientato alla gestione dei documenti creando uno strato software superiore al database o sfruttare i meccanismi di un database orientato agli oggetti. I database relazionali sono sviluppati sul modello ACID (Atomicity, Consistency, Isolation, Durability), il MongoDB invece sfrutta un modello CAP(Consistency, Aviability and Partition Tollerance) che descrive alcune strategie per distribuire la application logic attraverso le reti. Applica la replicazione per prorogare gli application changes attraverso i nodi della rete. La coerenza è mantenuta in tutti i nodi che visualizzano gli stessi dati agendo con modifiche simultanee. La disponibilità è mantenuta su tutti i client dato che il servizio risulta sempre attivo e funzionante. Tolleranza e partizionamento sono parametri indispensabili perché molto spesso il database è partizionato su più server. Non è possibile ottenere tutte queste caratteristiche insieme ma solo due alla volta. Pertanto se si sceglie di non avere un Partition Tollerance avremo problemi sulla scalarità verticale che è sicuramente più costosa. Se si rinuncia all Aviability dobbiamo attendere che vengano risolte alcune richieste a discapito delle prestazioni. Se si rinuncia alla Consistency si avrà per un periodo un disallineamento dei dati sui nodi. Questi ultimi due problemi sono quelli più noti e permettono di superare il problema della scalabilità. 3.2 Document-Oriented storage Questo DBMS eredita il meccanismo di storage dal paradigma doc-oriented che consiste nel memorizzare ogni record come documento che possiede caratteristiche predeterminate. Si 14

18 può aggiungere qualsiasi numero di campi con una qualsiasi lunghezza. Nei doc-oriented si segue una metodologia differente rispetto al modello relazionale: si accorpano quanto più possibile gli oggetti, creando delle macro entità dal massimo contenuto informativo. Questi oggetti incorporano tutte le notizie di cui necessitano per una determinata semantica. Pertanto MongoDB non possiede uno schema e ogni documento non è strutturato, ha solo due chiavi obbligatorie: _id Serve per ideò+ntificare univocamente il documento (è comparabile, semanticamente, alla chiave primaria dei database relazionali) _rev Viene utilizzata per la gestione delle revisioni, ad ogni operazione di modifica infatti la chiave rev viene aggiornata. Pertanto si può interrogare il DBMS anche per versioni del documento non recenti perché mantiene in memoria tutte le verisoni. 3.2 Supporto agli Indici In MongoDB sono presenti tecniche di indicizzazione: Il campo _id è indicizzato automaticamente I campi sui quali è tipico eseguire ricerche o accaduti di frequenze andrebbero indicizzati I campi su cui sono definiti ordinamenti generalmente andrebbero indicizzati. MongoDB fornisce strumenti in grado di suggerire su quali campi sia opportuno definire indici. Conviene privilegiare applicazioni read-intensitive, ovvero collezioni con un alto rapporto letture/scritture per incrementare le letture. Un indice viene inteso come una struttura dati che cataloga le informazioni con una struttura B-tree. E possibile definire chiavi semplici, composte, documento e array. Le chiavi semplici indicano il campo collection come indice, quelle composte per due o più collection, mentre le chiavi documento sono indici che contengono oggetti. Le chiavi array 15

19 invece sono realizzare da come lascia intuire il nome con degli array. In mongodb si memorizzano anche indici geospaziali bidimensionali che ci permettono di interrogare il sistema con query basate sulla posizione. 3.3 Replicazione La replicazione introduce la ridondanza dei dati per rimediare a malfunzionamenti. Ci sono due tipi differenti di replicazione, quella Master-slave semplice e l insieme di replicazione. La prima come si intuisce dal nome presenta un unità centrale master che è sempre aggiornata e che modifica periodicamente tutti gli altri nodi dipendenti ad essa. In caso di malfunzionamento di un nodo, deve essere eseguito manualmente. La tecnica di insieme di replicazione invece aggiunge il ripristino automatico alla tecnica del master-slave. 3.4 Sharding MongoDB presenta tecniche di Sharding per partizionare orizzontalmente il database in tuple da inserire in tabelle. Ogni shard in MongoDB ha la caratteristica di essere completamente slegato dagli altri, infatti non dipendono dal sistema fisico sottostante e logico. Questo DBMS prevede un servizio automatico di sharding. Si generano delle shard key ovvero delle chiavi di frammentazione, partendo dai chunk creati dai cluster che contengono i dati. Tutti i metadati si memorizzano in un server di configurazione e si creano dei nodi router che propagano le richieste ai nodi. Quando ci sarà una richiesta si interroga un nodo che possiede una tabella con una mappa del sistema. 16

20 3.6 Query In questo DBMS è presente il supporto a query dinamiche (ad hoc). Per le interrogazioni, si utilizza un sistema che non richiede indici speciali e la migrazione da query SQL a MongoDB sarà molto semplice. Infatti come per l SQL c è un selettore di campo corrispondente nel modello relazionale alla SELECT e presenta anche un campo di selezione di documenti (WHERE). E possibile creare anche degli ordinamenti dei risultati (ORDER BY in SQL). MongoDB usa tecniche di cursori, questi solo usati per recuperare iterativamente tutti i documenti ritornati dalla query eseguita. Il processo di selezione potrebbe causare un overhead per la ricerca di documenti nel database, per questo utilizza due funzioni: Map /Reduce. Prima di tutto per ogni elemento viene invocata la funzione Map che produce delle coppie chiave-valore da passare alla successiva funzione e in seguito invoca la funzione Reduce, che aggrega i risultati ricevuti e restituisce il risultato. 17

21 Capitolo 4 Apache CouchDB 4.1 Introduzione CouchDB è anche esso un database non relazionale, orientato ai testi, l obbiettivo è quello di facilitare l organizzazione delle base di dati testuali. E pensato per sostituire gli strumenti classici come MySQL che necessitano aggiustamenti alla struttura delle applicazioni Web. Ha un interfaccia intuitiva http-based REST API, richiede inoltre tramite httprequest i dati. Il formato di restituzione è XML JSON. Questo tipo di DBMS si basa su API http di tipo 18

22 REST quindi implementa dei metodi di accesso alla risorsa molto simili a quelli di HTTP (come il metodo get, post, put). E scritto in un linguaggio di programmazione Earling, che lo rende rapido, scalabile e facile da distribuire e si può sfruttare opportunamente anche su architetture multi-core. CouchDb è molto resistente ai guasti e a sovraccarico di richieste di accesso. Infatti l errore non viene propagato su tutto il database e distribuisce le richieste sui nodi. Aumenta anche la scalabilità e il supporto a strumenti ancora in fase di implementazione e futuri, incrementa anche il supporto a dispositivi mobili e l approccio molto simile ad http rende molto semplice l implementazione. Questo è anche molto performante anche per l aggregazione di documenti semi strutturati e li organizza come documenti JSON. In CouchDB non esistono tabelle, ma tutto è organizzato in database di documenti. Ogni documento è organizzato con delle coppie chiave-valore, e ognuno di essi può essere organizzato in maniera differente. 4.2 Il modello Map/Reduce La grande quantità ed eterogeneità dei documenti rende molto complicata la gestione e la selezione di essi per questo si introducono tecniche di Map e Reduce. Queste producono una coppia chiave-valore che vengono poi organizzate secondo un schema Btree archiviandole in ordine di chiave. Una funzione Map trasforma ogni documento contenuto nel database in un altro insieme di coppie chiave/valore e associa un unica chiave. Il risultato di questa fase sarà un array associativo composto dalle coppie chiave/valore notificate dalla funzione emit (dove la chiave è il primo parametro del secondo). 19

23 4.3 M.V.C.C. Quando si vuole modificare un entità relazionale bisogna rendere consistenti i dati in ogni momento. Per questo bisogna sempre tenere presente il problema della concorrenza sulla risorsa. Come per i sistemi operativi con i semafori, si è introdotto uno stato della tabella che può essere lock e unlock. Ma questo causa uno spreco di risorse notevoli. CouchDB utilizza Multi Verison Concurrency Control (MVCC) per gestire l accesso simultaneo al database. Sui documenti da modificare si fa un controllo versione, in pratica si crea una nuova verisone del documento che verrà salvata sulla vecchia versione. Questo riduce notevolmente i tempi di accesso/modifica della risorsa, e ogni volta che si necessita una nuova istanza si otterrà sempre un istantanea del sistema più aggiornata possibile. Ogni volta che si prova a modificare un documento, CouchDB passerà alla funzione validazione una copia del documento esistente, una copia del nuovo documento ed una raccolta di informazioni aggiuntive, ad esempio l utente e i dettagli dell autenticazione. Quando si tenta di mantenere la coerenza tra un database distribuito su più server si possono riscontrare alcuni problemi, sono stati quindi sviluppati molti approcci di risoluzione come multi-master e master-slave. La risoluzione di questo problema aumenta la scalabilità e rappresenta un punto notevole di forza di CouchDB. 20

24 4.4 Query A differenza del modello relazionale, con le query scritte in SQL in couchdb si utilizzano degli indici interni e le proprie relazioni per costruire in tempo reale una tabella di risultato. Questa soluzione è molto performante in quanto i dati sono sviluppati per questo scopo. Le views sono il principale strumento d esecuzione delle query in CouchDB. Esistono due tipi di views come quelle permanenti, che sono memorizzate all interno di speciali documenti chiamati design document. Ci sono poi le views temporanee che non sono memorizzate ma eseguite su richiesta, ancora in fase di sviluppo. Le views sono definite da una funzione JavaScript la quale usa la funzione Map per le views archiviate secondo lo schema key/value. 4.4 Confronto con MongoDB La prima sostanziale differenza tra i due DBMS è di sciuro il MVCC che classifica i dati, MongoDB invece usa l update in place. Il primo quindi è performante per una maggiore libertà di design, ma introduce il problema della compattazione. Il secondo offre una velocità notevole in scrittura e un enorme risparmio di memoria di archiviazione ma non tiene memoria delle versioni. Anche la scalabilità nei due sistemi sfrutta due meccanismi differenti in MongoDB si ha l auto Sharding, mentre su CouchDB la replicazione multi-master. MongoDB consente query dinamiche e offre uno strumento per ottimizzare le query consigliando creazioni di indici dove necessario, a differenza di CouchDB che invece usa un particolare sistema per generare indici ed ottimizzare particolari query che devono essere predefinite necessariamente. 21

25 CouchDB presenta una affidabilità maggiore, robusto sugli stop, e un interfaccia utente molto semplice a differenza di MongoDB che usa una shell con interprete javascript. In conclusione questi due DBMS presentano numerosi vantaggi e rispondono a esigenze diverse. Ovviemente non si può scegliere, come descritto nel teorema CAP, un DBMS performante su tutte le esigenze di Consistency, Aviability e partition Tollerance, ma solo su due di esse, per cui bisogna trovare dei compromessi tecnici. 22

26 Capitolo 5 Apache Cassandra 5.1 Introduzione Successivamente all avvento del web 2.0, le case produttrici di DBMS hanno orientato le proprie forze progettuali verso sistemi NO-SQL. Apache Cassandra è uno degli esempi di maggiore rilievo, infatti anche grazie all avvento di social network (come Facebook, ove si usavano DBMS usava Mysql, in modo non troppo ortodosso) si è migrato verso il sitema open sorce Cassandra. Come per CouchDB anche Cassandra è un DBMS fault tolerant, elastico e con consistenza dei dati sia per processi di lettura che di scrittura. I dati sono duplicati in modo automatico su più nodi, e infrastrutturalmente identici per cui questo tipo di DBMS è molto tollerante a crash e il sistema non è mai inoperabile. Durante read/write si possono specificare i livelli di consistenza delle funzioni, passando due parametri che indicano il comportamento atteso. Per esempio la funzione di write, può 23

27 decidere di eseguire tutte le funzioni in asincrono o verificare la scrittura su un determinato numero di nodi. Invece la funzione Read consente di scegliere da quanti nodi effettuare la lettura e quale sia il dato più aggiornato. Aumentare il numero di nodi per la verifica della scrittura e la lettura aumenta linearmente la consistenza a discapito delle performance. 5.2 Data Model Bisogna fare nota del modello dati di Cassandra che è formato da un insieme di Hash e Array, che però a seconda della posizione rivestono ruoli distinti. Le colonne sono i costrutti più semplici, è un hash formato da tre chiavi: name, value e timestamp che sono stabilite a priori. La colonna nel modello relazionale è una cella all interno di un record che a sua volta è contenuto in una tabella. I name e value sono considerati da Cassandra come array di bite e possono contenere qualsiasi cosa. Le Supercolumn o gruppo di colonne invece sono delle colonne, nel cui value vi si trova un array di colonne. In questo caso non si può fare un corrispondente nel modello relazionale. Le coulomn e supercolumn vengono raggruppate in strutture dati chiamate Coulumn family e supercolumnfamily che corrispondono nel modello relazionale a delle tabelle. La prima è contraddistinta da un nome che la identifica e da un array di coppia chiave-valore. La 24

28 seconda ha una chiave che identifica le row mentre i valori sono i campi attributi alle column o supercolumn nel caso di supercolumn family. In Cassandra non esiste nessuno schema predefinito per le singole row; non è possibile creare a runtime column family e supercolumn family ma è necessario inserirle in un file di documentazione. 5.3 KeySpace Il keyspace come nel modello relazionale è all ultimo gradino gerarchico. Ogni keyspace comunemente contiene il set di column family specifico di un applicazione, che deve essere specificato nel file di configurazione. E presente un attributo (Comparewith) che predeve il mentro di ordinamento delle chiavi delle column all interno delle row. Anche in questo DBMS non è presente il concetto classico di query SQL ma ha un generico set di API che agiscono direttamente sul database con operazioni molto simili (per esempio di selezione). Il lavoro di ordinamento deve essere effettuato in fase di scrittura, sia per modifica che per inserimento, perché questa funzione deve mantenere l ordine. 5.3 Confronto con CouchDB e MongoDB A differenza di MongoDB e CouchDB Cassandra è usato più per le scritture che per le letture (logging). E spesso usato per usi finanziari, dove le scritture devono essere veloci e performanti anche a discapito delle letture. Presenta inoltre una consistenza e una resistenza ai guasti notevole. A differenza di CouchDB però non ha un interfaccia intuitiva, metre è stato introdotto un linguaggio di Query SQL like come CouchDB. Anche in questo caso bisogna far riferimento al teorema del CAP, infatti in questo è notevole Consistency e Partion Tollerance a discapito dell Aviability. 25

29 Bibliografia [1] Angelo Chianese, Vincenzo Moscato, Antonio Picariello, Lucio Sansone Basi di dati per la gestione dell informazione [2] [3] [5] [6] [7] couchdb.apasche.org [8] cassandra.apache.org [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] MongoDB, the Definitive Guide, Kristina Chodorow, Michael Dirolf, O Reilly, 2010 [19] [20] 26

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

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

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

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

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

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

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

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

Base di dati e sistemi informativi

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

Dettagli

Ottimizzazione delle interrogazioni (parte I)

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

Dettagli

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

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

Introduzione all Architettura del DBMS

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

Dettagli

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

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

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

Dettagli

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

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

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

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

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

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

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

Dettagli

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

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

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

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

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

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

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

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

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

DATABASE RELAZIONALI

DATABASE RELAZIONALI 1 di 54 UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II DIPARTIMENTO DI DISCIPLINE STORICHE ETTORE LEPORE DATABASE RELAZIONALI Dott. Simone Sammartino Istituto per l Ambiente l Marino Costiero I.A.M.C. C.N.R.

Dettagli

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

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

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

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

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

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

MongoDB. Un database NoSQL Open-Source

MongoDB. Un database NoSQL Open-Source MongoDB Un database NoSQL Open-Source Database Relazionali I dati sono divisi in tabelle. Ogni tabella è composta da diverse colonne fisse. Le tabelle possono avere riferimenti tra loro. A.C.I.D. I database

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

La gestione del documento

La gestione del documento Operatore giuridico d impresa Informatica Giuridica A.A 2002/2003 II Semestre La gestione del documento prof. Monica Palmirani Il documento A differenza del dato il documento è solitamente un oggetto non

Dettagli

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database Uso delle basi di dati Uso delle Basi di Dati Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database,

Dettagli

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

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

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

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

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

Lezione 8. Motori di Ricerca

Lezione 8. Motori di Ricerca Lezione 8 Motori di Ricerca Basi di dati Un campo prevalente dell applicazione informatica è quello costituito dall archiviazione e dalla gestione dei dati (basi di dati). Sistema Informativo. Un sistema

Dettagli

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Basi di Dati e Microsoft Access

Basi di Dati e Microsoft Access Basi di Dati e Microsoft Access Lun: 16-18 e Mer: 14-17 Alessandro Padovani padoale@email.it Database: definizione Un database (DB) è una collezione di informazioni organizzata in gruppi, che consentono

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

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

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

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

Dettagli

Analisi dei requisiti e casi d uso

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

Dettagli

Operazioni sui database

Operazioni sui database Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle

Dettagli

Base Dati Introduzione

Base Dati Introduzione Università di Cassino Facoltà di Ingegneria Modulo di Alfabetizzazione Informatica Base Dati Introduzione Si ringrazia l ing. Francesco Colace dell Università di Salerno Gli archivi costituiscono una memoria

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

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

ARCHIVIAZIONE DOCUMENTALE NEiTdoc

ARCHIVIAZIONE DOCUMENTALE NEiTdoc ARCHIVIAZIONE DOCUMENTALE NEiTdoc PROCESS & DOCUMENT MANAGEMENT La documentazione può essere definita un complesso di scritture prodotte da entità pubbliche o private nell espletamento della loro attività,

Dettagli

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale La soluzione modulare di gestione del Sistema Qualità Aziendale I MODULI Q.A.T. - Gestione clienti / fornitori - Gestione strumenti di misura - Gestione verifiche ispettive - Gestione documentazione del

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

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

ITI M. FARADAY Programmazione modulare a.s. 2014-2015

ITI M. FARADAY Programmazione modulare a.s. 2014-2015 Indirizzo: INFORMATICA E TELECOMUNICAZIONI Disciplina: Informatica Docente:Maria Teresa Niro Classe: Quinta B Ore settimanali previste: 6 (3 ore Teoria - 3 ore Laboratorio) ITI M. FARADAY Programmazione

Dettagli

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO Basi di dati: Microsoft Access INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO Database e DBMS Il termine database (banca dati, base di dati) indica un archivio, strutturato in modo tale

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

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

Dettagli

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

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

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma

Dettagli

Introduzione al corso

Introduzione al corso Introduzione al corso Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: introduzione.pdf Sistemi Informativi L-B Docente Prof. Paolo Ciaccia

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

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda Fa quadrato attorno alla tua azienda Soluzioni software per L archiviazione elettronica dei documenti Perché scegliere Q Archiviazione Elettronica dei Documenti? Tale applicativo si pone come obbiettivo

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

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

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

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

Dettagli

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

SDD System design document

SDD System design document UNIVERSITA DEGLI STUDI DI PALERMO FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESINA DI INGEGNERIA DEL SOFTWARE Progetto DocS (Documents Sharing) http://www.magsoft.it/progettodocs

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

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

Dettagli

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

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

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

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

L architettura di un DBMS

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

Dettagli

Altri metodi di indicizzazione

Altri metodi di indicizzazione Organizzazione a indici su più livelli Altri metodi di indicizzazione Al crescere della dimensione del file l organizzazione sequenziale a indice diventa inefficiente: in lettura a causa del crescere del

Dettagli

Introduzione alla consultazione dei log tramite IceWarp Log Analyzer

Introduzione alla consultazione dei log tramite IceWarp Log Analyzer Introduzione alla consultazione dei log tramite IceWarp Log Analyzer L Analizzatore di Log è uno strumento che consente un'analisi statistica e logica dei file di log generati dal server. Lo strumento

Dettagli

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive Università degli Studi di Torino - Facoltà di Medicina Veterinaria Laboratorio di epidemiologia delle malattie infettive Scuola Specializzazione in Sanità Animale, Allevamento e Produzioni Zootecniche

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

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

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

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

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

Dettagli

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

Logistica magazzino: Inventari

Logistica magazzino: Inventari Logistica magazzino: Inventari Indice Premessa 2 Scheda rilevazioni 2 Registrazione rilevazioni 3 Filtro 3 Ricerca 3 Cancella 3 Stampa 4 Creazione rettifiche 4 Creazione rettifiche inventario 4 Azzeramento

Dettagli

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith Configurazione della ricerca desktop di Nepomuk Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith 2 Indice 1 Introduzione 4 1.1 Impostazioni di base....................................

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

Strumenti per la gestione della configurazione del software

Strumenti per la gestione della configurazione del software tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo ing. Luigi Suarato candidato Pasquale Palumbo Matr. 534/000021 MANUTENZIONE DEL SOFTWARE Il Configuration

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

I database. Cosa sono e a cosa servono i Database

I database. Cosa sono e a cosa servono i Database I database Estratto dal Modulo 1 - I database Prof. Piero GALLO 1 Cosa sono e a cosa servono i Database Un database(o base di dati) e' una raccolta organizzata di dati correlati. Il principale scopo di

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

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Sistemi Informativi e Sistemi ERP

Sistemi Informativi e Sistemi ERP Sistemi Informativi e Sistemi Trasformare i dati in conoscenza per supportare le decisioni CAPODAGLIO E ASSOCIATI 1 I SISTEMI INFORMATIVI LI - E IMPRESA SISTEMA DI OPERAZIONI ECONOMICHE SVOLTE DA UN DATO

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

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

Dettagli

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

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

Dettagli