SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Database NO-SQL: Anything else ?




               Giorgio Desideri
         giorgio.desideri@gmail.com




                             <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?

Stato dell'arte:
  Modello E-R (Entità – Relazione);
  Linguaggio SQL, linguaggio formale e dichiarativo
  Prestazioni legate esclusivamente al “EngineSQL”, colui che interpreta la
  query sql (spesso legate al prodotto utilizzato)
  Scalabilità / Robustezza / Prestazioni derivanti dalla realizzazione utilizzata
  (modello, strumenti e dati)

                                   Pag. 2 / 24     <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?

Modello E-R (Entità – Relazione):
  3 oggetti coinvolti


 Persone                                                        Ruoli
    0,n                                                                1,n




                                svolge

                                Pag. 3 / 24   <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?

Linguaggio SQL:
   linguaggio formale
        Derivato da una grammatica definita
        Definizione degli operatori

  linguaggio dichiarativo
      Definisce “cosa” voglio
      Realizzazione spetta all'interprete dei comandi che mi restituirà quello che io ho
      dichiarato nella mia query

                                    Pag. 4 / 24       <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?

Caratteristiche
  Generalità: è un modello formale e generale che permette la costruzioni di “qualsiasi”
  modello reale
  Robustezza: definizione di cosa voglio deve essere completa alla mia idea, altrimenti
  ottengo qualche altra cosa
  Scalabilità: espansione sia in prestazioni che in funzionalità legate all'architettura
  utilizzata dal EngineSQL utilizzato



                                     Pag. 5 / 24       <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?




        Anything else ?


             Pag. 6 / 24   <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?

< Key , Value >
  2 oggetti
  Definizione di una struttura generale


     “Datemi un punto d'appoggio 
              e vi solleverò il mondo” 
                         (Archimede Siracusano)

                                    Pag. 7 / 24   <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?
E-R:
       $entità1 <---> $relazione <----> $entità2


                       <K, V>:
                                     < $entità1, {($relazione1, entità2),
                                                        ($relazione2, entità2), … } >

                                     Key: $entità1
                                     Value: list( $relazioneN, entitàN )

                                   Pag. 8 / 24       <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?

Importanza della progettazione
  Modello dei dati
               COSA è “KEY” ?
               COSA è “VALUE” ?

  Ricerca del modello “ottimale”
               Analisi nell'interezza del modello reale dei dati
               Decomposizione/Composizione, interconnessione degli oggetti

  Paradigma NON CONTEXT-FREE, anzi CONTEXT-DRIVEN

                                  Pag. 9 / 24      <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?
Perché SI ai NO-SQL DB ?                     Perché NO ai No-Sql DB ?
 Gestione grandi moli di dati (Gb, Tb, Eb)        Modello non generale, la cui efficienza
 Scalabilità (architettura e data-model)          è strettamente legata al modello di
                                                  rappresentazione dei dati
 Prestazioni
                                                  Progettazione feature a carico
                                                  dell'utente
                                                  Software-Legacy


                                   Pag. 10 / 24      <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?




        Anything else ?


             Pag. 11 / 24   <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?


  Apache Cassandra



                                Google BigTable
      Apache HBase



              Pag. 12 / 24   <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?
                Database basato su Apache Hadoop


Modello funzionale <Map, Reduce> basato interamente sul paradigma <Key, Value>
Based on:
       Table
       Row
       ColumnFamily
Architettura generale e scalabile basata su schemi funzionali di Hadoop, e distribuita su
HDFS

                                      Pag. 13 / 24      <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?
          Sistema di storage indipendente, per grandi moli di dati, <Key, Value>
          structured
          Modello di rappresentazione dei dati astratto, basato su ROW / (Super)
          COLUMN FAMILY e UID.
KEY                                  VALUE


        COLUMN FAMILY                   SUPER COLUMN FAMILY
UID   COLUMN 1 COLUMN 2           COLUMN FAMILY 1 COLUMN FAMILY 2
                                COLUMN 1 COLUMN 2     COLUMN 1
                            Pag. 14 / 24      <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?
COLUMN : entità di base, costituita da “Nome:Valore”. I vari data types dei valori possibili
sono riassunti nelle seguenti tipologie:
 BytesType, AsciiType, UTF8Type, LongType, LexicalUUIDType e TimeUUIDType

Colum FAMILY: entità che raggruppa una o più Column (VALUE), subordinandole a un
valore chiave (KEY)

SUPER Column FAMILY: estensione maggiore della Column Family. Questa entità
subordina una o più column family ad un valore chiave (KEY)
UID: chiave assoluta della ROW composta dalle entità citate

                                         Pag. 15 / 24       <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?

ColumnFamily: “Users”
KEY (UTF8Type)          VALUE
 “Ciccio Pasticcio”      Columns
                         Name         Value
                         “email”      ciccio.pasticcio@email.com
                         “nazione”    “Italia”



                                 Pag. 16 / 24   <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?
<Keyspace Name="Database">
  <ColumnFamily CompareWith="UTF8Type" Name="Users"/>
  ...
</Keyspace>



               Definizione della chiave della ColumnFamily chiamata “Users”
               Nessuna definizione del campo Value, ovvero delle possibili Column che sono
               presenti nella ColumnFamily
               Riconducibile ad un esempio di matrice “frastagliata”
                                 Pag. 17 / 24     <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?
SuperColumnFamily: “Posts”
KEY (UTF8Type)         VALUE
    “Argomento          SuperColumns
     del giorno”        Key           Value
                         “Iniziative” Columns
                                           Name Value
                                           “titolo” “Codemotion”
                             “Spese”                             “...”
                                       Pag. 18 / 24   <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?
  <ColumnFamily ColumnType="Super" 
        CompareWith="UTF8Type" 
        CompareSubcolumnsWith="UTF8Type" 
        Name="Argomento del giorno"/>


     <ColumnFamily CompareWith="UTF8Type" 
                 Name="Iniziative"/>


     <ColumnFamily CompareWith="UTF8Type" 
                 Name="Spese"/>
                         Pag. 19 / 24   <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?

Generalità
    Modello E-R e SQL riconducibile in questo modello
Robustezza
    Controllo del risultato cercato sulle “matrici frastagliate”
    Replica dei dati
Prestazioni
    La row non può superare i 2GB di dimensione
    Clustering


                                    Pag. 20 / 24        <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?




        Anything else ?


             Pag. 21 / 24   <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?

NO-NAME web.application
    Blog/Social networking
    Modello:
        Utente
        Messaggio (Post)
        Notifica del messaggio
        Risposta al messaggio (Replay-Post)



                              Pag. 22 /       <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?




             Pag. 23 /    <nome relatore> - <e-mail> – <azienda o community>
Database NO-SQL: Anything else ?




        That's All Folks !!!!


             Pag. 24 /    <nome relatore> - <e-mail> – <azienda o community>

Contenu connexe

En vedette

La questione del tempo nei dati - Database Temporali
La questione del tempo nei dati - Database TemporaliLa questione del tempo nei dati - Database Temporali
La questione del tempo nei dati - Database TemporaliAndrea Gottardi
 
NOSQL: il rinascimento dei database?
NOSQL: il rinascimento dei database?NOSQL: il rinascimento dei database?
NOSQL: il rinascimento dei database?Paolo Bernardi
 
Database project alla riscossa
Database project alla riscossaDatabase project alla riscossa
Database project alla riscossaGian Maria Ricci
 
Cassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache CassandraCassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache CassandraJeremy Hanna
 
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013Myti S.r.l.
 
NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali
NoSQL Data Stores: Introduzione alle Basi di Dati Non RelazionaliNoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali
NoSQL Data Stores: Introduzione alle Basi di Dati Non RelazionaliSteve Maraspin
 
Introduzione al SQL e ai database
Introduzione al SQL e ai databaseIntroduzione al SQL e ai database
Introduzione al SQL e ai databaseMaurizio Napolitano
 
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...Aruba S.p.A.
 

En vedette (12)

La questione del tempo nei dati - Database Temporali
La questione del tempo nei dati - Database TemporaliLa questione del tempo nei dati - Database Temporali
La questione del tempo nei dati - Database Temporali
 
NOSQL: il rinascimento dei database?
NOSQL: il rinascimento dei database?NOSQL: il rinascimento dei database?
NOSQL: il rinascimento dei database?
 
Database project alla riscossa
Database project alla riscossaDatabase project alla riscossa
Database project alla riscossa
 
Corso Oracle
Corso OracleCorso Oracle
Corso Oracle
 
Cassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache CassandraCassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache Cassandra
 
NOSQL
NOSQLNOSQL
NOSQL
 
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
 
Survey on NoSQL Database
Survey on NoSQL DatabaseSurvey on NoSQL Database
Survey on NoSQL Database
 
NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali
NoSQL Data Stores: Introduzione alle Basi di Dati Non RelazionaliNoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali
NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali
 
Introduzione al SQL e ai database
Introduzione al SQL e ai databaseIntroduzione al SQL e ai database
Introduzione al SQL e ai database
 
Database introduzione
Database introduzioneDatabase introduzione
Database introduzione
 
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...
 

Similaire à Database NO-SQL: Anything else ?

Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Gian Maria Ricci
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRSManuel Scapolan
 
Sviluppo web con Ruby on Rails
Sviluppo web con Ruby on RailsSviluppo web con Ruby on Rails
Sviluppo web con Ruby on Railsjekil
 
CrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with CrowdsourcingCrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with CrowdsourcingViviana Murello
 
Py a6 python-database
Py a6 python-databasePy a6 python-database
Py a6 python-databaseMajong DevJfu
 
How I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven DesignHow I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven DesignAndrea Saltarello
 
MongoDB
MongoDBMongoDB
MongoDBNaLUG
 
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...Tsuneo Kurihara
 
SQLite in Xamarin.Forms
SQLite in Xamarin.FormsSQLite in Xamarin.Forms
SQLite in Xamarin.FormsGuido Magrin
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009Massimiliano Dessì
 
I Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiI Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiThinkOpen
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
 
2016 02-24 - Piattaforme per i Big Data
2016 02-24 - Piattaforme per i Big Data2016 02-24 - Piattaforme per i Big Data
2016 02-24 - Piattaforme per i Big DataAlberto Paro
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERDotNetCampus
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
 
Power bi Clean and Modelling (SQL Saturday #675)
Power bi Clean and Modelling  (SQL Saturday #675)Power bi Clean and Modelling  (SQL Saturday #675)
Power bi Clean and Modelling (SQL Saturday #675)Marco Pozzan
 

Similaire à Database NO-SQL: Anything else ? (20)

SQL Server2000
SQL Server2000SQL Server2000
SQL Server2000
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRS
 
Sviluppo web con Ruby on Rails
Sviluppo web con Ruby on RailsSviluppo web con Ruby on Rails
Sviluppo web con Ruby on Rails
 
CrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with CrowdsourcingCrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with Crowdsourcing
 
Py a6 python-database
Py a6 python-databasePy a6 python-database
Py a6 python-database
 
Excel development e sql 2.1
Excel development e sql   2.1Excel development e sql   2.1
Excel development e sql 2.1
 
How I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven DesignHow I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven Design
 
MongoDB
MongoDBMongoDB
MongoDB
 
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
 
Scala e i database
Scala e i databaseScala e i database
Scala e i database
 
SQLite in Xamarin.Forms
SQLite in Xamarin.FormsSQLite in Xamarin.Forms
SQLite in Xamarin.Forms
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009
 
I Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiI Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utenti
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
 
2016 02-24 - Piattaforme per i Big Data
2016 02-24 - Piattaforme per i Big Data2016 02-24 - Piattaforme per i Big Data
2016 02-24 - Piattaforme per i Big Data
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVER
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql Server
 
Corso access 2010
Corso access 2010Corso access 2010
Corso access 2010
 
Power bi Clean and Modelling (SQL Saturday #675)
Power bi Clean and Modelling  (SQL Saturday #675)Power bi Clean and Modelling  (SQL Saturday #675)
Power bi Clean and Modelling (SQL Saturday #675)
 

Plus de Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

Plus de Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Database NO-SQL: Anything else ?

  • 1. Database NO-SQL: Anything else ? Giorgio Desideri giorgio.desideri@gmail.com <nome relatore> - <e-mail> – <azienda o community>
  • 2. Database NO-SQL: Anything else ? Stato dell'arte: Modello E-R (Entità – Relazione); Linguaggio SQL, linguaggio formale e dichiarativo Prestazioni legate esclusivamente al “EngineSQL”, colui che interpreta la query sql (spesso legate al prodotto utilizzato) Scalabilità / Robustezza / Prestazioni derivanti dalla realizzazione utilizzata (modello, strumenti e dati) Pag. 2 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 3. Database NO-SQL: Anything else ? Modello E-R (Entità – Relazione): 3 oggetti coinvolti Persone Ruoli 0,n 1,n svolge Pag. 3 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 4. Database NO-SQL: Anything else ? Linguaggio SQL: linguaggio formale Derivato da una grammatica definita Definizione degli operatori linguaggio dichiarativo Definisce “cosa” voglio Realizzazione spetta all'interprete dei comandi che mi restituirà quello che io ho dichiarato nella mia query Pag. 4 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 5. Database NO-SQL: Anything else ? Caratteristiche Generalità: è un modello formale e generale che permette la costruzioni di “qualsiasi” modello reale Robustezza: definizione di cosa voglio deve essere completa alla mia idea, altrimenti ottengo qualche altra cosa Scalabilità: espansione sia in prestazioni che in funzionalità legate all'architettura utilizzata dal EngineSQL utilizzato Pag. 5 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 6. Database NO-SQL: Anything else ? Anything else ? Pag. 6 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 7. Database NO-SQL: Anything else ? < Key , Value > 2 oggetti Definizione di una struttura generale “Datemi un punto d'appoggio  e vi solleverò il mondo”  (Archimede Siracusano) Pag. 7 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 8. Database NO-SQL: Anything else ? E-R: $entità1 <---> $relazione <----> $entità2 <K, V>: < $entità1, {($relazione1, entità2), ($relazione2, entità2), … } > Key: $entità1 Value: list( $relazioneN, entitàN ) Pag. 8 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 9. Database NO-SQL: Anything else ? Importanza della progettazione Modello dei dati COSA è “KEY” ? COSA è “VALUE” ? Ricerca del modello “ottimale” Analisi nell'interezza del modello reale dei dati Decomposizione/Composizione, interconnessione degli oggetti Paradigma NON CONTEXT-FREE, anzi CONTEXT-DRIVEN Pag. 9 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 10. Database NO-SQL: Anything else ? Perché SI ai NO-SQL DB ? Perché NO ai No-Sql DB ? Gestione grandi moli di dati (Gb, Tb, Eb) Modello non generale, la cui efficienza Scalabilità (architettura e data-model) è strettamente legata al modello di rappresentazione dei dati Prestazioni Progettazione feature a carico dell'utente Software-Legacy Pag. 10 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 11. Database NO-SQL: Anything else ? Anything else ? Pag. 11 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 12. Database NO-SQL: Anything else ? Apache Cassandra Google BigTable Apache HBase Pag. 12 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 13. Database NO-SQL: Anything else ? Database basato su Apache Hadoop Modello funzionale <Map, Reduce> basato interamente sul paradigma <Key, Value> Based on: Table Row ColumnFamily Architettura generale e scalabile basata su schemi funzionali di Hadoop, e distribuita su HDFS Pag. 13 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 14. Database NO-SQL: Anything else ? Sistema di storage indipendente, per grandi moli di dati, <Key, Value> structured Modello di rappresentazione dei dati astratto, basato su ROW / (Super) COLUMN FAMILY e UID. KEY VALUE COLUMN FAMILY SUPER COLUMN FAMILY UID COLUMN 1 COLUMN 2 COLUMN FAMILY 1 COLUMN FAMILY 2 COLUMN 1 COLUMN 2 COLUMN 1 Pag. 14 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 15. Database NO-SQL: Anything else ? COLUMN : entità di base, costituita da “Nome:Valore”. I vari data types dei valori possibili sono riassunti nelle seguenti tipologie: BytesType, AsciiType, UTF8Type, LongType, LexicalUUIDType e TimeUUIDType Colum FAMILY: entità che raggruppa una o più Column (VALUE), subordinandole a un valore chiave (KEY) SUPER Column FAMILY: estensione maggiore della Column Family. Questa entità subordina una o più column family ad un valore chiave (KEY) UID: chiave assoluta della ROW composta dalle entità citate Pag. 15 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 16. Database NO-SQL: Anything else ? ColumnFamily: “Users” KEY (UTF8Type) VALUE “Ciccio Pasticcio” Columns Name Value “email” ciccio.pasticcio@email.com “nazione” “Italia” Pag. 16 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 17. Database NO-SQL: Anything else ? <Keyspace Name="Database"> <ColumnFamily CompareWith="UTF8Type" Name="Users"/> ... </Keyspace> Definizione della chiave della ColumnFamily chiamata “Users” Nessuna definizione del campo Value, ovvero delle possibili Column che sono presenti nella ColumnFamily Riconducibile ad un esempio di matrice “frastagliata” Pag. 17 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 18. Database NO-SQL: Anything else ? SuperColumnFamily: “Posts” KEY (UTF8Type) VALUE “Argomento SuperColumns del giorno” Key Value “Iniziative” Columns Name Value “titolo” “Codemotion” “Spese” “...” Pag. 18 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 19. Database NO-SQL: Anything else ? <ColumnFamily ColumnType="Super"  CompareWith="UTF8Type"  CompareSubcolumnsWith="UTF8Type"  Name="Argomento del giorno"/>      <ColumnFamily CompareWith="UTF8Type"  Name="Iniziative"/>      <ColumnFamily CompareWith="UTF8Type"  Name="Spese"/> Pag. 19 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 20. Database NO-SQL: Anything else ? Generalità Modello E-R e SQL riconducibile in questo modello Robustezza Controllo del risultato cercato sulle “matrici frastagliate” Replica dei dati Prestazioni La row non può superare i 2GB di dimensione Clustering Pag. 20 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 21. Database NO-SQL: Anything else ? Anything else ? Pag. 21 / 24 <nome relatore> - <e-mail> – <azienda o community>
  • 22. Database NO-SQL: Anything else ? NO-NAME web.application Blog/Social networking Modello: Utente Messaggio (Post) Notifica del messaggio Risposta al messaggio (Replay-Post) Pag. 22 /  <nome relatore> - <e-mail> – <azienda o community>
  • 23. Database NO-SQL: Anything else ? Pag. 23 /  <nome relatore> - <e-mail> – <azienda o community>
  • 24. Database NO-SQL: Anything else ? That's All Folks !!!! Pag. 24 /  <nome relatore> - <e-mail> – <azienda o community>