NoSQL database: la soluzione Oracle.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "NoSQL database: la soluzione Oracle."

Transcript

1 Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati NoSQL database: la soluzione Oracle. Anno Accademico 2013/2014 Candidato: Alfonso Di Martino matr. N

2 Alla mia famiglia, che mi ha dato i mezzi, la fiducia e il sostegno per raggiungere questo traguardo. A Te, che mi hai cambiato la vita.

3 Indice NoSQL database: la soluzione Oracle...I Indice...III Introduzione...4 Capitolo 1: Dal modello relazionale a NoSQL Il modello relazionale Il concetto di scalabilità : verticale e orizzontale Il Teorema CAP e le proprietà BASE dei NoSQL Il nuovo trend : NoSQL Big Users Big Data Tassonomia dei sistemi NoSQL Key-value Column family Documents-oriented Graph Capitolo 2 : Oracle NoSQL Database Introduzione L'architettura di Oracle NoSQL Database Il lato Server Il lato Client Esempio di inserimento di un record Oracle NoSQL Data Model Chiavi e Valori Politiche di Consistenza Politiche di Durabilità API, CRUD e Iteratori Oracle NoSQL Database nella soluzione Oracle per Big Data...29 Conclusioni...31 Bibliografia...32

4 Introduzione La crescita esplosiva nell'utilizzo di internet, il boom globale dei social media, come Facebook (che conta da solo oltre 1 miliardo di iscritti), lo sviluppo e utilizzo sempre più massiccio di applicazioni mobile e servizi di cloud computing, hanno portato alla luce la necessità di avere nuovi strumenti e tecnologie per il mantenimento e l'analisi (spesso in tempo reale) di un volume di dati costantemente in crescita, fortemente variabile e in costante mutamento, indicati come Big Data. Prendiamo come esempio i social, come Facebook e Twitter, con i loro like, condivisioni, twett e retwett, producono dati che possono essere analizzati per estrarre informazioni sui comportamenti sociali, singoli e collettivi, sulle tendenze musicali, politiche o di mercato. Un altro esempio significativo è dato dai sempre più utilizzati servizi di cloud computing, che permettono a un numero molto grande e variabile di utenti di archiviare qualsiasi tipo di risorsa in rete e accedervi in ogni momento da un qualsiasi dispositivo, oppure usare programmi che non sono istallati direttamente sui propri dispositivi, ma direttamente online (es. Google Drive) o semplicemente utilizzare un servizio on-demand per accedere a risorse messe a disposizione, gestendo in modo efficace e dinamico l'affluenza. L'afflusso continuo di informazioni, eterogenee e continuamente volubili, la necessità di analizzare in tempo reale grandi quantità di dati e la necessità di scalare, dinamicamente e soprattutto in orizzontale piuttosto che in verticale, ha portato i tradizionali database relazionali a non essere più l'unico modello da prendere in considerazione, in quanto pongono forti limiti sulla scalabilità orizzontale e sulla efficiente gestione di gigantesche banche di dati contenti informazioni non strutturate. Da qui l'esigenza di avere un modello dei dati più flessibile, che possa evolvere e arricchirsi in base alle esigenze e ai nuovi tipi di dati, che sia ottimizzato per essere 4

5 distribuito e fornire alte prestazioni per elaborazioni su volumi di dati molto grandi e richieste di servizi da parte di un gran numero di utenti. Queste sono le motivazioni che hanno portato alla nascita di nuovi modelli di dati, che si sono allontanati dal classico modello relazionale, ossia si sono evoluti adattandosi alle esigenze del nuovo web, che vanno sotto il nome di NoSQL. Il termine NoSQL fu utilizzato per la prima volta da Carlo Strozzi nel 1998 per indicare un suo pacchetto software ben definito, basato sul modello relazionale e che non utilizzasse il linguaggio SQL per la formulazione di query. Lui stesso differenzia il suo termine NoSQL da quello che oggi è un movimento che non utilizza SQL poiché il modello di base non è relazionale, preferendo indicare tali modelli più propriamente come NOREL [1]. Lo stesso termine fu poi riutilizzato nel 2009 da Eric Evans, dipendente di Rackspace, durante un evento organizzato per discutere di database distribuiti open source, usato per etichettare quelle basi di dati spesso non relazionali e distribuite [2]. La mia breve introduzione a quella che è la tematica del mio elaborato, ossia analizzare e inquadrare in un certo modo quello che è il concetto di database NoSQL, andando poi a dare ampio spazio, nella seconda parte della trattazione, a quella che è la soluzione offerta da Oracle, sicuramente non è ancora esaustiva di tutte quelle che sono le problematiche legate ai database relazionali in relazione a quelli che sono i nuovi obbiettivi nello studio delle informazioni provenienti dal web, che hanno poi portato alla ricerca di nuove strade e in particolare al movimento NoSQL. Però possiamo già inquadrare alcuni elementi fondamentali come: grandezza del dataset dell'ordine dei petabyte e exabyte o oltre; grande varietà di dati su cui lavorare, non sempre completi; necessità di avere una distribuzione delle informazioni su più nodi; 5

6 6

7 Capitolo 1: Dal modello relazionale a NoSQL. 1.1 Il modello relazionale Il modello relazionale fu introdotto nel 1970 da Ted Codd del Centro ricerche IBM in un suo celebre articolo, Codd Il modello venne subito apprezzato per la sua semplicità e le sue basi matematiche: esso usa il concetto di relazione matematica come componente elementare e ha il suo fondamento teorico nella teoria degli insiemi e nella logica dei predicati del primo ordine [3]. Nel modello relazionale il database risulta essere una collezione di relazioni, rappresentate visivamente come tabelle, ogni riga è detta tupla e l'intestazione di ogni colonna attributo, avente un valore appartenente a un dominio definito per il tipo di attributo. Nell'ambito dei sistemi relazionali, assume una fondamentale importanza il concetto di transazione, e affinché sia garantita l'integrità della base di dati, sono state definite e devono essere rispettate dalle transazioni, le cosiddette proprietà ACID: A (atomicità) : tutte le operazioni di una transazione devono essere considerate come una sola operazione elementare, quindi o vengono eseguite tutte o nessuna. C (consistenza) : ogni transazione deve agire sulla base di dati in modo corretto, lasciando la stessa nello stesso stato iniziale consistente. I (isolamento) : una transazione deve essere eseguita in modo indipendente rispetto a eventuali altre esecuzioni di transazioni concorrenti. D (durabilità) : una volta che la transazione si è conclusa con successo, il risultato di tale transazione deve essere permanente sulla base di dati. 7

8 Figura Il modello relazionale I valori contenuti nella tabella assumono significato di informazione quando sono associati all'attributo definito come intestazione della colonna. Caratteristica del modello relazionale è la frammentazione delle informazioni in più tabelle, anche se queste si riferiscono al medesimo oggetto. Questo si traduce in una necessità di aggregare le informazioni di diverse tabelle per soddisfare le query, attraverso operazioni tipicamente definite di JOIN, che sfruttano le cosiddette chiavi esterne o foreign keys che mettono in relazione tabelle differenti. Capiamo subito che questa necessità di aggregare si traduce in un problema alquanto rilevante quando ho a che fare con tabelle che crescono sempre più: per questo è fortemente sconsigliato avere tabelle molto grandi, perché ci sarebbero problemi di gestione anche con sistemi computazionali molto potenti Il concetto di scalabilità : verticale e orizzontale La scalabilità è una caratteristica di un sistema che ne indica la capacità di crescere o decrescere in risposta all'aumento o decremento del carico di lavoro in modo adeguato. Possiamo avere due tipologie : Scalabilità verticale, dove si effettua un upgrade delle risorse hardware, per esempio del server, ossia lo si potenzia in termini di CPU, memorie ecc. 8

9 Scalabilità orizzontale, dove invece che potenziare l'hardware, se ne aggiunge di nuovo, ossia si aggiungono nuovi nodi. Figura Scalabilità Verticale vs Scalabilità Orizzontale La scalabilità verticale è quella su cui i database relazionali si sono sempre basati, arrivando ad avere server così potenti da poter gestire da soli migliaia di utenti contemporaneamente. Tutto questo ha però un limite, altamente superato nel momento in cui internet è diventato un fenomeno globale, portando così alla luce la necessità di avere un sistema distribuito che permettesse la parallelizzazione delle operazioni e un bilanciamento del carico di lavoro, in modo tale da avere performance molto alte anche con picchi di affluenza molto alti. Da qui l'esigenza di scalare in orizzontale piuttosto che in verticale, ma questo modo di fare è in conflitto con alcune restrizioni dovute alle ACID, in quanto ci sarebbero problemi legati alla consistenza dei dati. 1.2 Il Teorema CAP e le proprietà BASE dei NoSQL Il teorema CAP fu presentato da Eric Brewer nel 2000 durante l'evento Principles of Distributed Computing, il quale afferma che per un sistema informatico distribuito non possono valere contemporaneamente le proprietà di: Consistency (Coerenza) : dopo una modifica dei dati, la propagazione degli stessi permetterà nella prossima operazione di lavorare su dati aggiornati, ossia tutti i 9

10 nodi vedono sempre gli stessi dati; Availability (Disponibilità) : il sistema è sempre pronto a rispondere a qualsiasi richiesta; Partition Tolerance (Tolleranza al partizionamento) : il sistema continua a lavorare anche se alcuni nodi non sono più raggiungibili. Figura CAP Theorem Nel caso dei tradizionale RDBMS, si rinuncia alla Partition Tolerance a favore di Coerenza e Disponibilità, da qui l'esigenza di forzare in un unico nodo tutti i dati richiesti per una transazione, a discapito della scalabilità. Per quanto riguarda le proprietà BASE, queste sono necessarie poiché forniscono una versione rilassata delle ACID, nel caso in cui si favorisca la replicazione dei dai per aumentare la scalabilità orizzontale e la disponibilità dei dati, il tutto a discapito della consistenza. BASE = Basically Available, Soft state, Eventual consistency. Basically Available : nei sistemi NoSQL si predilige la disponibilità del dato e questo si ottiene andando a replicare il dato stesso su un gran numero di nodi; 10

11 Soft state : al contrario della Consistenza delle ACID, lo stato del sistema può variare nel tempo. Eventually consistency : non si danno garanzie sul quando i dati raggiungeranno uno stato consistente; questo perché il sistema deve essere sempre pronto a rispondere e le modifiche si propagano in maniera asincrona tra i nodi. 1.3 Il nuovo trend : NoSQL Con il termine NoSQL (Not Only SQL) indichiamo un movimento che si discosta dal tradizionale concetto di database relazionale (o RDBMS) per i quali la memorizzazione dei dati è legata alla definizione di un modello tabellare rigido e l'interrogazione è effettuata utilizzando il linguaggio SQL. Lo sviluppo dei sistemi NoSQL si basa su queste quattro caratteristiche [4]: open-source : caratteristica che è alla base del movimento, volta a promuovere l'utilizzo e lo sviluppo delle tecnologie NoSQL; non-relational : non abbiamo la definizione di uno schema fisso come nel caso dei sistemi relazionali. Infatti molte volte si parla di schemaless; distributed : la capacità di distribuire e replicare su molti nodi i dati, aumentando la possibilità di avere sempre disponibili i dati e aumentare la fault tolerance; horizontally scalable : nativamente pensati per scalare orizzontalmente, condizione richiesta per casi d'uso che coinvolgono Big Users e Cloud Computing. Nel corso della trattazione ci siamo già più volte avvicinati a quelle che sono le problematiche che hanno portato colossi di internet come Google, Amazon, Facebook, ad abbandonare il classico modello relazionale e ad investire nella ricerca e sviluppo dei NoSQL, utilizzati per un numero crescente di casi d'uso, scelta dovuta a quattro nuovi megatrend tra loro correlati : Big User, Big Data, The Internet of Things, Cloud Computing [5]. 11

12 1.3.1 Big Users Nel recente passato, utenti che utilizzassero giornalmente un applicazione era già un numero molto alto e arrivare a era un caso veramente eccezionale. Oggi i numeri sono veramente cresciuti: si parla di 3 miliardi di persone che si collegano a internet, spendendo oltre 35 miliardi di ore al mese online (dati del 2014). Però non sono questi i numeri che preoccupano gli sviluppatori: è molto più importante e critica la gestione e di migliaia di utenti simultanei e l'imprevedibile aumento o calo, in modo molto rapido, di affluenza. Figura I numeri dei "Big User" Le ragioni di questo fluttuare dell'affluenza possono essere delle più disparate: una nuova app, che diventa subito popolare e acquista in pochissimo tempo milioni di utenti; in periodi che precedono le festività, come Natale, Pasqua o San Valentino si registrano picchi enormi di visite agli e-commerce; utenti che usano spesso un'applicazione, come un social, altri che ne fanno un uso più raro o unico. Con i modelli relazionali è veramente difficile progettare e ottenere una scalabilità così elevata e fortemente dinamica, mantenendo alto il grado di performance: ci si rivolge ai NoSQL, che sono progettati per essere distribuiti e scale out. Infatti si utilizzano un gruppo di server, fisici o virtuali, per memorizzare dati e operazioni di supporto, e per scalare si aggiunge al cluster un nuovo server, capace di soddisfare una 12

13 richiesta di ben utenti. Tale approccio risulta essere anche più economico rispetto allo scaling up (più diventa complesso il server, più è costoso), che avrà comunque un limite oltre il quale il server relazionale dovrà scalare in due o più server, introducendo una enorme complessità per lo sviluppo dell'applicazione e database dovuto alle limitazioni intrinseche dei sistemi relazionali. Inoltre, lo scaling offerto dai sistemi NoSQL è invisibile all'applicazione, che continua a vedere un singolo database (distribuito) Big Data I Big Data sono diventati un punto cruciale per lo sviluppo e la fortuna di molte aziende, che hanno e stanno investendo molto nelle tecnologie capaci di analizzare questi dati al fine di ricavare modelli sui quali fare importanti scelte di business. Il termine Big Data si riferisce spesso a queste tipologie di dati [6]: Dati Enterprise : informazioni sui clienti da sistemi CRM, dati transazionali ERP, transazioni via web, dati di contabilità generale; Dati generati da sensori o macchine : CDR (Call Detail Record), weblogs, sensori, telecamere o rilevatori meteorologici, GPS, ecc; Dati sociali : flussi di feedback di clienti, tutto ciò che è prodotto dai social e così via. Quello che sicuramente salta agli occhi è la dimensione enorme di tutti questi dati, ma questa non è l'unica caratteristica dei Big Data. Infatti si parla di Big Data se valgono le 3V [7], ossia: Varietà : non stiamo trattando solo informazioni tradizionali, ma anche e soprattutto dati semi-strutturati o non strutturati, in formato testuale, audio, video, streaming, provenienti da sensori, social network o blog, e tanto altro ancora. Volume : parliamo di informazioni con un volume in continuo aumento, dai terabyte ai petabyte fino ai zetabyte (ossia un miliardo di TB). 13

14 Figura 1.5 Big Data: le 3 V. Velocità : riferita ai tempi di gestione e analisi, che devono essere sempre più rapidi, evitando così che i dati diventino obsoleti. La definizione di Big Data è stata poi arricchita con i concetti supplementari di Veridicità e Valore, la prima riferita alla correttezza e affidabilità dei dati, la seconda riferita alla capacità dei dati reperiti di portare un reale beneficio nel processo di analisi. Gli sviluppatori trovano sempre più interesse nello sfruttare questi dati per arricchire le loro applicazioni o svilupparne di nuove. Il problema sta nell'acquisizione e utilizzo dei big data, che richiede un database di tipo differente, una soluzione altamente flessibile che si adatti facilmente all'arrivo di nuovi tipi di dati e che non risenta di cambiamenti apportati alla struttura dei contenuti forniti da terze parti. La gran parte dei dati sono non strutturati o semi-strutturati e quindi c'è bisogno di database che li memorizzino in modo efficiente. L'approccio basato su uno scema rigidamente definito, quello relazionale per intenderci, rende impossibile l'integrazione 14

15 rapida di nuovi tipi di dati e non è molto efficiente per dati non/semi strutturati. Un altro problema è legato al disadattamento di impedenza tra l'approccio OO per lo sviluppo dell'applicazione e la struttura schematica del modello relazionale. I database NoSQL forniscono soluzioni a questi problemi, perché forniscono un modello dati più flessibile, schemaless, che organizza meglio i dati di un applicazione e semplifica la sua interazione con il database. 1.4 Tassonomia dei sistemi NoSQL Una problematica legata ai sistemi NoSQL è dovuta al fatto che non esiste ancora uno standard, come per il modello relazionale, in quanto abbiamo diverse soluzioni che usano protocolli proprietari, rendendo quindi difficile l'eventuale passaggio da un database all'altro. Però possiamo comunque isolare caratteristiche relative al tipo di memorizzazione, che permettono una loro classificazione. Possiamo riconoscere quattro macro-categorie: key-value, column family, documents-oriented e graph Key-value Memorizza coppie chiave-valore e la base di dati è vista come una grossa hash table. La chiave molto probabilmente sarà una stringa multipart, composta per esempio da una chiave maggiore e una minore, come nel caso di Oracle NoSQL Database, ed è utilizzata per accedere al dato. Il valore può essere di qualsiasi tipo, sia semplice come una stringa o int, oppure complesso, come un intero oggetto o una serializzazione di dati di una sessione web. Sono utilizzati quando si predilige la 15 Figura Key-Value stores

16 velocità di accesso al dato, quindi valorizza le operazioni CRUD create, read, update, delete e quando non c'è correlazione tra i dati da memorizzare. Alcuni esempi sono: Oracle NoSQL Database, DynamoDB, MemcachedDB e Redis Column family Memorizza i dati in righe e colonne, con la particolarità che sono memorizzati per colonna e non per riga come negli RDBMS. Le colonne non sono definite a priori e possono essere diverse per ogni riga, aggiunte o rimosse dinamicamente. Figura Standard Column Family Storem & Super Column Family Store Questi tipi di database sfruttano spesso un indicizzazione su due o più livelli: questo favorisce la velocità di accesso alle informazioni che ci interessano di un determinato oggetto, favorisce l'aggregazione di dati simili nel tipo e li rende più facilmente comprimibili, favorisce la distribuzione, anche ordinata, su un numero elevato di nodi e di un numero elevatissimo di dati. Infatti si parla di mappa ordinata, multi-dimensionale, persistente, indicizzata per row key, column key e timestamp (permette il versioning dei dati). Sono molto utilizzati nel campo dei Big Data in quanto forniscono un modello organizzato e flessibile. Alcuni esempi sono: Cassandra, Hypertable, Hbase. 16

17 1.4.3 Documents-oriented Sono molto simili ai Key-Value, con la differenza che il valore è sempre un documento, spesso in formato BSON o JSON. I documenti JSON (Javascript Object Notation) permettono di avere una memorizzazione schemaless dei dati, da intendere come flessibilità della struttura e non come totale assenza di organizzazione, che c'è ed è di tipo gerarchico. Figura 1.8 Dalle tabelle al documento. Adatti in situazioni dove la struttura dei dati può variare frequentemente o posso avere dati incompleti. Alcuni esempi sono: MongoDB, CouchDB, Couchbase Server Graph Memorizza strutture a grafo costituite da nodi e archi, dove ogni nodo può essere, per esempio, un oggetto e l'arco tra due nodi rappresenta la relazione tra di essi. Questa soluzione predilige le relazioni tra entità piuttosto che le entità stesse, infatti è particolarmente indicato quando ho a che fare con dati fortemente connessi e voglio avere una struttura performante per conoscere le relazioni tra i dati. Figura Graph Stores. 17

18 Nodi e archi possono memorizzare coppie chiave-valore e gli algoritmi realizzati per lo scorrimento del grafo rendono la soluzione altamente performante. Rappresenta la struttura ideale per la gestione di alcuni aspetti tipici dei social, dove ho relazioni del tipo amico di, piace a, amici in comune e così via. Alcuni esempi sono : Neo4J, OrientDB, Infinite Graph. 18

19 Capitolo 2 : Oracle NoSQL Database 2.1 Introduzione Il grande affermarsi delle tecnologie NoSQL per affrontare problematiche come Big Data, Big User e Internet of Things, ha portato anche Oracle, leader nel settore della gestione e memorizzazione dei dati con il suo Oracle Server o Oracle Database (che è un RDBMS), a sviluppare e realizzare una piattaforma NoSQL. Parliamo di Oracle NoSQL Database, piattaforma rilasciata nel 2011, in due versioni, COMMUNITY e ENTERPRISE. Oracle NoSQL Database (ONDB) è un database key-value distribuito, progettato per essere altamente disponibile ed estremamente scalabile, con livelli prevedibili di throughput e latenza, richiedendo minima interazione amministrativa [8]. Come per gli altri modelli NoSQL ci si focalizza sulla scalabilità orizzontale e semplici funzioni per la gestione dei dati. A differenza degli altri, invece, abbiamo [9]: un prodotto maturo, collaudato sul campo e di qualità. ONDB si basa sul motore di archiviazione e tecnologia di replica di Berkeley DB Java Edition, il quale vanta oltre un decennio di applicazione per casi d'uso mission-critical in aziende come Amazon o LinkedIn; è l'unico NoSQL sviluppato e supportato da un'azienda leader nella fornitura di database; una strumento capace di integrarsi con gli altri prodotti Oracle, come Oracle Database che è uno dei più famosi e utilizzati RDBMS; fornisce caratteristiche uniche come transazioni ACID configurabili e bilanciamento dinamico per l'archiviazione sui nodi. 19

20 Le transazioni ACID permettono uno sviluppo più semplice delle applicazioni, il bilanciamento dinamico si traduce in distribuzione robusta, coerente e scalabile per la base di dati; ONDB permette un throughput elevato, ma soprattutto garantisce un throughput e una latenza prevedibile, grazie a politiche di sgombero cache e raccolta parametri spazzatura Java, altamente ottimizzate e automatiche. Altri sistemi hanno in questo punto notevoli limitazioni, ossia quando si parla di prevedibilità e gestione delle prestazioni, soprattutto quando si tratta di ripulire il sistema, compattare e raccolta dei rifiuti Java; semplicità di implementazione e gestione del database; la piattaforma è stata fortemente testata, eseguendo test di benchmark standardizzati, con carichi di lavoro e configurazioni hardware differenti. 2.2 L'architettura di Oracle NoSQL Database La piattaforma Oracle NoSQL Database si forma su due parti principali: Server e Client [10],[11]. Figura Architettura Client - Server di ONDM Dalla figura si può notare che il client (libreria Java o C) è integrato nell'applicazione e le fornisce le chiamate API. Il server è distribuito su più nodi di storage logici, ognuno associato a un centro di stoccaggio dei dati in una macchina fisica o virtuale. 20

21 2.2.1 Il lato Server. Il server è distribuito in più nodi di storage o archiviazione. Uno Storage Node (SN) è tipicamente una macchina fisica, con una propria memoria persistente, CPU, memoria centrale e indirizzo IP. Figura Struttura lato server : Nodi Storage e Nodi Replica. Ciascun nodo archiviazione serve uno o più nodi replica, appartenenti a un gruppo di replica, tutti contenenti gli stessi dati. Per ogni gruppo di replica viene designato un nodo master che gestisce tutte le operazioni di modifica dei dati (create, update, delete) mentre gli altri nodi replica effettuano solo operazioni di lettura. Nel caso in cui il master fallisce, viene eletto a master un altro nodo appartenente allo stesso gruppo di replica, tramite protocollo Paxos. In figura 2.2 abbiamo una struttura con 30 gruppi di replica (0-29), ognuno con fattore di replica (RF) pari a 3, ossia un gruppo di replica con 3 nodi (un master e due repliche) e si sviluppa su due data center; RF=3 garantisce il funzionamento in lettura anche nel caso di guasto di due nodi simultaneamente. Ovviamente tale parametro RF può variare a seconda 21

22 del grado di robustezza e affidabilità che vogliamo dare all'applicazione. Analizzando sempre la struttura di figura 2.2, si può notare che sono stati assegnati al data center più grande due nodi replica, mentre al più piccolo uno solo (vale per ogni gruppo di replica). Questo tipo di configurazione ci può far pensare al fatto che l'applicazione utilizzi sempre i dati del data center maggiore, attingendo dal data center minore solo in caso di guasto del maggiore. I 30 gruppi di replica sono memorizzati su 30 nodi di storage distribuiti sui due data center. I nodi replica supportano le Oracle NoSQL Database API chiamate dai client, ottenendo dati o scrivendo i dati direttamente dal sistema di storage log-structured, che fornisce performance di scrittura eccezionale pur mantenendo bassa latenza in lettura grazie all'indicizzazione. Oracle NoSQL Database utilizza le repliche per garantire alta disponibilità dei dati, anche in caso di guasti simultanei di nodi repliche. Aumentare il fattore di replica permette soprattutto di diminuire la latenza in lettura, aumentare in numero di nodi di storage permette un throughput e una capacità di immagazzinamento maggiori per il sistema Il lato Client. Il client o Client Driver è un file Java che esporta l' API per le applicazioni. Esso mantiene anche una copia della topologia e la Replication Group State Table (RGST) ossia una tabella di stato del gruppo di replica. La topologia mappa efficientemente le chiavi per le partizioni e dalle partizioni dei gruppi di replica. Per ogni gruppo replica, include il nome host del nodo di archiviazione che ospita ogni nodo di replica del gruppo, il nome del servizio associato con i nodi di replica e il data center in cui ogni nodi risiede. La topologia viene caricata durante l'inizializzazione del client o del nodo di replica e può essere successivamente aggiornata 22

23 dall'amministratore nel caso di cambiamenti. La RGST è utilizzata del client prevalentemente per due scopi: identificare il nodo master del gruppo di replica, in modo da poter inviare richieste di scrittura al master; bilanciamento del carico di lettura su tutti i nodi replica del Figura Replication Group State Table. gruppo; Dal momento che la RGST è una struttura dati critica condivisa, ogni client e nodo replica ne mantiene una propria copia, evitando un singolo punto di fallimento. Entrambi effettuano una RequestDispatcher che utilizza la RGST per inviare richieste di scrittura al master e richieste di lettura allo specifico nodo dello specifico gruppo di replica. La RGST è dinamica e ha bisogno di manutenzione continua. Ogni nodo replica esegue un thread, chiamato Replication Node State Update thread, per la manutenzione della propria RGST. Il thread di aggiornamento, così come la RequestDispatcher, raccolgono informazioni sui nodi di replica remoti, compreso lo stato attuale del nodo nel suo gruppo di replica, il tempo dell'ultima interazione con successo avvenuta con il nodo, il tempo medio di risposta e la lunghezza attuale della coda di richieste. Inoltre l' Update thread mantiene le connessioni di rete e ristabilisce quelle interrotte. Tutta la manutenzione è fatta al di fuori del ciclo di richieste/risposta del RequestDispacher per minimizzare l'impatto delle connessioni interrotte sulla latenza. 23

24 2.2.3 Esempio di inserimento di un record. Per capire in che modo interagiscono Applicazione, Client Driver e Server distribuito, possiamo esaminare il caso di inserimento di una coppia chiave-valore Katana-sword. (1) L'applicazione invoca il metodo putifabsent( Katana, sword ) per effettuare una richiesta di scrittura al database. (2) Il Client Driver applica una funzione hash alla chiave Katana per calcolare il valore dell' ID di una partizione che sarà selezionata tra quelle prefissate. (3) Il Client Driver consulta la Partition Table per associare all' ID della partizione il gruppo di replica corrispondente. Figura 2.4 Inserimento di Katana-sword (4) Selezionato il gruppo di replica si accede alla sua RGST. (5) Per ogni gruppo di replica, la RGST contiene le informazioni dei nodi replica ad esso appartenenti, come il Tipo (master o replica), il Tempo di risposta e l' Host. (6) A seconda del tipo di operazione (lettura/scrittura) e delle informazioni contenute nella RGST che identificano il tipo di nodo e il carico di lavoro, si seleziona il nodo al quale inviare la richiesta. Nel nostro caso verrà selezionato il nodo master e a lui sarà inoltrata la richiesta di scrittura. (7) Il nodo selezionato esegue l'operazione. Nel caso della scrittura, il nodo master effettuerà la memorizzazione della coppia chiave-valore se e solo se la chiave non esiste ancora e la propagazione avverrà appena possibile. Nel caso in cui la chiave è già presente, l'operazione non viene conclusa e ritorna un errore. 24

25 2.3 Oracle NoSQL Data Model. Nella sua forma più semplice, ONDB implementa una mappa di chiavi definite dall'utente (generalmente stringhe) a elementi di dati opachi. Per ogni coppia chiave-valore viene registrata la versione, anche se viene mantenuta nello store solo l'ultima versione. ONDB utilizza il meccanismo single-master replication : il nodo master ha sempre la versione più aggiornata per i dati relativi a una singola chiave, mentre in sola lettura, le repliche potrebbero fornire versioni meno aggiornate. L'applicazione può comunque utilizzare il numero di versione per garantire la consistenza delle operazioni di scritturalettura-modifica Chiavi e Valori. Come già anticipato, ONDB è una piattaforma key-value store, che memorizza quindi coppie chiave-valore. La chiave è una stringa multipart, costruita come concatenazione di una Major Key Path e una Minor Key Path, specificate a livello applicativo. Tutti i record che si riferiscono alla stessa Major Key Path sono memorizzati nello stesso nodo e l'indicizzazione è effettuata applicando una funzione hash all'intera chiave. L' hashing della chiave permette un ottima distribuzione delle stesse chiavi sui nodi e allo stesso tempo una ricerca molto veloce. Se come esempio prendiamo un'applicazione che memorizza profili utente, come Major Key Path posso prendere il nome-profilo e come Minor Key Path gli altri componenti di tale profilo, come indirizzo, numero di telefono o mail. Essendo l'applicazione a gestire la composizione e interpretazione delle chiavi, diverse Major Key Path possono avere strutture Minor Key Path completamente differenti. Ritornando all'esempio di prima, si potrebbero archiviare nello stesso store sia il profilo utente che applicativo, mantenendo per ognuno un diverso Minor Key Path. Il valore può essere qualsiasi cosa, un tipo base come int e string, o molto più complesso. ONDB supporta la serializzazione Avro che ci da un formato dati binario estremamente 25

26 compatto e utilizzando JSON permette di definire uno schema per il contenuto del valore del record, che può anche evolvere Politiche di Consistenza. In generale quando parliamo di NoSQL, parliamo di eventuale consistenza, come definito nelle proprietà BASE. Non è il caso di ONDB, che invece fornisce diversi livelli di consistenza a seconda di quanto richiesto dall'applicazione. Figura 2.5 Politiche di Consistenza. In figura possiamo notare: none consistency : per applicazioni che possono lavorare anche su dati incoerenti si offre bassa consistenza, così si restituiscono valori più efficientemente ma non sempre aggiornati. time-based consistency / version-based consistency : nel primo caso la consistenza è riferita rispetto a un certo tempo, nel secondo rispetto a una certa versione del dato stesso. absolute consistency : per applicazioni che hanno bisogno di lavorare con il valore più recente associato a una data chiave. Avere una flessibilità di questo tipo permette agli sviluppatori di dare il necessario grado di garanzia ai dati avendo comunque ottimi parametri di latenza e scalabilità. 26

27 2.3.3 Politiche di Durabilità. ONDB fornisce anche una gamma di politiche di durabilità, che danno garanzie sullo stato del sistema dopo un fallimento improvviso. Da un lato abbiamo il caso in cui l'applicazione blocca le richieste di scrittura fino a quando non saranno aggiornate tutte le repliche, dall'altro lato si permette di servire una nuova richiesta di scrittura non appena quella corrente viene registrata, anche se non è ancora stata propagata sulle repliche. Naturalmente nel primo caso avrò dati scritti sempre correttamente, sempre persistenti e recuperabili anche nel caso di fallimenti multipli, il tutto a discapito della disponibilità e delle prestazioni. Nel secondo caso avrò altissime prestazioni in scrittura senza però garanzie sulla durabilità, in quanto se ho un fallimento sul master prima che questo propaghi le modifiche sulle repliche, il nuovo master, che verrà eletto, non è detto che sia a conoscenza della modifica e quindi ho avuto perdita di informazioni.. Tra i due estremi abbiamo poi una notevole gamma di soluzioni, regolate specificando quando la scrittura deve essere fatta su disco e il numero di repliche che devono essere coinvolte (nessuna, tutte, un certo numero). 2.4 API, CRUD e Iteratori. ONDB fornisce delle semplici API in linguaggio C o Java per le operazioni base di Create, Read, Update, Delete (CRUD), che permettono un'integrazione della piattaforma all'interno dell'applicazione molto semplice. Le librerie includono anche il supporto Avro per la serializzazione e de-serializzazione dei record chiave-valore. Per la creazione e aggiornamento sono forniti diversi metodi put : putifabsent implementa la creazione (se la chiave è assente) e putifpresent che invece implementa l'aggiornamento. Il solo metodo put implementerà la creazione se la chiave non è presente, altrimenti l'aggiornamento. L'operazione di aggiornamento andrà a memorizzare una nuova versione della coppia 27

28 chiave-valore : l' API fornisce il metodo putifversion che permette alle applicazioni di implementare consistenza semantica in lettura-modifica-scrittura. Per la cancellazione si utilizza il metodo delete o la sua versione condizionata deleteifversion, che cancellano una coppia chiave-valore dal database (nel secondo caso una certa versione specificata). Per recuperate record dal database si utilizza il metodo get. Figura Codice di semplici operazioni CRUD. Sono supportati anche due tipi di iterazione: iterazione non-ordinata su record e iterazione ordinata all'interno della stessa Major Key Path. Nel caso di iterazione non-ordinata sull'intero store, il risultato è non transazionale poiché si opera a livello read-committed, ossia nel risultato avrò solo coppie chiave-valore scritte persistentemente nel database, ma non ci sono garanzie sulla consistenza semantica di tutte le coppie. L'API supporta sia il ritorno singolo di coppie chiave-valore, utilizzando diversi metodi storeiterator, sia il ritorno di un insieme di coppie-chiave valore all'interno di Major Key Path usando vari metodi multigetiterator. 28

29 2.5 Oracle NoSQL Database nella soluzione Oracle per Big Data. Oracle Corporation definisce il suo Oracle NoSQL Database come un database che non è general-purpose, bensì è stato sviluppato per affrontare uno specifico set di problemi di gestione dati e per integrarsi in modo semplice con gli altri prodotti Oracle [11]. Questo permette di inserire ONDB all'interno di qualsiasi soluzione di classe enterprise per la gestione dei dati. Figura Ecosistema della gestione dati. La figura mostra proprio come ONDB si integra con il resto dell'intero ecosistema di gestione dei dati, rendendo disponibile agli sviluppatori e ai clienti i proprio punti di forza, al minimo costo in termini di integrazione manuale, poiché la soluzione è stata sviluppata già da Oracle. La soluzione offerta da Oracle fa si che il database relazionale (Oracle Database) e non (Oracle NoSQL Database) si completino a vicenda : da un lato abbiamo dati e applicazioni che si basano sul database relazionale e che hanno magari bisogno di meccanismi di query complesse, dall'altro abbiamo la necessità di gestire grandi volumi di dati semplici, strutturati e semi/non strutturati. Oracle fornisce meccanismi che permettono di spostare dati da Oracle NoSQL DB a 29

30 Oracle DB per essere analizzati, o viceversa per consentire lo sviluppo di applicazioni web-based e che sfruttano grandi volumi di dati in modo estremamente veloce [9]. La tecnologia NoSQL è tipicamente accostata ai Big Data, soprattutto nell'acquisizione. Oracle Corporation fornisce un intero sistema ingegnerizzato, hardware e software, per acquisire, organizzare e analizzare i Big Data; stiamo parlando di Oracle Big Data Appliance. Figura Acquisizione, organizzazione e analisi dei Big Data. Nell'intero processo, Oracle NoSQL DB si occupa di acquisire i dati semplici provenienti dalla rete globale, archiviando le coppie chiave-valore distribuite nei suoi nodi di storage. Su questi dati su possono effettuare analisi statistiche semplici utilizzando direttamente processi di Hadoop MapReduce che potrebbero essere utili all'applicazione. Nel caso in cui si vogliono effettuare operazioni di analisi più complesse, si spostano i dati in un data warehouse Oracle e si sfrutta un set più ricco di processi e funzionalità. Lo spostamento dei dati da Oracle NoSQL DB verso il data warehouse può avvenire usando Oracle Data Integrator o usando funzioni SQL di MapReduce che permetto a Oracle DB di estrarre dati direttamente da una sorgente esterna [12]. 30

31 Conclusioni In questo elaborato è stata fatta una panoramica sui database NoSQL e sulla soluzione offerta da Oracle Corporation in tale ambito con Oracle NoSQL Database. I database NoSQL sono stati presentati andando a valutare alcuni casi d'uso che rendono le soluzioni sviluppate sul modello relazionale generalmente non performanti, come l'acquisizione e organizzazione dei Big Data o la gestione dei Big Users. Nel caso dei Big Data, le limitazioni del modello relazionale sono molteplici, dalla definizione tabellare rigida per i dati, che rende impossibile una veloce integrazione di nuovi attributi, non è adatta a memorizzare dati semi/non strutturati magari incompleti e comunque sconsigliata nel caso di strutture che diventano molto grandi, alla necessità di effettuare JOIN per risolvere query che interessano attributi sparsi su più tabelle a causa della normalizzazione. Nel caso dei Big Users si è sottolineata la necessità di avere una soluzione che sia altamente scalabile, orizzontalmente piuttosto che verticalmente, così da adattarsi in modo rapido e dinamico alle improvvise variazioni di richieste. Nel proporre le soluzioni fornite dai database NoSQL si è data anche una classificazione in quattro categorie, sottolineando per ognuna i punti di forza e i più noti prodotti software. Nella seconda parte ci si è soffermati sulla soluzione di Oracle Corporation per database NoSQL, analizzandone l'architettura, il modello dei dati, le API fornite e le personalizzazioni possibili nell'abito della consistenza e durabilità. Nell'ultimo paragrafo è stata fatta una panoramica dei possibili utilizzi di Oracle NoSQL DB all'interno di un più complesso sistema di gestione dei dati, accennando ai meccanismi e strumenti che lo compongono e alla soluzione di classe enterprise per l'acquisizione e organizzazione dei Big Data fornita da Oracle Big Data Appliance. 31

32 Bibliografia [1] [2] [3] R. A. Elmasri, S. B. Navathe, Sistemi di basi di dati, 4a edizione, Pearson, 2004,pg [4] [5] Why NoSQL?, Couchbase, [6] Oracle: Big Data for Enterprise, Oracle White Paper, Ottobre 2011 [7] Big Data : Riconoscerli, gestirli, analizzarli. [8] [9] Oracle White Paper NoSQL and SQL Introspective: Oracle NoSQL Database 11g Release 2 [10] Oracle NoSQL DB Basic structure and working mechanism by Chao Huang, Sr. Manager, Oracle [11] Oracle White Paper - Oracle NoSQL Database, Settembre 2011 [12] Intervista Oracle Big Data Management, Marzo

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

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

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

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

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

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

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

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

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

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

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

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

Sistemi informativi secondo prospettive combinate

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

Dettagli

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

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

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

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

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

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

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

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

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

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

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

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

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

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

Introduzione alla Virtualizzazione

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

Dettagli

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

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

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

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

Ambienti di calcolo a griglia Parte 2. Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job

Ambienti di calcolo a griglia Parte 2. Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job Ambienti di calcolo a griglia Parte 2 Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job Docente: Marcello CASTELLANO La vera rivoluzione non è più la capacità

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

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

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

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

CREA IL CATALOGO DEI TUOI PRODOTTI SU IPAD E IPHONE CON UN APP. ANZI, CON UPP!

CREA IL CATALOGO DEI TUOI PRODOTTI SU IPAD E IPHONE CON UN APP. ANZI, CON UPP! CREA IL CATALOGO DEI TUOI PRODOTTI SU IPAD E IPHONE CON UN APP. ANZI, CON UPP! COS È UPP!? upp! è l applicazione di punta della divisione mobile di Weblink srl, dedicata allo sviluppo di applicazioni per

Dettagli

Gartner Group definisce il Cloud

Gartner Group definisce il Cloud Cloud Computing Gartner Group definisce il Cloud o Cloud Computing is a style of computing in which elastic and scalable information technology - enabled capabilities are delivered as a Service. Gartner

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

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

Report di valutazione studiolegalebraggio.it

Report di valutazione studiolegalebraggio.it Roma, li 15/01/2013 Report di valutazione studiolegalebraggio.it Il presente documento è redatto allo scopo di mostrare e analizzare le performance del sito web a due mesi e mezzo dalla pubblicazione online,

Dettagli

YOU ARE WHAT YOU CURATE COS E LA CONTENT CURATION E COME APPLICARLA

YOU ARE WHAT YOU CURATE COS E LA CONTENT CURATION E COME APPLICARLA YOU ARE WHAT YOU CURATE COS E LA CONTENT CURATION E COME APPLICARLA YOU ARE WHAT YOU CURATE INTRODUZIONE DEFINIZIONE: COS E LA CONTENT CURATION? PERCHE FARNE USO IL CONTENT CURATOR COME NON FARE CONTENT

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

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

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

Dettagli

L ergonomia dei sistemi informativi

L ergonomia dei sistemi informativi Strumenti non convenzionali per l evoluzione d Impresa: L ergonomia dei sistemi informativi di Pier Alberto Guidotti 1 L ergonomia dei sistemi informativi CHI SONO Pier Alberto Guidotti Fondatore e direttore

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

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

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

Il servizio di registrazione contabile. che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili

Il servizio di registrazione contabile. che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili Il servizio di registrazione contabile che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili Chi siamo Imprese giovani e dinamiche ITCluster nasce a Torino

Dettagli

Collegamento remoto vending machines by do-dots

Collegamento remoto vending machines by do-dots Collegamento remoto vending machines by do-dots Ultimo aggiornamento 23 marzo 2011 rev1 - Stesura iniziale 18/10/2010 rev2 - Approfondimenti 12/11/2010 rev3 Riduzione dei contenuti per una lettura generica

Dettagli

POLYEDRO. La migliore piattaforma tecnologica di sempre per EMBYON, l evoluzione dell ERP Metodo

POLYEDRO. La migliore piattaforma tecnologica di sempre per EMBYON, l evoluzione dell ERP Metodo POLYEDRO La migliore piattaforma tecnologica di sempre per EMBYON, l evoluzione dell ERP Metodo 1 Indice Chi siamo La tecnologia POLYEDRO EMBYON 4 8 12 Siamo nati in Italia, siamo leader in Italia. TeamSystem

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

itime Chiaramente inclusa la stampa del cartellino presenze come previsto dalle normative

itime Chiaramente inclusa la stampa del cartellino presenze come previsto dalle normative itime itime Il software di rilevazione presenze itime rappresenta lo strumento ideale per l automatizzazione della gestione del personale. L ampia presenza dei parametri facilita l operatore nel controllo

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

Turismo Virtual Turismo Virtual Turismo Virtual

Turismo Virtual Turismo Virtual Turismo Virtual Da una collaborazione nata all inizio del 2011 tra le società Annoluce di Torino e Ideavity di Porto (PT), giovani e dinamiche realtà ICT, grazie al supporto della Camera di Commercio di Torino, nasce

Dettagli

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna Il CMS Moka Giovanni Ciardi Regione Emilia Romagna Moka è uno strumento per creare applicazioni GIS utilizzando oggetti (cartografie, temi, legende, database, funzioni) organizzati in un catalogo condiviso.

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione 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

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda.

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda. Scheda Il CRM per la Gestione delle Vendite Le organizzazioni di vendita sono costantemente alla ricerca delle modalità migliori per aumentare i ricavi aziendali e ridurre i costi operativi. Oggi il personale

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)

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

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

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

Addition X DataNet S.r.l. www.xdatanet.com www.xdatanet.com

Addition X DataNet S.r.l. www.xdatanet.com www.xdatanet.com Addition è un applicativo Web che sfrutta le potenzialità offerte da IBM Lotus Domino per gestire documenti e processi aziendali in modo collaborativo, integrato e sicuro. www.xdatanet.com Personalizzazione,

Dettagli

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it Decreto Legislativo 196/2003 Codice in materia di protezione dei dati personali COOKIE POLICY La presente informativa è resa anche ai sensi dell art. 13 del D.Lgs 196/03 Codice in materia di protezione

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

Sistemi Informativi e Basi di Dati

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

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

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

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

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

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

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

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

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario Data Base Management System Strumenti: Software specifico Formato: Pro: Proprietario Massima semplicità di inserimento e gestione Tipizzazione Validazione dei dati Contro: Creazione del database Programmazione

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

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

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video Video Librerie digitali Gestione di video Ogni filmato è composto da più parti Video Audio Gestito come visto in precedenza Trascrizione del testo, identificazione di informazioni di interesse Testo Utile

Dettagli

WorkFLow (Gestione del flusso pratiche)

WorkFLow (Gestione del flusso pratiche) WorkFLow (Gestione del flusso pratiche) Il workflow è l'automazione di una parte o dell'intero processo aziendale dove documenti, informazioni e compiti vengono passati da un partecipante ad un altro al

Dettagli

3. Introduzione all'internetworking

3. Introduzione all'internetworking 3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia

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

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

MService La soluzione per ottimizzare le prestazioni dell impianto

MService La soluzione per ottimizzare le prestazioni dell impianto MService La soluzione per ottimizzare le prestazioni dell impianto Il segreto del successo di un azienda sta nel tenere sotto controllo lo stato di salute delle apparecchiature degli impianti. Dati industriali

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

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

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

AICA - Workshop 01/03/2011

AICA - Workshop 01/03/2011 AICA - Workshop La Mappa di un sistema di BI I tre elementi che hanno "cambiato il gioco": Maturazione degli ETL open source La semplificazione di Amazon EC2 L'arrivo dei DB Colonnari Nel dettaglio Cos'è

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

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

Volumi di riferimento

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

Dettagli

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

Concetti di base di ingegneria del software

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

Dettagli

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS Basi di Basi di (Sistemi Informativi) Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web) Avete già interagito (magari inconsapevolmente)

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli