NOSQL Origini e Significato. NOSQL = NO a SQL. NOSQL = Not Only SQL
|
|
- Leone Pepe
- 8 anni fa
- Visualizzazioni
Transcript
1 NOSQL
2 NOSQL Origini e Significato NOSQL = NO a SQL NOSQL = Not Only SQL Il termine NOSQL fu introdotto da Carlo Strozzi nel 1998 per indicare il suo database relazionale open-source che non aveva una interfaccia SQL standard. Il termine attualmente indica tutti quei database che sono: non relazionali, distribuiti, open-source (spesso) e scalabili orizzontalmente.
3 NOSQL Introduzione un po' di storia Anni '70 Nascono i database relazionali - I supporti di memorizzazione sono altamente costosi - I dati vengono normalizzati per il loro inserimento nel database - L'organizzazione dei dati dipende da loro stessi e non dall'uso che sarà fatto Anni '80 Vengono introdotti i sistemi RDBMS - Si introduce il modello Client/Server - Il linguaggio SQL diventa lo standard per l'interrogazione dei database Anni '90 Nascita del World Wide Web e inizio della diffusione massiva di Internet
4 NOSQL Introduzione un po' di storia Anni 2000 Nascita del Web Diminuisce notevolmente il costo dei sistemi di memorizzazione - Diffusione dell'e-commerce - Diffusione dei social media - Crescita esponenziale dei dati prodotti
5 NOSQL Introduzione un po' di storia Anni 2000 Nascita del Web Diminuisce notevolmente il costo dei sistemi di memorizzazione - Diffusione dell'e-commerce - Diffusione dei social media - Crescita esponenziale dei dati prodotti Necessità di scalare con il crescere dei dati
6 NOSQL Introduzione un po' di storia A questo punto la scalabilità dei sistemi RDBMS distribuiti non è più sufficiente per stare al passo con la velocità desiderata di produzione e consumo dei dati. Nascono quindi i database NOSQL per rispondere alle esigenze che con i RDBMS non potevano affrontare ovvero la necessità di una alta scalabilità orizzontale invece che una Scalabilità verticale scalabilità verticale (limitata) tipica dei RDBMS. Scalabilità orizzontale
7 NOSQL Introduzione un po' di storia
8 NOSQL RDBMS VS NoSQL
9 RDBMS vs NOSQL Fine delle relazioni? Dire che un sistema NoSQL è non relazionale significa che adottandolo si è costretti a rinunciare alle relazioni fra i dati? No! Anzi... NoSQL significa non tanto rinunciare al linguaggio SQL quanto rinunciare al rigido formalismo matematico, detto algebra relazionale, che è alla base di tutti i sistemi RDBMS e quindi liberarsi dai vincoli che esso impone.
10 NOSQL Fine delle relazioni? Quali sono questi vincoli? Ricordiamo che i sistemi RDBMS richiedono un processo di normalizzazione sui dati che consente di evidenziare le caratteristiche essenziali dei dati e le relazioni che tra essi intercorrono, eliminando tutte le ridondanze. Il risultato è un modello astratto dei dati, detto schema, che definisce univocamente la struttura e il tipo dei dati e li separa in tabelle.
11 NOSQL Fine delle relazioni? Due conseguenze fondamentali del processo di normalizzazione sono: - la necessità di utilizzare dei JOIN per ricostruire le informazioni da elaborare; operazione costosa sia computazionalmente che temporalmente; - la rigidità dello schema: - aggiungere un campo o una relazione rende necessario bloccare l'intero database fino a che la modifica non è completata; - solo i dati conformi allo schema possono essere memorizzati; Il costo relativo di questi vincoli aumenta con l'aumentare delle dimensioni dei dati da trattare e rende impossibile un'efficace scalabilità orizzontale.
12 RDBMS vs NOSQL Fine delle relazioni? I sistemi NoSQL non nascono quindi con l'obiettivo di rinunciare alle relazioni tra i dati ma, al contrario, dal desiderio di avere la massima libertà possibile di modificare ed alterare nel tempo sia la struttura dei dati che le relazioni che tra essi intercorrono. Per questo motivo si fondano su: - una organizzazione/memorizzazione dei dati in formati meno astratti e più vicini (ed utili) all'applicazione che li dovrà elaborare; - l'assenza di uno schema rigido che consenta di aggiungere nuovi dati, anche molto dissimili dai precedenti, e nuove relazioni senza la necessità di modificare la struttura del database e senza bloccarne l'accesso.
13 RDBMS vs NOSQL Acidi vs Basi Le caratteristiche ed i punti di forza dei sistemi RDBMS vengono spesso sintetizzate con l'acronimo ACID; per evidenziare il diverso approccio ai dati dei sistemi NoSQL alcuni dei loro punti di forza sono stati sintetizzati nell'acronimo BASE. A tomicity B asically C onsistency A vailable, I solation S oft State, D urability E ventually Consistent
14 RDBMS vs NOSQL CAP Theorem Perché abbandonare le proprietà ACID? Il CAP Theorem sostanzialmente dimostra che è impossibile garantire le proprietà ACID in un sistema distribuito e scalabile orizzontalmente. Quindi il superamento delle proprietà ACID non è un vezzo ma un passaggio obbligatorio qualora si voglia costruire un sistema distribuito.
15 RDBMS vs NOSQL CAP Theorem Nel 2000 Brewer teorizzo il seguente teorema noto CAP theorem: un sistema distribuito può fornire contemporaneamente solo due fra le seguenti garanzie: Consistency (Consistenza): tutti i nodi vedono gli stessi dati nello stesso momento; Availability (Disponibilità): il sistema risponde a tutte le richieste; Partition tolerance (Tolleranza al Partizionamento): il sistema continua ad operare anche se alcune sue parti rimangono isolate dalle altre in modo arbitrario (ovvero se il grafo che rappresenta il sistema è disconnesso).
16 RDBMS vs NOSQL CAP Theorem CA Consistency L'intersezione tra queste tre regioni è nulla. CP Partition Tollerance Availability AP
17 RDBMS vs NOSQL CAP Theorem Perché è impossibile garantire le proprietà ACID su un sistema distribuito? Un limite fondamentale di cui ci si dimentica spesso quando si progetta un software, anche nel caso di web services, è che la velocità della luce è costante. Questo fatto apparentemente irrilevante implica che un segnale che deve attraversare l'atlantico impiega circa 30 ms. cosa che rende estremamente complesso realizzare un sistema distribuito, altamente scalabile, fortemente interattivo e dunque indipendente dalla latenza.
18 RDBMS vs NOSQL CAP Theorem Vediamo attraverso alcuni diagrammi il significato del CAP Theorem. Nel diagramma sono illustrati due nodi N1 e N2 che condividono un dato V ( ognuno ne ha una copia) il cui valore è V0. Su ciascun nodo gira un algoritmo (A e B) che possiamo considerare sicuro, privo di errori, prevedibile ed affidabile. A scrive un nuovo valore su V B legge il valore di V.
19 RDBMS vs NOSQL CAP Theorem In un mondo ideale la rete sarebbe sempre affidabile e il trasferimento di informazioni istantaneo
20 RDBMS vs NOSQL CAP Theorem In un mondo reale la rete non sempre é affidabile e il trasferimento di informazioni non è istantaneo... N1 1 N1 A V1 Vo N1 A 2 A V1 3 V1 M N2 N2 B 1 N2 B Vo 2 B Vo 3 V0 V0
21 RDBMS vs NOSQL CAP Theorem In altri termini, il CAP Theorem ci dice che se vogliamo un sistema che sia - highly available, ovvero in grado di lavorare con latenza minima; - costituito da centinaia o migliaia di nodi - e che ciascun nodo sia tollerante alle interruzioni di rete ( messaggi persi, non recapitati, fallimento di processi, guasti hardware) allora dobbiamo accettare il fatto che ci saranno alcuni momenti in cui - un nodo sarà convinto che il valore di V sia V0 - ed un altro nodo sarà convinto che il valore di V sia V1
22 RDBMS vs NOSQL CAP Theorem CA Come ovviare ai limiti imposti dal CAP Theorem? Ci sono 3 possibilità: Consistency Availability 1 : CA - rinunciare alla Partitition Tolerance ovvero forzare tutti i dati richiesti da una transazione in un'unica macchina CP Partition Tollerance o quantomeno datacenter, con ovvi limiti alla scalabilità. Questo è tipicamente quello che si fa con i tradizionali RDBMS. AP
23 RDBMS vs NOSQL CAP Theorem CA Le altre due opzioni, con diverse sfumature, sono quelle adottate dai sistemi NoSQL 2 : CP rinunciare a qualcosa in termini di Availabilty per garantire consistenza Consistency Availability e robustezza al partizionamento; 3 : AP rinunciare a qualcosa in termini di Consistenza per garantire robustezza al partizionamento; disponibilità e CP Partition Tollerance AP
24 RDBMS vs NOSQL ACID Properties Atomicità: la transazione è indivisibile nella sua esecuzione e la sua esecuzione deve essere o totale o nulla, non sono ammesse esecuzioni parziali; Consistenza: quando inizia una transazione il database si trova in uno stato consistente e quando la transazione termina il database deve essere in un altro stato consistente, ovvero non deve violare eventuali vincoli di integrità, quindi non devono verificarsi contraddizioni (inconsistenza) tra i dati archiviati nel DB; Isolamento: ogni transazione deve essere eseguita in modo isolato e indipendente dalle altre transazioni, l'eventuale fallimento di una transazione non deve interferire con le altre transazioni in esecuzione; Durabilità: detta anche persistenza, si riferisce al fatto che una volta che una transazione abbia richiesto un commit, i cambiamenti apportati non dovranno essere più persi.
25 RDBMS vs NOSQL ACID Properties Le proprietà ACID garantiscono l integrità e la consistenza del dato, ma per consentire la transazionalità impongono forti limiti alle performance ed alla scalabilità orizzontale. I produttori di sistemi RDBMS per ridurre i limiti alla scalabilità dei loro sistemi hanno sviluppato un protocollo denominato Two Phase Commit (2PC) che prevede che: - il coordinatore delle transazioni richiede a tutti i db coinvolti dalla transazione di effettuare un pre-commit per verificare la fattibilità dell'operazione; - ogni database effettua il pre-commit e invia una risposta al coordinatore; - se tutte le risposte sono positive il coordinatore conferma la transazione e le modifiche vengono apportate, altrimenti viene invocato un rollback.
26 RDBMS vs NOSQL BASE properties Giocoforza si è dovuto adottare una versione rilassata delle proprietà ACID che favoriscono la replicazione dei dati per aumentare la scalabilità orizzontale e la disponibilità del dato a scapito della consistenza (in senso ACID). Queste proprietà sono sintetizzate dall'acronimo : BASE = Basically Available, Soft state, Eventual consistency.
27 NOSQL Differenze RDBMS e NOSQL Basically Available. L'approccio NoSQL predilige la disponibilità del dato anche in presenza di molteplici errori. Viene ottenuto utilizzando un approccio altamente distribuito replicando i dati su un gran numero di sistemi di memorizzazione. E' la consistenza nel senso del teorema CAP. Soft state. Si abbandona la consistenza nel senso delle proprietà ACID. Lo stato del sistema può quindi variare nel tempo, teoricamente anche senza input specifici. Eventual consistency. Significa che in un qualche istante futuro i dati arriveranno in uno stato consistente (nel senso ACID). Non ci sono garanzie, ovviamente, su quando ed in quanto tempo questo avverrà. Questo perché: il sistema deve risponde subito alle richieste dei client; le modifiche ai dati si propagano in maniera asincrona fra i vari nodi.
28 NOSQL Tipologie di sistemi NoSQL
29 NOSQL Tipologie di NOSQL Proprio perché i database NOSQL sono incentrati sui dati esistono, ne esistono di diverse tipologie ed esistono diverse varianti all'interno della stessa tipologia. Le quattro tipologie principali di database NOSQL sono:
30 NOSQL Key-value stores I Key-Value stores puntano sugli aspetti di Availability e Partition Tolerance del teorema CAP e prendono origine dall'articolo di Amazon dove descriveva il suo database Dynamo. Lo scopo di Amazon era quello di avere un database altamente scalabile dove si potesse accedere ai dati in modo affidabile il più velocemente possibile in quanto i database relazionali non scalavano alla velocità necessaria. Lo sviluppo di Dynamo fu iniziato nel Esempi di database: Amazon Dynamo, Voldemort (Linkedin), MemcacheDB, Riak, Redis, BerkleyDB...
31 NOSQL Key-value stores I database Key-Value stores sono la più semplice tipologia di database NOSQL. Ad ogni chiave è associato un blob binario oscuro che può contenere qualsiasi tipologia di dato (stringa di testo, documento, immagine, video, ecc...). KEY VALUE Key 1 Key 2 Key 3 Stringa Key 4 Blob datatype
32 NOSQL Key-value stores KEY Key 1 Key 2 Key 3 Key 4 VALUE Il vantaggio è che si ha una struttura altamente scalabile con una API di interrogazione del database molto semplice: Aggiungi una coppia key/value Recuperare un blob data la sua chiave Cancellazione di una chiave Le differenze principali rispetto al modello relazionale: Una query restituisce un solo elemento I value possono contenere qualsiasi tipo di dato Lo svantaggio è che non c'è nessun modo di eseguire query basate sul contenuto del valore in quanto i blob sono oscuri.
33 NOSQL Document stores Sono orientati alla conservazione di documenti; quindi a differenza di quanto accade con i Key-Value stores, il contenuto non è una black-box ma è accessibile ed indicizzabile I Document stores si basano su un modello proposto già negli negli anni '80 da Lotus Notes; non a caso uno dei fondatori di CouchDB, Damien Katz, ha dichiarato Couch is Lotus Notes built from the ground up for the web. Esempi di DB: MongoDB, CouchDB, Couchbase...
34 NOSQL Document stores Lo scopo di questa tipologia di database è quella di archiviare in modo efficiente sia i documenti che il loro contenuto, perciò consentono di creare indici secondari in modo da poter recuperare i documenti anche in base al loro contenuto, metadati o combinazioni di essi. Inoltre, gli indici sono quasi sempre realizzati simili a quelle tipiche dei sistemi RDBMS che consentono ricerche per uguaglianza; per intervallo; indici su più attributi; riferimenti ad altri documenti.
35 NOSQL Document stores Esiste una limitata analogia fra i Document DB e gli RDBMS che si può riassumere in questa tabella e che può aiutare a comprenderne meglio l'organizzazione Relazionale Document stores Tabella Collection Riga Document Colonna Coppia Key/Value Join Non presente* I JOIN non sono presenti, ma i riferimenti verso altri documenti possono essere visti come una sorta JOIN. Va rimarcato che i documenti non hanno uno schema e che quindi possono essere costituiti da coppie key/value, coppie key/array, o anche documenti annidati.
36 NOSQL Document stores Il formato in cui vengono memorizzati i documenti è generalmente standard, anche se più raramente in alcuni casi vengono memorizzati file di documenti veri e propri (es. PDF, DOC ). Il formato più utilizzato è il JSON, gli altri formati utilizzati sono XML, YAML e BSON. Questo è dovuto principalmente anche alla forte integrazione che questi database hanno con Javascript. Inoltre, la possibilità di ottenere modelli di dati complessi senza rinunciare alle performance, li ha resi molto diffusi per siti web e di e-commerce, e gestione documentale.
37 NOSQL Column family stores I database Column family si ispirano all'articolo di Google dove descriveva il suo database Bigtable. Bigtable è un sistema di memorizzazione distribuito per la gestione di dati strutturati progettato per scalare su grandissime dimensioni: petabyte di dati distribuiti su migliaia di server. Dal 2006, Bigtable, è usato da Google in oltre 60 progetti. Esempi di DB: Bigtable, Hbase, Hypertable, Cassandra...
38 NOSQL Column family stores Column family store indica che il database è organizzato per colonne invece che per righe come nei RDBMS semplicità nell'aggiungere o modificare un record durante la lettura dei record si potrebbero leggere dati non necessari vengono letti solamente i dati di interesse la scrittura di una tupla richiede accessi multipli Ottimale per repository di grandi dimensioni che sono read-intensive
39 NOSQL Column family stores Un Column Family Store può esser visto come una mappa ordinata; multi-dimensionale; persistente; indicizzata per row key, column key e timestamp; Poiché ad ogni dato è associato un timestamp è possibile avere anche un versioning dei dati. Inoltre ogni riga può avere un numero differente di colonne, cosa che di fatto rende questo database una matrice multidimensionale sparsa. I column family si dividono in: Standard column family Super column family
40 NOSQL Column family: Standard Column Family La row key (la chiave più esterna ) identifica l'aggregato, che a sua volta mappa una o più famiglie di colonne dove possono essere presenti diversi valori associati column key. ad una diversa
41 NOSQL Column family: Super Column Family Un estensione dello Standard Column Family è rappresentato dal Super Column Family. Questo aggiunge modello un semplicemente ulteriore livello di indicizzazione fra la row key e l insieme delle colonne, la cosiddetta super column. Questa chiave viene utilizzata per raggruppare attributi correlati fra di loro, appartenenti allo stesso aggregato. Questa organizzazione ha vari vantaggi fra cui: dati più ordinati ed utilizzabili dalle applicazioni; sharding più efficiente.
42 NOSQL Column family stores Altri vantaggi dei Column family database sono: I valori in una singola colonna sono memorizzati in maniera contigua e conservati in specifici column datafile; I dati all'interno di ciascun column datafile sono dello stesso tipo, questo li rende ideali per la compressione; La memorizzazione per colonna permette di migliorare le performance delle query in quanto permette l'accesso diretto alle colonne; Alte performance nelle query di aggregazione (es. COUNT, SUM, AVG, MIN, MAX).
43 NOSQL Graph Quest'ultima tipologia di database NOSQL, a differenza delle precedenti, è relazionale, in quanto il suo focus è memorizzare i dati e le relazioni fra loro esistenti. I Graph stores sono ispirati dalla teoria dei grafi. E' la tipologia di database ideale per la gestione di social network e simili, nonché sistemi intelligenti che facciano uso di clustering e generazione di regole. Esempi di DB: Neo4j, OrientDB, AllegroGraph, InfiniteGraph...
44 NOSQL Graph Nome: Roberto Età: 36 Nome: Francesca Età: 34 Marca: Opel Modello: Corsa I nodi del grafo sono i dati ed hanno coppie key/value.
45 NOSQL Graph Nome: Roberto Età: 36 Ama Nome: Francesca Età: 34 Vive con Ama Possiede dal: 2008 Guida Marca: Opel Modello: Corsa Le relazioni sono gli edge del grafo, collegano i nodi, hanno una etichetta e possono avere coppie key/value. Inoltre, la semantica delle relazioni dipende dall'applicazione e quindi possono essere sia riflessive (es. Vive con) che no (es. Ama).
46 NOSQL Un punto di vista applicativo Confronto NoSQL
47 NOSQL Un punto di vista applicativo Una chiave di lettura molto interessante sui sistemi NoSQL è quella proposta da Martin Fowler nel suo libro NoSQL Distilled, che si fonda sull'utilizzo tipico che viene fatto di queste tecnologie. La prima domanda che si pone è: esiste davvero una linea di demarcazione netta tra Key-Value Stores e Document Stores?
48 NOSQL Un punto di vista applicativo Metadata customer ID: 4156 La risposta è NO. La maggior parte dei KV store consente di aggiungere dei metadati indicizzabili con cui recuperare velocemente i values associati (rendendoli simili ai document store) La maggior parte dei Document, associano automaticamente un ID al document che tipicamente viene recuperato per intero (ciò che si fa con i KV)
49 NOSQL Un punto di vista applicativo Anche i Column-Store, pur avendo una struttura più complicata, possono essere visti come degli Aggregate Store. Ogni Column-Family raggruppa un insieme di colonne simili che possono essere recuperate attraverso un'unica operazione. Ad esempio in una Colum-Family si possono racchiudere i dettagli dell'ordine Ed in un'altra i dettagli dei singoli Item associati all'ordine.
50 NOSQL Aggregate Storage Possiamo considerare i sistemi NoSQL come degli Aggregate Storage, cioè dei sistemi che ci consentono di memorizzare entità complesse (così come le abbiamo in RAM nella nostra applicazione) con un'unica operazione, come se fossero un'unica entità indivisibile. Consideriamo il caso banale di un ordine con più elementi al suo interno. In RAM avremo almeno un oggetto Order e un oggetto Item per ogni elemento. Tuttavia, anche discorsivamente, quando pensiamo di salvare l'ordine o leggere i dettagli dell'ordine, pensiamo all'ordine come un'unica entità complessa che vogliamo leggere e scrivere con un'unica operazione.
51 NOSQL Aggregate Storage I sistemi RDBMS ci costringono a spargere i dati su tante tabelle distinte e separare un' operazione in tante sotto-operazioni.....che poi raggrupperemo in una transazione per poter avere atomicità e consistenza.
52 NOSQL Aggregate Storage I sistemi NoSQL invece ci consentono di memorizzare l'intera struttura complessa come un unico Aggregato, così come lo abbiamo in RAM. KV : Aggregato == Value Document : Aggregato == Documento Col-Store : Aggregato == RowID + ColFamily
53 NOSQL Aggregate Storage - Drawbacks Esistono tuttavia delle controindicazioni nell'uso dei sistemi NoSQL. Supponiamo di voler fare un po' di analisi ed elaborare delle statistiche sulle vendite: Product Curr. Sales Prev. Sales PR PR PR
54 NOSQL Aggregate Storage - Drawbacks Ciò che stiamo facendo in questo caso è cambiare il cuore dell'aggregato. In questo caso l'aggregazione non sarà più incentrata sugli ordini, ma sui prodotti perché ci interessano gli andamenti delle vendite in diversi periodi dell'anno. Questo con i sistemi RDBMS risulta facile, basta cambiare leggermente la QUERY e le regole di raggruppamento. Con i sistemi NoSQL è invece molto più scomodo ottenere questo risultato e tipicamente si effettuano dei Job MapReduce che analizzano l'intera base dati. L'uso dei sistemi NoSQL risulta dunque vantaggioso quando l'accesso ai dati avviene per lo più in forma aggregata. Se invece si ha necessità di cambiare spesso forma di aggregazione un sistema RDBMS può essere più adatto.
55 NOSQL Aggregate Storage Fanno storia a se i Graph DB che invece hanno un approccio diametralmente opposto e presentano una parcellizzazione delle informazioni ancor più estrema di quella dei sistemi RDBMS.
56 NOSQL Confronto RDBMS vs NoSQL
57 RDBMS vs NoSQL MySQL vs Mongo Effettuare un confronto approfondito tra sistemi così diversi è molto complesso. Per dare un'idea dell'impatto delle caratteristiche ACID su un sistema distribuito e dei potenziali vantaggi di sistemi basati sul modello BASE, riportiamo i risultati di un confronto tra - MySQL installato in modalità distribuita e - MongoDB eseguiti nel dipartimento di High Performance Computing della Università di Edimburgo nel 2013.
58 RDBMS vs NoSQL MySQL Schema
59 RDBMS vs NoSQL Mongo Schema
60 RDBMS vs NoSQL Test 1 : Simple Query Test 1: Il primo test riguarda l'esecuzione di una query semplice che coinvolge una sola tabella. SELECT * FROM Users WHERE username = 'username'
61 RDBMS vs NoSQL Test 1 : Simple Query Tempo di esecuzione delle queries in diverse configurazioni:
62 RDBMS vs NoSQL Test 1 : Simple Query Numero di queries al secondo
63 RDBMS vs NoSQL Test 2 : Query with SELF JOIN Test 2: Il secondo test è più complesso e richiede l'utilizzo di un SELF JOIN SELECT 'Favourites.song_id' AS fsid, 'Favourites.userid' AS fuid FROM Favourites AS b INNER JOIN Favourites AS a ON b.user_id = a.user_id WHERE a.song_id = AND a.user_id!=
64 RDBMS vs NoSQL Test 2 : Query with SELF JOIN Tempo di esecuzione delle queries in diverse configurazioni:
65 RDBMS vs NoSQL Test 2 : Query with SELF JOIN Numero di queries al secondo
66 RDBMS vs NoSQL Test 3 : Complex Query Test 3: Il terzo test è ancora più complesso e richiede l'utilizzo di - una nested query e - 2 INNER JOIN SELECT 'Songs.release_id' AS sid, 'Releases.id' AS rid FROM Songs INNER JOIN Releases ON Songs.release_id = Releases.id WHERE artist_id IN (SELECT 'Genres.artist_id' AS gaid FROM Genres AS g INNER JOIN Artists AS a ON g.artist_id = a.id WHERE a.name = 'artist_name' )
67 RDBMS vs NoSQL Test 3 : Complex Query E' evidente come, anche in un setup piuttosto semplice come quello del test, crescere della complessità della query i tempi di esecuzione siano nettamente diversi. al
68 RDBMS vs NoSQL Test 4 : Variazione delle dimensioni del DB In questo caso si può notare come il tempo di esecuzione della query nel caso di MySQL aumenti con il crescere delle dimensioni del DB
69 RDBMS vs NoSQL Test comparativo Il test precedente ha messo in evidenza l'impatto negativo sulle performance dovuto ai JOIN ed agli accessi su più tabelle. Impatto percepibile anche in un sistema semplice con pochi dati e poche macchine tutte posizionate all'interno di uno stesso datacenter con connessioni ad alte prestazioni. Vediamo ora un secondo test che coinvolge anche HBase e Cassandra, effettuato su macchine virtuali fornite dagli Amazon Web Services, con un carico di lavoro più consistente ma con letture scritture su tabella singola, quindi senza l'impatto negativo dovuto ai JOIN.
70 RDBMS vs NoSQL Numeri del test Client : 1 Nodo - RAM : 7.5 GB - CPU : 4 Core Server : 4 Nodi - RAM : 15 GB - CPU : 8 Core Dati: Milioni di record - 10 campi per record thread attivi contemporaneamente (client-side)
71 RDBMS vs NoSQL Bulk Load Hbase è risultato il più veloce con 40K op/sec. Al secondo posto troviamo Cassandra con 15K op/sec.
72 RDBMS vs NoSQL Workload A ( 50% read, 50% update)
73 RDBMS vs NoSQL Workload A ( 50% read, 50% update)
74 RDBMS vs NoSQL Workload B ( 95% read, 5% update)
75 RDBMS vs NoSQL Workload B ( 95% read, 5% update)
76 RDBMS vs NoSQL Workload C : read-only N.B: Ricordiamo che si tratta di accessi su singola tabella a record con pochi campi.
77 RDBMS vs NoSQL Workload D ( 90% insert, 10% read)
78 NOSQL RDBMS vs NoSQL Come Scegliere?
79 NoSQL Quando e quale scegliere? Non esiste una riposta univoca a questa domanda. La scelta tra un sistema RDBMS ed una o più delle tipologie di sistemi NoSQL è strettamente legata al problema specifico che si deve affrontare. Nelle prossime slide cercheremo di fornire alcune linee guida che potranno essere d'aiuto nella scelta tra i vari sistemi. Innanzitutto è necessario porsi alcune domande...
80 Come Scegliere? Che vincoli ci impone il nostro problema? Vediamo alcune domande di carattere generale che dovremmo porci prima di decidere: Vincoli legati al modello : - Quante entità ci occorrono per modellare il problema? - Quante relazioni abbiamo tra le diverse entità? Quanto sono fitte? - Che probabilità c'è che lo schema possa cambiare? Con quale frequenza? Vincoli legati all'accesso ai dati: - Quanto è stringente il vincolo di consistenza? Dev'essere assoluta? E' ammissibile un ritardo di qualche ms o di qualche secondo nella propagazione degli aggiornamenti? - L'accesso ai dati avverrà su tutti i campi di un record o solo su alcuni di essi? - Le elaborazioni richiederanno l'accesso a più tabelle? O saranno concentrate solo su alcune colonne (es. data, prezzo, disponibilità...)?
81 Come Scegliere? Macro categorie di applicazioni Per orientarci meglio possiamo definire tre macro categorie che ci aiutino a capire i pro e i contro delle diverse soluzioni: - Applicazioni prettamente Transazionali: caratterizzate da forti vincoli di consistenza e certezza dell'informazione; - Applicazioni prettamente Computazionali, caratterizzate dalla necessità di eseguire elaborazioni anche complesse sui dati; - Applicazioni prettamente Interattive e Web Oriented: caratterizzate dalla presenza di un numero elevato di utenti e di dover loro garantire tempi di risposta molto brevi;
82 Come Scegliere? Applicazioni Transazionali Ad esempio gestione di un punto vendita o gestione risorse umane. Sono caratterizzate da : obbligatorietà della consistenza ed integrità dei dati; modesto livello di concorrenza (gestibile da una singola macchina) Vincoli sullo schema: tipicamente associate a problemi con dati fortemente strutturati relazioni chiare e strette tra le varie entità relazioni utilizzate di frequente schema stabile e con scarse probabilità di cambiamento
83 Come Scegliere? Applicazioni Transazionali Vincoli sull'accesso ai dati: consistenza (ogni lettura DEVE garantire il valore più aggiornato del dato) Row-Oriented (tipicamente viene letto l'intero record) frequente accesso a più tabelle (JOIN) necessità dell'uso delle transazioni (proprietà ACID)
84 Come Scegliere? Applicazioni Transazionali Pro NoSQL: Column Oriented: possono semplificare la gestione dello schema, che può facilmente variare nel tempo con l'aggiunta di colonne; Document : possono aiutare nella definizione di viste Contro NoSQL: non forniscono supporto alle relazioni (ad eccezione dei Graph DB); non forniscono supporto alle transazioni (no ACID); non forniscono supporto per JOIN o viste sui dati (tranne alcuni Document attraerso il modello MapReduce, che però non è facile da usare); Decisione: Questo è il regno dei sistemi RDBMS e difficilmente si possono avere dei vantaggi con sistemi NoSQL.
85 Come Scegliere? Applicazioni Computazionali Sono applicazioni tipicamente orientate all'elaborazione dei dati, ad esempio per la produzione di report di vendite; generazione di statistiche sull'utilizzo di un dato servizio individuazione di trend o altre funzionalità di analytics Tipicamente : operano su un sottoinsieme dei campi del record; fanno un uso piuttosto limitato delle relazioni tra tabelle; Vincoli sullo schema: tipicamente sono associate a schemi strutturati che variano poco nel tempo possono richiedere l'integrazione tra basi di dati diverse e dunque con schemi differenti;
86 Come Scegliere? Applicazioni Computazionali Accesso ai dati: tipicamente utilizzano un sottoinsieme dei campi di un record; Column-Oriented le elaborazioni da eseguire sui dati richiedono operazioni tra valori della stessa colonna associati a record diversi (es. colonna prezzo, colonna vendite ed acquisti, date...) accessi multi-tabella piuttosto rari; consistenza dei dati non stringente è richiesto il valore più recente del dato ma è ammissibile un lieve ritardo nel suo ottenimento in quanto tipicamente le elaborazioni non vengono effettuate in real-time;
87 Come Scegliere? Applicazioni Computazionali Pro NoSQL: Column Oriented: consentono la definizione di uno schema rigoroso e contemporaneamente facilitano l'uso di schemi variabili nel tempo ; Document / Key-Value : possono essere utilizzati ma non forniscono alcun supporto nella verifica dello correttezza dello schema; Possono garantire un notevole incremento di prestazioni durante l'accesso parziale ai record; Possono eseguire molte operazioni la dove sono memorizzati i dati senza necessità di spostarli attraverso la rete; con un sostanziale incremento delle prestazioni; Contro NoSQL: non forniscono supporto alle relazioni (ad eccezione dei Graph DB); l'assenza di regole e relazioni può generare temporanee inconsistenze tra i dati;
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
DettagliSQL, NoSQL, o entrambi?
Introduzione Nella prima parte di questo corso abbiamo fatto una prima introduzione sul quando e come scegliere un database per risolvere un determinato problema. In questa parte finale vedremo attraverso
DettagliHBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?
NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui
DettagliOrganizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
DettagliIl 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
DettagliInformatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati
Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità
DettagliMongoDB. 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
DettagliCapitolo 13. Interrogare una base di dati
Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per
DettagliSoftware 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
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
DettagliDispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
DettagliOttimizzazione 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
DettagliCorso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati
Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente
DettagliIntroduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni
Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono
DettagliControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi
ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,
DettagliI 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
DettagliIntroduzione alla teoria dei database relazionali. Come progettare un database
Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare
DettagliLezione 1. Introduzione e Modellazione Concettuale
Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and
DettagliCORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)
Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni
DettagliDatabase 1 biblioteca universitaria. Testo del quesito
Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole
DettagliStrutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
DettagliOperazioni 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
DettagliTelerilevamento 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
DettagliSISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione
SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi
DettagliTecnologia di un Database Server (centralizzato) Introduzione generale
Introduzione Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Introduzione generale Angelo Montanari Dipartimento di Matematica e Informatica Università di
DettagliProgettazione di Basi di Dati
Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello
DettagliEsercizio data base "Biblioteca"
Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni
DettagliLe Basi di Dati. Le Basi di Dati
Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per
DettagliArchivi e database. Prof. Michele Batocchi A.S. 2013/2014
Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi
DettagliCreare 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,
DettagliBASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone
BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell
DettagliBase 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
DettagliSOLUZIONE Web.Orders online
SOLUZIONE Web.Orders online Gennaio 2005 1 INDICE SOLUZIONE Web.Orders online Introduzione Pag. 3 Obiettivi generali Pag. 4 Modulo di gestione sistema Pag. 5 Modulo di navigazione prodotti Pag. 7 Modulo
DettagliMODELLO 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
Dettagli5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9
5.2.1 RELAZIONI TRA TABELLE 1 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 Il grado di un verso di un associazione indica quanti record della tabella di partenza si associano ad un
DettagliI database relazionali (Access)
I database relazionali (Access) Filippo TROTTA 04/02/2013 1 Prof.Filippo TROTTA Definizioni Database Sistema di gestione di database (DBMS, Database Management System) Sistema di gestione di database relazionale
Dettagliuadro 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
DettagliAbilità 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.
DettagliAccess. 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
DettagliProgettazione di un Database
Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di
DettagliDBMS (Data Base Management System)
Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire
DettagliI database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:
Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare
DettagliFacoltà di Farmacia - Corso di Informatica
Basi di dati Riferimenti: Curtin cap. 8 Versione: 13/03/2007 1 Basi di dati (Database, DB) Una delle applicazioni informatiche più utilizzate, ma meno conosciute dai non informatici Avete già interagito
DettagliEsercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:
Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare
DettagliSistemi centralizzati e distribuiti
Sistemi centralizzati e distribuiti In relazione al luogo dove è posta fisicamente la base di dati I sistemi informativi, sulla base del luogo dove il DB è realmente dislocato, si possono suddividere in:
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
DettagliIntroduzione 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
DettagliARCHIVI E DATABASE (prof. Ivaldi Giuliano)
ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).
DettagliIntroduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico
Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle
DettagliIntroduzione al data base
Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli
DettagliDATABASE. www.andreavai.it
Cos'è un database? Quando si usa? Differenze con i fogli elettronici Le tabelle: record, campi, tipi di dati Chiavi e indici Database relazionali (R-DBMS) Relazioni uno-a-uno Relazioni uno-a-molti Relazioni
DettagliTEORIA sulle BASI DI DATI
TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere
DettagliCONCETTO DI ANNIDAMENTO
LEZIONE14 SQL ANNIDAMENTI PAG. 1 / 5 PROF. ANDREA ZOCCHEDDU LEZIONE14 SQL ANNIDAMENTI CONCETTO DI ANNIDAMENTO LINGUAGGIO SQL QUERY ANNIDATE Per annidamento si intende la possibilità che, all interno di
DettagliLezione V. Aula Multimediale - sabato 29/03/2008
Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)
DettagliBasi Di Dati, 09/12/2003
Basi Di Dati, 09/12/2003 Una concessionaria di auto nuove ed usate vuole automatizzare alcune delle sue attività. L attività che la concessionaria vuole automatizzare riguarda la gestione delle auto nuove,
DettagliIntroduzione ai database relazionali
Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita
DettagliINFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.
INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed
DettagliLight CRM. Documento Tecnico. Descrizione delle funzionalità del servizio
Documento Tecnico Light CRM Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 11 Luglio 2006. Redatto da: Michela Michielan, michielan@prosa.com Revisionato
DettagliCoordinazione 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,
DettagliDATABASE. A cura di Massimiliano Buschi
DATABASE A cura di Massimiliano Buschi Introduzione Con Microsoft Access: Immissione dati e interrogazione Interfaccia per applicazioni e report Ma prima bisogna definire alcune conoscenze di base sui
DettagliConcetti 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
DettagliBrochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8
Ogni organizzazione possiede un sistema di regole che la caratterizzano e che ne assicurano il funzionamento. Le regole sono l insieme coordinato delle norme che stabiliscono come deve o dovrebbe funzionare
DettagliA intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
Dettagli1. BASI DI DATI: GENERALITÀ
1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente
DettagliLA NORMALIZZAZIONE. Introduzione
LA NORMALIZZAZIONE Introduzione La normalizzazione e' una tecnica di progettazione dei database, mediante la quale si elimina la rindondanza dei dati al fine di evitare anomalie nella loro consistenza
DettagliOSSIF WEB. Manuale query builder
OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
DettagliAnalisi e diagramma di Pareto
Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo
DettagliSPECIFICHE E LIMITI DI EXCEL
SPECIFICHE E LIMITI DI EXCEL Un "FOGLIO DI CALCOLO" è un oggetto di un programma per computer costituito da un insieme di celle, organizzate in righe e colonne, atte a memorizzare dati ed effettuare operazioni
DettagliLa 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
DettagliRegistratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
DettagliAppunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
DettagliDispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
DettagliIntroduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6
Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...
DettagliBase 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
DettagliIndice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi
Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)
DettagliManuale d uso Software di parcellazione per commercialisti Ver. 1.0.3 [05/01/2015]
Manuale d uso Software di parcellazione per commercialisti Ver. 1.0.3 [05/01/2015] Realizzato e distribuito da LeggeraSoft Sommario Premessa... 2 Fase di Login... 2 Menù principale... 2 Anagrafica clienti...
DettagliVolume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software
Volume GESTFLORA Gestione aziende agricole e floricole Guidaall uso del software GESTIONE AZIENDE AGRICOLE E FLORICOLE Guida all uso del software GestFlora Ver. 2.00 Inter-Ware Srl Viadegli Innocenti,
DettagliUtilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi
Vogliamo creare una struttura per permettere di memorizzari i voti della classe in tutte le materie Per fare questo untilizziamo tre tabelle Alunni,materie,voti Alunni Materie Voti Creo un record per ogni
DettagliScheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola
DettagliBig Data. Davide Giarolo
Big Data Davide Giarolo Definizione da Wikipedia Big data è il termine usato per descrivere una raccolta di dati così estesa in termini di volume, velocità e varietà da richiedere tecnologie e metodi analitici
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)
DettagliApprofondimento: Migrazione dei database e backup della posta
Approfondimento: Migrazione dei database e backup della posta In questo approfondimento ci focalizzeremo sulla migrazione dei database analizzando le differenze operative e le varie implicazioni a seconda
DettagliCosa è 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
DettagliData 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
DettagliUso 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,
DettagliCREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS
CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu
DettagliESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7
ESEMPI DI QUERY SQL Dati di esempio... 2 Query su una sola tabella... 2 Esempio 1 (Ordinamento)... 2 Esempio 2 (Scelta di alcune colonne)... 3 Esempio 3 (Condizioni sui dati)... 3 Esempio 4 (Condizioni
DettagliGHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.
*+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti
DettagliAl 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,
DettagliIntroduzione ad OLAP (On-Line Analytical Processing)
Introduzione ad OLAP (On-Line Analytical Processing) Metodi e Modelli per il Supporto alle Decisioni 2002 Dipartimento di Informatica Sistemistica e Telematica (Dist) Il termine OLAP e l acronimo di On-Line
DettagliGestione documentale. Arxivar datasheet del 30-09-2015 Pag. 1
Gestione documentale Con ARXivar è possibile gestire tutta la documentazione e le informazioni aziendali, i documenti e le note, i log, gli allegati, le associazioni, i fascicoli, i promemoria, i protocolli,
DettagliMANUALE UTENTE Fiscali Free
MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato
DettagliInsegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati
Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il
DettagliB+Trees. Introduzione
B+Trees Introduzione B+Trees Il B+Trees e la variante maggiormente utilizzata dei BTrees BTrees e B+trees fanno parte della famiglia degli alberi di ricerca. Nel B+Trees i dati sono memorizzati solo nelle
DettagliTi consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.
Sommario A cosa serve InfoWEB?... 3 Quali informazioni posso comunicare o ricevere?... 3 Cosa significa visualizzare le informazioni in maniera differenziata in base al livello dell utente?... 4 Cosa significa
DettagliManuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise
Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3
DettagliEsame Di Stato A.S. 2004/2005 Istituto Tecnico Commerciale Corso Sperimentale Progetto Mercurio Corso di Ordinamento - Programmatori
Esame Di Stato A.S. 2004/2005 Istituto Tecnico Commerciale Corso Sperimentale Progetto Mercurio Corso di Ordinamento - Programmatori Telelavoro ed e-commerce, due mini-rivoluzioni, stentano a svilupparsi
DettagliConcetti fondamentali dei database database Cos'è un database Principali database
Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione
Dettagli