NOSQL Il database relazionale va in pensione,

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "NOSQL Il database relazionale va in pensione,"

Transcript

1 Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL Il database relazionale va in pensione, avanza il movimento NOSQL RavenDB, database non relazionale, rappresentante del movimento NOSQL

2 Sondaggio 1 Cosa ne pensi dei database NOSQL?

3

4

5

6 Il mondo è cambiato troppo in fretta =

7 Per superare questa montagna di dati era necessario scalare orizzontalmente, ovvero fare scale out, cosa che però gli attuali RDBMS non sapevano fare molto bene

8 Per risolvere il problema Amazon e Google hanno deciso di implementare internamente delle soluzioni che avessero come caratteristica principale la scalabilità orizzontale Le implementazioni dei due giganti del web hanno dato il via ad un piccolo esercito di database alternativi (chiamati poi NOSQL) BigTable: Dynamo:

9 Per definirsi tale, un database NOSQL deve essere: Non relazionale Inteso come modello di trattamento del dato Supporto? Distribuito Open-source Scalabile orizzontalmente In accordo con la definizione data su Deve essere scalabile by design

10 Classificazione I database NOSQL sono classificati in base al tipo di modello che utilizzano per la memorizzazione del dato, in particolare possiamo individuare queste grandi famiglie: Key-Value stores Column-oriented databases Document databases Graph databases Fonte:

11 Voldemort Key/Value stores memcached Sono definiti da un semplice dizionario/mappa che permette all utente di recuperare e aggiornare il valore memorizzato data la sua chiave Tokyo cabinet Get(key) stringa BLOB Set(key, value) Delete(key) e poco altro

12 Caso d uso: memcached Utilizzare memcached per alleggerire il carico sul database relazionale ed avere una cache scalabile e indipendente dal processo ASP.NET Qui posso fare scale-out Qui posso fare solo scale-up

13 Caso d uso: memcached Utilizzare memcached per alleggerire il carico sul database relazionale ed avere una cache scalabile e indipendente dal processo ASP.NET Facebook's fork of memcached can do ~200k QPS Qui posso fare scale-out Qui posso fare solo scale-up 1 Se non trovo il valore lo recupero dal database (2) 2 Con l aiuto di memcached posso fare scale-out anche con i dati, ma in memoria

14 Sondaggio 2 Nelle tue applicazioni usi la cache?

15 MongoDB Document databases RavenDB CouchDB Memorizza le informazioni come collezioni di documenti. Un documento può contenere informazioni annidate ed ha un formato riconosciuto (JSON, XML, etc.) che permette poi al server di eseguire delle query sui dati. A differenza delle tabelle di un relazionale però è schema-free nel senso che non deve sottostare ad uno schema ben preciso. Posso avere documenti di una stessa tipologia con campi diversi e posso aggiungere nuovi campi senza compromettere i documenti esistenti.

16 Allegro Graph Graph databases Sones Neo4j FlockDB Rappresentano perfettamente una realtà composta da una fitta rete di connessioni e la modellano sotto forma di nodi e rami di un grafo. Ai nodi come ai singoli rami vengono associate le informazioni attraverso Key-Value store. Se togliamo le relazioni (i rami) assomigliano a tutti gli effetti ad un database documentale. Per le query che soddisfano il modello gerarchico i tempi di esecuzione possono essere volte più veloci rispetto agli altri database. recommends

17 Column-oriented databases Amazon SimpleDB Cassandra Hypertable Hadoop / HBase Le informazioni non sono memorizzate per riga bensì per colonna. L ovvietà dell affermazione si può spiegare meglio con un esempio: Row-oriented 1,Smith,Joe,40000; 2,Jones,Mary,50000; 3,Johnson,Cathy,44000; Column-oriented 1,2,3; Smith,Jones,Johnson; Joe,Mary,Cathy; 40000,50000,44000;

18 Il mantra dei database NOSQL:

19 E un database documentale DEMO 1 Installazione di RavenDB, configurazione e operazioni di lettura e scrittura

20 RavenDB in deep

21 Schema-free Le informazioni sono memorizzate in JSON e non devono sottostare ad uno schema, quindi posso arbitrariamente decidere di aggiungere successivamente dei campi senza compromettere i dati esistenti.

22 Indici Se i documenti che inseriamo non hanno un formato stabilito non abbiamo un modo per poter recuperare selettivamente le informazioni. RavenDB ci mette a disposizione la possibilità di creare degli indici con i quali fare le query per recuperare i documenti, una porzione di essi (proiezione) oppure fare delle aggregazioni.

23 Come funzionano allora le query? Premessa: tutte le query devono usare un indice Se non esiste un indice per quella interrogazione RavenDB ne crea uno temporaneo. Se lo chiamo più volte diventa persistente. in Lucene.NET E la funzione usata da RavenDB per estrarre le informazioni da memorizzare insieme all indice. Quando chiamo la query le informazioni precedentemente memorizzate mi vengono ritornate come risultato.

24 Informazioni staleness Siccome l elaborazione di un indice è molto pesante non viene fatta nello stesso momento della query, ma viene fatta in un thread in background che parte quando viene aggiunto un nuovo dato oppure ne viene modificato uno esistente. Questo comportamento ha due immediate conseguenze: Le query sono molto veloci Le query possono ritornare dati non aggiornati (staleness) Posso sempre verificare se il risultato della query ha tornato dati non aggiornati: oppure posso specificare alla query quanto può attendere (oppure fino a quando attendere):

25 Map/Reduce Ci consente di fare delle aggregazioni La Map/Reduce non è altro che un group by applicato ad un elevato numero di dati distribuiti. La sua applicazione è giustificata dal fatto che abbiamo la necessità di eseguire un group by in più step ognuno dei quali da eseguire su macchine differenti.

26 Map/Reduce Il primo passo è quello di separare l operazione precedente in più operazioni distinte. MAP FUNCTION Subset di risultati che diventerà uno degli input della reduce

27 Map/Reduce Il passo successivo riguarda l esecuzione del group by sui risultati della map function. REDUCE FUNCTION Il risultato finale è questo:

28 Indice Map/Reduce Ovviamente il passo conclusivo è quello di creare un indice map/reduce che ci permetta di fare query di aggregazione sui dati: Ed ecco come poi faccio la query su questo indice:

29 DEMO 2 Creiamo il nostro primo indice Map/Reduce

30 DDD (Domain Driven Design) RavenDB, come tutti gli altri database documentali, si sposa perfettamente con la metodologia del Domain Driven Design in quanto assume che l informazione minima da salvare, ovvero il documento, rappresenti un aggregato. L aggregato è una unità logica indipendente che contiene tutte le informazioni necessarie per definire un contesto applicativo. Ad esempio il singolo post con l autore, i commenti, le categorie e i tag. No Impedance Mismatch! ORM

31 Nessuna Join, la regola è denormalizzare DDD tutta la vita, ma mi stai forse dicendo che lo stesso autore devo salvarlo in ogni documento che contiene un suo post? Esatto! Nell aggregato devo mettere solo una versione denormalizzata che contenga per quanto possibile solo le informazioni strettamente necessarie che verranno modificate raramente. Ma così ho una forte duplicazione dei dati, e se poi mi servirà fare un update?

32 CAP Theorem Devi scegliere tra consistenza e disponibilità del dato

33 ACID vs BASE Atomicity, Consistency, Isolation, Durability Basic Available, Soft-state, Eventual consistency Mantengo l integrità e la consistenza del dato garantendo transazionalità a scapito delle performance e della scalabilità orizzontale Favorisco la replicazione per aumentare la scalabilità orizzontale e la disponibilità del dato a scapito della consistenza

34 Come scegliere il database giusto? La scelta deve essere guidata da: Tipo di dati da memorizzare Richieste in termini di scalabilità Natura del tipo di interrogazioni che devo fare sui dati Esigenze o vincoli in termini di consistenza

35 Alcune considerazioni Non esiste più un solo modo di pensare al trattamento dei dati SQL e NOSQL possono convivere occupandosi di aspetti diversi ed essere sfruttati al massimo per quelle che sono le loro caratteristiche e peculiarità (polyglot persistance) Alcuni prodotti NOSQL non sono ancora maturi per giustificarne un impiego a livello enterprise In alcune circostanze è meglio approfondire gli strumenti in possesso perché potrebbe risiedere nella scarsa conoscenza di essi il collo di bottiglia che stiamo cercando di superare

36 Riferimenti Introduzione e concetti base NoSQL. Present, Past & Future (Gabriele Lana) NoSQL Databases - Christof Strauch NoSQL Data Modeling Techniques Availability & Consistency Scalable SQL and NoSQL Data Stores - Rick Cattell Highly Connected Data Models in NOSQL Stores Casi d uso ed esempi What the heck are you actually using NoSQL for? 35+ Use Cases for Choosing Your Next NoSQL Database What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications Social networks in the database: using a graph database Stack Overflow Architecture NOSQL Overview, Neo4j Intro And Production Example (QCon London 2010)

37 Riferimenti SQL vs NOSQL Humor NoSQL vs. RDBMS: Let the flames begin! Fighting The NoSQL Mindset, Though This Isn't an anti-nosql Piece RavenDB RavenDB overview MVC Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using RavenDB and ASP.NET MVC 4 to create a Twitter Clone Chirpy Document Databases Compared: CouchDB, MongoDB, RavenDB MongoDB vs MySQL Your Guide to No-SQL - Brian Aker

38 Sondaggio 3 Useresti NOSQL nella tua prossima applicazione?

39

40 Credits Le immagini contenute in questa presentazione hanno licenza Creative Commons Slide Slide 3:http://www.flickr.com/photos/x1brett/ / Slide Slide Slide 6: Slide 7: Slide 8: Slide 18: Slide 20: Slide 33:http://www.flickr.com/photos/hikingartist/ /in/photostream/

41 Thank You MANUEL SCAPOLAN website: twitter: manuelscapolan

42 Sondaggio 1: Cosa ne pensi dei database NOSQL? Non so, aspetto di capire meglio cosa sono e a che cosa servono prima di esprimere un giudizio Sono scettico, per me il database relazionale rimane l unica destinazione possibile per i miei dati Penso possano essere in alcuni casi una valida alternativa ai database relazionali Sono fantastici, appena possibile abbandono il database relazionale e porto tutto su NOSQL!

43 Sondaggio 2: Nelle tue applicazioni usi la cache? Si, quella di ASP.NET Si Si, tra l altro utilizzo proprio memcached No, per ora non ne ho avuto bisogno No, ma penso che proverò memcached

44 Sondaggio 3: Useresti NOSQL nella tua prossima applicazione? Si, però solo come test Si, anche in produzione No

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

Diego GUENZI Rodolfo BORASO

Diego GUENZI Rodolfo BORASO Diego GUENZI Rodolfo BORASO NOSQL Movimento che promuove una classe non ben definita di strumenti di archiviazione di dati Un nuovo modo di vedere la persistenza Si differenziano dai RDBMS: Non utilizzano

Dettagli

Linee di evoluzione dei Database

Linee di evoluzione dei Database Linee di evoluzione dei Database DB NoSQL Linked Open Data Semantic Web Esigenze e caratteristiche Presenza di grandi volumi di dati..crescenti Struttura non regolare dei dati da gestire Elementi relativamente

Dettagli

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

Domain- Driven Design Giovedì, 21 giugno 2012 Speaker: Manuel Scapolan

Domain- Driven Design Giovedì, 21 giugno 2012 Speaker: Manuel Scapolan Domain- Dri ven Design Giovedì, 21 giugno 2012 Speaker: Manuel Scapolan Domain Driven Design E un insieme di principi che ci aiutano a non fallire nel processo di sviluppo di un software * * considerando

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

"_id": "555ae00a475a9b259281b21a", "name": "Nicola Galgano", "alias": "alikon", "gender": "maschile", "work": consulente software bancario",

_id: 555ae00a475a9b259281b21a, name: Nicola Galgano, alias: alikon, gender: maschile, work: consulente software bancario, 1 } { "_id": "555ae00a475a9b259281b21a", "name": "Nicola Galgano", "alias": "alikon", "gender": "maschile", "work": consulente software bancario", "company": sto cercando ", "email": "info@alikonweb.it",

Dettagli

NoSQL http://nosql. nosql-database.org/ Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A.

NoSQL http://nosql. nosql-database.org/ Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web A. A. 2011-2012 NoSQL http://nosql nosql-database.org/ Eufemia TINELLI Cosa è NoSQL? 1998 il termine NoSQL è

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Panoramica dei più diffusi NoSQL Database

Panoramica dei più diffusi NoSQL Database Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati Panoramica dei più diffusi NoSQL Database Anno Accademico 2013/2014 Candidato: Buonocore

Dettagli

Analisi e sperimentazione del DBMS NoSQL MongoDB: il caso di studio della Social Business Intelligence

Analisi e sperimentazione del DBMS NoSQL MongoDB: il caso di studio della Social Business Intelligence ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA CAMPUS DI CESENA SCUOLA DI SCIENZE CORSO DI LAUREA IN SCIENZE E TECNOLOGIE INFORMATICHE TITOLO DELLA RELAZIONE FINALE Analisi e sperimentazione del DBMS NoSQL

Dettagli

Alla scoperta dei Graph Database

Alla scoperta dei Graph Database Alla scoperta dei Graph Database Matteo Pani 24 ottobre 2015 One size doesn t fit all Modellare le relazioni I Graph Database Il Labeled Property Graph Model I Graph-DBMS Neo4j Neo4j Internals Cypher Interagire

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

Tecnologie NoSQL: HBase

Tecnologie NoSQL: HBase Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati Tecnologie NoSQL: HBase Anno Accademico 2014/2015 Candidato: Daniela Bianco matr. N46001409

Dettagli

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito LEZIONE 3 Il pannello di amministrazione di Drupal, configurazione del sito Figura 12 pannello di controllo di Drupal il back-end Come già descritto nella lezione precedente il pannello di amministrazione

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

Big Query, nosql e Big Data

Big Query, nosql e Big Data Big Query, nosql e Big Data Ma c'è veramente bisogno di gestire tutti questi dati? Immaginiamo che.. L'attuale tecnologia Database e Web Services fosse disponibile già DA ANNI Cosa cambierebbe nella Vita

Dettagli

Solution For Electronic Data Interchange. EDIJSuite. La soluzione per l interscambio dei dati in formato elettronico

Solution For Electronic Data Interchange. EDIJSuite. La soluzione per l interscambio dei dati in formato elettronico Solution For Electronic Data Interchange EDIJSuite La soluzione per l interscambio dei dati in formato elettronico Release 1.4 del 20.12.2013 - ST COMPANY SRL EDIJSuite La soluzione per l interscambio

Dettagli

Progettazione Web Applicazioni client-server

Progettazione Web Applicazioni client-server Progettazione Web Applicazioni client-server Sviluppo di un'applicazione Web integrando: HTML MySQL PHP Apache Applicativi utilizzabili: gestione database: JDER, MySQL Workbench, HeidiSQL (Win), DBeaver

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

NOSQL Origini e Significato. NOSQL = NO a SQL. NOSQL = Not Only SQL

NOSQL Origini e Significato. NOSQL = NO a SQL. NOSQL = Not Only SQL NOSQL 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

Dettagli

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

Big ed Open Data, nosql e..

Big ed Open Data, nosql e.. Big ed Open Data, nosql e.. Quadro d insieme Tecnologie interconnesse ed interoperanti Big Data Software Open Open Data Mobile Internet delle Cose Dispositivi indossabili Social Network e Search Metodologie

Dettagli

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere; Maschere e Query Le Maschere (1/2) Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere; Le maschere sono simili a moduli cartacei: ad ogni campo corrisponde un etichetta

Dettagli

ANALISI DELLE PERFORMANCE DEI DATABASE NON RELAZIONALI IL CASO DI STUDIO DI MONGODB

ANALISI DELLE PERFORMANCE DEI DATABASE NON RELAZIONALI IL CASO DI STUDIO DI MONGODB UNIVERSITÀ DEGLI STUDI DI PADOVA DIPARTIMENTO DI INGEGNERIA DELL INFORMAZIONE TESI DI LAUREA ANALISI DELLE PERFORMANCE DEI DATABASE NON RELAZIONALI IL CASO DI STUDIO DI MONGODB RELATORE: Ch.mo Prof. Giorgio

Dettagli

SQL Server. Applicazioni principali

SQL Server. Applicazioni principali SQL Server Introduzione all uso di SQL Server e utilizzo delle opzioni OLAP Applicazioni principali SQL Server Enterprise Manager Gestione generale di SQL Server Gestione utenti Creazione e gestione dei

Dettagli

DB NoSQL Analisi prestazionale

DB NoSQL Analisi prestazionale DB NoSQL Analisi prestazionale 1 I database NoSQL... 2 1.1 Perché NoSQL? Il teorema di CAP e il No-SQL data model... 2 1.2 Un confronto tra le famiglie di DB NoSQL... 5 1.3 I database document-oriented

Dettagli

Database NoSQL: i GraphDB

Database NoSQL: i GraphDB Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati Database NoSQL: i GraphDB Anno Accademico 2013/2014 Candidato: Daniele Passaretti matr.n46/001340

Dettagli

Base Dati Introduzione

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

Dettagli

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più

Dettagli

PHPUnit Ricettario Del Programmatore Scontroso

PHPUnit Ricettario Del Programmatore Scontroso PHPUnit Ricettario Del Programmatore Scontroso Chris Hartjes and Pietro Alberto Rossi This book is for sale at http://leanpub.com/phpunitricettariodelprogrammatorescontroso This version was published on

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

DataBase NoSQL. Prof. Marco Pedroni Unversità degli Studi di Ferrara

DataBase NoSQL. Prof. Marco Pedroni Unversità degli Studi di Ferrara DataBase NoSQL Prof. Marco Pedroni Unversità degli Studi di Ferrara Definizione DB NoSQL = sistemi software di archiviazione, in cui la persistenza dei dati è caratterizzata dal fatto di non utilizzare

Dettagli

Indice generale. Gli autori...xiii. Prefazione...xv. Benvenuti nel cloud computing...1

Indice generale. Gli autori...xiii. Prefazione...xv. Benvenuti nel cloud computing...1 Indice generale Gli autori...xiii Prefazione...xv Capitolo 1 Benvenuti nel cloud computing...1 Come evitare un successo disastroso... 2 Saperne di più sul cloud computing... 3 Cosa si intende per nuvola...

Dettagli

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE Ing. Mariano Di Claudio Lezione del 20/10/2014 1 Indice 1. HBase e Hrider Caratteristiche chiave Modello dati Architettura Installazione

Dettagli

HTML5, il lato client della forza...

HTML5, il lato client della forza... HTML5, il lato client della forza... Marco Vito Moscaritolo marco@agavee.com @mavimo /usr/bin/whoami Marco Vito Moscaritolo Sviluppatore web server side con tendenze a testare tutte le nuove tecnologie

Dettagli

Database relazionali e NoSQL a confronto

Database relazionali e NoSQL a confronto Database relazionali e NoSQL a confronto Dimitri De Franciscis 10 aprile 2013 Sommario Scopo di questo lavoro è esplorare le possibilità offerte dai database appartenenti al movimento NoSQL e confrontarli,

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

DATABASE. Progettare una base di dati. Database fisico e database logico

DATABASE. Progettare una base di dati. Database fisico e database logico DATABASE Progettare una base di dati Database fisico e database logico Un DB è una collezione di tabelle, le cui proprietà sono specificate dai metadati Attraverso le operazioni sulle tabelle è possibile

Dettagli

Università degli Studi di Padova

Università degli Studi di Padova Università degli Studi di Padova Dipartimento di Ingegneria dell Informazione Corso di Laurea Triennale in Ingegneria Informatica Il movimento NoSQL Il caso di studio di CouchDB Relatore: Prof. Giorgio

Dettagli

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

Introduzione alla famiglia di soluzioni Windows Small Business Server

Introduzione alla famiglia di soluzioni Windows Small Business Server Introduzione alla famiglia di soluzioni Windows Small Business Server La nuova generazione di soluzioni per le piccole imprese Vantaggi per le piccole imprese Progettato per le piccole imprese e commercializzato

Dettagli

Introduzione ad OLAP (On-Line Analytical Processing)

Introduzione 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

Dettagli

Linguaggio SQL: costrutti avanzati

Linguaggio SQL: costrutti avanzati Linguaggio SQL: costrutti avanzati Gestione delle transazioni Introduzione Transazioni in SQL Proprietà delle transazioni 2 Pag. 1 1 Gestione delle transazioni Esempio applicativo Operazioni bancarie operazione

Dettagli

Università per Stranieri di Siena Livello A1

Università per Stranieri di Siena Livello A1 Unità 20 Come scegliere il gestore telefonico CHIAVI In questa unità imparerai: a capire testi che danno informazioni sulla scelta del gestore telefonico parole relative alla scelta del gestore telefonico

Dettagli

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o Navigare verso il cambiamento La St r a d a p i ù semplice verso il ca m b i a m e n t o Le caratteristiche tecniche del software La Tecnologia utilizzata EASY è una applicazione Open Source basata sul

Dettagli

Ministero della Pubblica Istruzione Ufficio Scolastico Regionale per la Sicilia Direzione Generale

Ministero della Pubblica Istruzione Ufficio Scolastico Regionale per la Sicilia Direzione Generale Unione Europea Regione Sicilia Ministero della Pubblica Istruzione Ufficio Scolastico Regionale per la Sicilia Direzione Generale ISTITUTO TECNICO INDUSTRIALE STATALE G. MARCONI EDILIZIA ELETTRONICA e

Dettagli

Università per Stranieri di Siena Livello A1

Università per Stranieri di Siena Livello A1 Unità 20 Come scegliere il gestore telefonico In questa unità imparerai: a capire testi che danno informazioni sulla scelta del gestore telefonico parole relative alla scelta del gestore telefonico la

Dettagli

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base... 45 Variabili, operatori e commenti... 47 Array...

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base... 45 Variabili, operatori e commenti... 47 Array... Prefazione...xiii A chi si rivolge il libro... xiv Struttura e contenuti del libro... xiv Dove trovare aiuto... xvii Le newsletter di SitePoint... xviii I vostri commenti... xviii Convenzioni adottate

Dettagli

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI DESCRIZIONE

Dettagli

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 12 JDBC + Cosa vediamo nella lezione di oggi Oggi analizzeremo insieme una specifica tecnologia Java per l accesso e la manipolazione di basi di dati relazionali

Dettagli

Creazione di una Azure Web App

Creazione di una Azure Web App Creazione di una Azure Web App Introduzione Oggi le aziende hanno sempre più la necessità di avere uno strumento per interagire con i propri clienti. La presenza sul web dell azienda diventa sempre di

Dettagli

POLITECNICO DI MILANO Facoltà di Ingegneria dell Informazione. Modellazione e valutazione delle prestazioni di database NoSQL

POLITECNICO DI MILANO Facoltà di Ingegneria dell Informazione. Modellazione e valutazione delle prestazioni di database NoSQL POLITECNICO DI MILANO Facoltà di Ingegneria dell Informazione Corso di Laurea Magistrale in Ingegneria Informatica Dipartimento di Elettronica, Informazione e Bioingegneria Modellazione e valutazione delle

Dettagli

Aspetti applicativi e tecnologia

Aspetti applicativi e tecnologia Aspetti applicativi e tecnologia Premessa Architetture usate per i database Le prime applicazioni erano definite monolitiche, cioè un unico computer (mainframe) gestiva sia le applicazioni che i dati,

Dettagli

Caratteristiche principali. Contesti di utilizzo

Caratteristiche principali. Contesti di utilizzo Dalle basi di dati distribuite alle BASI DI DATI FEDERATE Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza Anno Accademico 2006/2007 http://www.dis.uniroma1.it/

Dettagli

CASE STUDY N#1. Deploy e automazione di un applicazione scalabile con il supporto di SaltStack per Corley

CASE STUDY N#1. Deploy e automazione di un applicazione scalabile con il supporto di SaltStack per Corley CASE STUDY N#1 Deploy e automazione di un applicazione scalabile con il supporto di SaltStack per Corley Enter srl - ISO 9001/27001 Quality System Certification - All rights reserved - www.entercloudsuite.it

Dettagli

Come installare WAMPP

Come installare WAMPP 1a Lezione sul Php 8 nov. 2011 dalle 8,00 alle 10,00 prof. Paolo Latella Come installare WAMPP di Paolo Latella 10 nov 2011 Scarichiamo XAMPP e clicchiamoci due volte sopra per avviare l installazione

Dettagli

Database MySQL: 10 trucchi per migliorarne le performance

Database MySQL: 10 trucchi per migliorarne le performance Database MySQL: 10 trucchi per migliorarne le performance Scopriamo i segreti che molti amministratori professionisti di database usano per migliorare le performance Contenuti a cura di HostingTalk #e-commerce

Dettagli

Manuale utente Volta Control

Manuale utente Volta Control Manuale utente Volta Control www.satellitevolta.com 1 www.satellitevolta.com 2 Volta Control è un tool che permette la progettazione, l implementazione e la gestione di database Cassandra tramite interfaccia

Dettagli

Soluzione Immobiliare

Soluzione Immobiliare SOLUZIONE IMMOBILIARE SOLUZIONE IMMOBILIARE è un software studiato appositamente per la gestione di una Agenzia. Creato in collaborazione con operatori del settore, Soluzione si pone sul mercato con l

Dettagli

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015 Classe: 5^A inf Prof.ssa C. Lami Prof. S. Calugi Materia: INFORMATICA GENERALE, APPLICAZIONI TECNICO SCIENTIFICHE

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

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Basi di Dati Graph Database MARCO DE MASI matr. N46000365

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica  Basi di Dati Graph Database MARCO DE MASI matr. N46000365 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato finale in Basi di Dati Graph Database Anno Accademico 2012/2013 Candidato: MARCO DE MASI matr. N46000365 Indice Introduzione 4

Dettagli

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Roccatello Ing. Eduard L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Agenda Presentazione docente Definizione calendario Questionario pre corso

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Conoscere il concetto di espressione 2 1 Introduzione

Dettagli

Lab. Programmazione Sistemi Mobili e Tablets

Lab. Programmazione Sistemi Mobili e Tablets Lab. Programmazione Sistemi Mobili e Tablets Anno Accademico : 2011-2012 Matricola Studente: De Guidi Enrico 156464 Titolo del Progetto: Let s go Data:04/09/12 Introduction: Let s go è un applicazione

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

Biglietti e Ritardi: schema E/R

Biglietti e Ritardi: schema E/R Biglietti e Ritardi: schema E/R Ritardi: Progettazione dello schema di Fatto! Definire uno schema di fatto per analizzare i ritardi; in particolare l analisi deve considerare l aeroporto di partenza, mentre

Dettagli

JCLOUD... PORTA IL TUO BUSINESS SULLA NUVOLA

JCLOUD... PORTA IL TUO BUSINESS SULLA NUVOLA JCloud Web Desktop JCLOUD... PORTA IL TUO BUSINESS SULLA NUVOLA OVUNQUE TI TROVI JCloud è il desktop che ti segue ovunque, è sufficiente una connessione ad internet ed un browser HTML5 per accedere ai

Dettagli

Il BACKUP è disponibile in http://www.dbgroup.unimo.it/sia/esercizio_21_novembre_2013/esercizio_21_novembre_2013.bak

Il BACKUP è disponibile in http://www.dbgroup.unimo.it/sia/esercizio_21_novembre_2013/esercizio_21_novembre_2013.bak ESEMPIO DELLE VENDITE: MISURE ED AGGREGABILITA E l esempio discusso nelle dispense è Dispense : http://www.dbgroup.unimo.it/sia/sia_2014_progettazionediundw_misure.pdf esteso e dettagliato. Il BACKUP è

Dettagli

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Utilizzando 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

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

ADO.Net. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

ADO.Net. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni ADO.Net Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Applicazioni Three Tier In ingegneria del software, l'espressione architettura three-tier ("a tre strati") indica

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

Dettagli

NoSQL Databases. Massimo Carro

NoSQL Databases. Massimo Carro NoSQL Databases Massimo Carro Politecnico di Milano Piazza Leonardo da Vinci 32 20133 Milano massimo.carro@mail.polimi.it 1. Introduzione L arrivo di internet negli anni 90 ha permesso a molte aziende

Dettagli

ListinoWX. Versione 2010 Estratto Dal Manuale. Depliant illustrativo. ListinoWX ScriptLab vers.2010 Depliant illustrativo

ListinoWX. Versione 2010 Estratto Dal Manuale. Depliant illustrativo. ListinoWX ScriptLab vers.2010 Depliant illustrativo ListinoWX Depliant illustrativo Versione 2010 Estratto Dal Manuale 1 ListinoWX Framework gestionale ERP nato dalla collaborazione con aziende del settore agroalimentare, adattabile a tutte quelle imprese

Dettagli

Naming nei Sistemi Distribuiti

Naming nei Sistemi Distribuiti Naming nei Sistemi Distribuiti Naming (1) La risoluzione dei nomi permette ad un processo di accedere ad una entità in un sistema distribuito. Un sistema di naming è necessario per avere un modello comune

Dettagli

Naming nei Sistemi Distribuiti

Naming nei Sistemi Distribuiti Naming nei Sistemi Distribuiti Naming (1) La risoluzione dei nomi permette ad un processo di accedere ad una entità in un sistema distribuito. Un sistema di naming è necessario per avere un modello comune

Dettagli

Introduzione ai database

Introduzione ai database Fluency Introduzione ai database Capitolo 13 Database vs. tabella Significato dei dati Tabella canada 32805041 1.61 5

Dettagli

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Costruzione di Sit Web con PHP e MySQL Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Esercitazione In questa lezione si farà insieme una seconda esercitazione che

Dettagli

PHP e Structured Query Language

PHP e Structured Query Language Esercitazioni del corso di Tecnologie per la Comunicazione Aziendale PHP e Structured Query Language Marco Loregian loregian@disco.unimib.it www.siti.disco.unimib.it/didattica/tca2008 Interrogazioni (ripasso)

Dettagli

Basi di Dati Distribuite

Basi di Dati Distribuite Basi di Dati Distribuite P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone (McGraw-Hill Italia) Basi di dati: architetture linee di evoluzione - seconda edizione Capitolo 3 Appunti dalle lezioni SQL come DDL

Dettagli

Corso Programmazione Java Android. Programma

Corso Programmazione Java Android. Programma Corso Programmazione Java Android Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

Dettagli

Studio delle principali Tecnologie No-SQL

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

Dettagli

Web Programming Specifiche dei progetti

Web Programming Specifiche dei progetti Web Programming Specifiche dei progetti Paolo Milazzo Anno Accademico 2010/2011 Argomenti trattati nel corso Nel corso di Web Programming sono state descritti i seguenti linguaggi (e tecnologie): HTML

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

SIASFi: il sistema ed il suo sviluppo

SIASFi: il sistema ed il suo sviluppo SIASFI: IL SISTEMA ED IL SUO SVILUPPO 187 SIASFi: il sistema ed il suo sviluppo Antonio Ronca Il progetto SIASFi nasce dall esperienza maturata da parte dell Archivio di Stato di Firenze nella gestione

Dettagli

Indice. Introduzione. PARTE PRIMA PHP: i fondamenti 1

Indice. Introduzione. PARTE PRIMA PHP: i fondamenti 1 Indice Introduzione XV PARTE PRIMA PHP: i fondamenti 1 Capitolo 1 Perché PHP e MySQL? 3 1.1 Cos è PHP? 3 1.2 Cos è MySQL? 4 1.3 La storia di PHP 5 1.4 La storia di MySQL 6 1.5 Le ragioni per amare PHP

Dettagli

La base di dati (database)

La base di dati (database) La base di dati (database) La costruzione, analisi e interrogazione delle basi di dati Il Database e la sua organizzazione Un DATABASE è una raccolta strutturata di dati Database relazionali Organizzazione

Dettagli

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

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

Dettagli

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Data Base. Master Bio Info Reti e Basi di Dati Lezione 6 Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica

Dettagli

Componenti Web: client-side e server-side

Componenti Web: client-side e server-side Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente

Dettagli

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 2.1 Comandi sui database 1 Prerequisiti Introduzione ai DB Linguaggi per database Tipi fondamentali di dati 2 1 Introduzione In questa Unità introduciamo il linguaggio

Dettagli

Corso di Griglie e Sistemi di Elaborazione Ubiqui. Esercitazione su Globus Toolkit 2: LDAP, MDS

Corso di Griglie e Sistemi di Elaborazione Ubiqui. Esercitazione su Globus Toolkit 2: LDAP, MDS Università degli Studi della Calabria Corso di Laurea Specialistica in Ingegneria Informatica A.A. 2003/2004 Corso di Griglie e Sistemi di Elaborazione Ubiqui Esercitazione su Globus Toolkit 2: LDAP, MDS

Dettagli

Configuration of a distributed system as emerging behavior of autonomous agents

Configuration of a distributed system as emerging behavior of autonomous agents Configuration of a distributed system as emerging behavior of autonomous agents Configuration of a distributed system as emerging behavior of autonomous agents : Questo documento illustra la strategia

Dettagli

Windows Azure. introduzione. 16 Maggio 2013. Gianni Rosa Gallina giannishub@hotmail.com. Fabrizio Accatino fhtino@gmail.com

Windows Azure. introduzione. 16 Maggio 2013. Gianni Rosa Gallina giannishub@hotmail.com. Fabrizio Accatino fhtino@gmail.com 16 Maggio 2013 Windows Azure introduzione Gianni Rosa Gallina giannishub@hotmail.com Twitter: @giannirg Blog: http://giannishub.cloudapp.net/it/ Fabrizio Accatino fhtino@gmail.com Twitter: @fhtino Sito

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

Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale. Anno Accademico 2013/2014

Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale. Anno Accademico 2013/2014 Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale Anno Accademico 2013/2014 Creazione App FB 1. App Dashboard https://developers.facebook.com/apps e cliccare su «+Crea Applicazione»

Dettagli

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

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

Dettagli