SlideShare une entreprise Scribd logo
1  sur  73
Télécharger pour lire hors ligne
BASES DE

DONNÉES
RELATIONNELLES & NOSQL
CédricVilla - @zestprod - 18/09/2015 DevelopR6 - CNRS
HISTOIRE
DIFFERENCES
STRUCTURELLES
BASES DE DONNÉES
RELATIONNELLES
SCHÉMA
RELATIONNEL
Fortement normalisé
SCHÉMA
RELATIONNEL
Extraction précise
Métaphore
bibliothécaire pointilleux
SCHÉMA
RELATIONNEL
« Documented by design »
SQL
ACID
Atomicité
Cohérence
Isolation
Durabilité
NOSQL
NOT ONLY SQL
Structure imbriquée
DOCUMENT
BASED
DATABASE
DOCUMENT
BASED
DATABASE
Structure imbriquée
Web 2.0 JSON (REST)
Ergonomie
DOCUMENT
BASED
DATABASE
Structure imbriquée
Structure imbriquée
Pas de relations
dans le SGBD
Pas ACID
DOCUMENT
BASED
DATABASE
Système de cache
Construire et retourner

un format adapté

(ex. elastic search)
Plus difficile à débogguer
DOCUMENT
BASED
DATABASE
SCHEMA
LESSDATABASES
BDD sans schéma
SCHEMALESS +
• Agilité (liberté lors du développement)
• Productivité
SCHEMALESS -
• Extraction de l’information
• Métaphore du tiroir de bureau
• Difficulté de migration
MODÈLES CLÉS /VALEURS
Redis, (virtuellement n’importe quel NoSQL), etc.



SET foo bar

GET foo => bar
HYBRIDES
Ex: Postgres et le type « hstore »
BDD CÔTÉ CLIENT
HTML5 - Web SQL Database + Web Storage
DÉVELOPPEMENT
ET AGILITÉ
DEVELOPPER AVEC UNE BDD
• Abondance de doc, frameworks, etc.
• Tous les langages
OBJECT
RELATIONAL
MAPPING
Mapping objet relationnel
MAPPING OBJET
MAPPING OBJET
• On manipule des objets
• Object.create(attribute: « value », etc.)
• Objet.find(name: « john »)
• Les requêtes sont générées

dans le language du SGDB
MAPPING OBJET
• + Documentation: Dans le modèle
• + On peut ignorer le SGDB derrière

(différences entre développement et production)
MAPPING OBJET
• NoSQL

Idem que pour BDD relationnelles
• Avantages
• ++ Documentation: dans le modèle
• + Encore moins de gestion de la BDD
MAPPING OBJET
• Semble simple
• Ce n’est pas « fool-proof »
• boucle for + modification en base
PERFORMANCES
PERFORMANCES
• Dépendent:
• De la RAM
• Des entrées/sorties du stockage (I/O)
• Du CPU
AVANT D’ENVISAGER
UN PLUS GROS SERVEUR
• Mise en cache
• D’une page complète (ou 304)
• D’un fragment HTML
• Du résultat d’une requête
BASES DE
DONNÉES
RAPIDES
Redis
Memcached
BDD RAPIDES
• En RAM
• Pas d’écriture disque

(systématique)
• Cluster
BDD RAPIDES
• Mise en cache
• Données extraites
• Fragments HTML
• Sessions
• Files d’attentes
BDD RAPIDES
• Pas de persistence / ACID



sinon:

pas mieux que BDD
relationnelle
SCALING
(MISE À L’ÉCHELLE)
VERTICAL SCALING
VERTICAL SCALING
4 Go RAM
2 CPU
1 HDD 5400 RPM
VERTICAL SCALING
16 Go RAM
8 CPU
1 SSD (x100)
SI GOOGLE FAISAIT ÇA
• Connait 30 trillions de documents
• Crawle 20 milliards de pages / jour
RETOUR À LA RÉALITÉ
• 2 millions d’ordinateurs répartis
• dans +60 data centers
• sur le globe
HORIZONTAL SCALING
PETVS CATTLE
HORIZONTAL SCALING
HORIZONTAL SCALING
HORIZONTAL SCALING
HORIZONTAL SCALING
MISE À L’ÉCHELLE
Méthode (ex.) Technologie Mise en oeuvre
Code
Déploiement /
Provisionning
Puppet, Docker,
etc.
Trivial
Stockage
File System en
réseau
AWS-S3, NFS,
etc.
Trivial
BDD ? ? ?
load balancer
SQL: MASTER / MASTER
load balancer
Résultat
✓ Cohérence (ACID)
✓ Disponibilité
• Limitation par I/O
load balancer
Méthode adaptée pour
• Garantir la disponibilité d’une base
Pas adaptée pour
• Scaling horizontal
THÉORÈME CAP
• Dans un système distribué,

impossible de garantir en même temps:
• Cohérence

(tous les clients partagent la même vue des données)
• Disponibilité

(lecture / écriture pour tous les clients)
• Tolérance au partionnement

(le système fonctionne malgré la séparation physique des données)
load balancer
MongoDB, partitionnement
load balancer
Théorème de CAP
✓ Cohérence
• Disponibilité
✓ Tolérance au partionnement
CAP - COMPROMIS

(QUELQUES EXEMPLES)
Availability
(disponibilité)
Consistency

(cohérence)
Partition
Tolerance
Data Models
MySQL /
Postgres
oui oui - Relationnel
MongoDB - oui oui Document
Redis - oui oui Key-Value
Cassandra oui - oui
Orienté
Colonne
CouchDB oui - oui Document
* utilisation du SGBD par défaut
BASE
Basically Available
Soft state
Eventual consistency
•Les données
•sont temporaires

et pas à jour
•doivent être
« réconciliée »
•vont finir par être
cohérentes
•Elastic Search
•Cassandra
(Facebook)
•Dynamo

(Amazon)
•Oracle NoSQL
Database
•Riak
QUELLE BDD
UTILISER POUR
MON APPLICATION ?
PROBLEMES
• Abondance de solutions
• Contradictions
• Buzz / Hype et évolutions
THE RIGHT
TOOL

FORTHE RIGHT
JOB
Le bon outil 

pour le bon usage.
CHOIX D’UNE BASE DE
DONNÉE
• Attention au « One size fits all »
• 1 marteau = tous les problèmes sont des clous
• Pas optimal
• Arrachage de cheveux
DIVISER LE PROBLÈME EN
SOUS PROBLÈMES
• Plusieurs technologies de BDD
• ex: Redis + Postgres + MongoDB
• Microservices / machines virtuelles
• Chaque techno est adaptée à un sous-problème
CONNAITRE PLUSIEURS
TECHNOLOGIES
• Forces, faiblesses
• Les essayer, se familiariser
• Identifier un problème

qui nécessite une BDD en particulier
SE POSER LES BONNES
QUESTIONS
• Ex pour Google
• Est-ce que c’est ok d’afficher une donnée pas à jour ?
• Est-ce que je dois réduire:
• Le temps de crawling ?
• Ou le temps de traitement des requêtes ?
EX: CRAIGSLIST

(PETITES ANNONCES)
• MySQL
• Memcached
• Redis
• MongoDB
• Sphinx
• Filesystem
EX: CRAIGSLIST

(PETITES ANNONCES)
• SQL (MySQL)
• Vertical (SSD) + RAM
• Horizontal
• Cache

(consultation 99%)
EX: CRAIGSLIST

(PETITES ANNONCES)
• NoSQL (MongoDB)
• Utilisé pour les archives
• Schemaless
• Scaling
• http://instagram-engineering.tumblr.com/post/40781627982/handling-
growth-with-postgres-5-tips-from

Scaling Postgres (Instagram)
• https://muut.com/blog/technology/redis-as-primary-datastore-wtf.html

Un mec qui a détourné Redis pour son forum
• http://www.sarahmei.com/blog/2013/11/11/why-you-should-never-
use-mongodb/

Titre « troll » mais très instructif (Diaspora, problèmes de MongoDB
dans la vraie vie)
• https://www.percona.com/live/mysql-conference-2012/sessions/living-
sql-and-nosql-craigslist-pragmatic-approach

Craigslist - Cohabitation de SQL et de NoSQL

Contenu connexe

Tendances

Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQL
ebiznext
 
Java et les bases de données
Java et les bases de donnéesJava et les bases de données
Java et les bases de données
Guillaume Harry
 

Tendances (20)

Mongo DB
Mongo DBMongo DB
Mongo DB
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
ToursJUG mongoDB
ToursJUG mongoDBToursJUG mongoDB
ToursJUG mongoDB
 
Base de données NoSQL
Base de données NoSQLBase de données NoSQL
Base de données NoSQL
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQL
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -
 
Quand utiliser MongoDB … Et quand vous en passer…
Quand utiliser MongoDB	… Et quand vous en passer…Quand utiliser MongoDB	… Et quand vous en passer…
Quand utiliser MongoDB … Et quand vous en passer…
 
Présentation des bases de données NoSql
Présentation des bases de données NoSqlPrésentation des bases de données NoSql
Présentation des bases de données NoSql
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQL
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
 
MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?
 
Java et les bases de données
Java et les bases de donnéesJava et les bases de données
Java et les bases de données
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Python
 
Zenika MongoDB Tour - REX Amadeus
Zenika MongoDB Tour - REX AmadeusZenika MongoDB Tour - REX Amadeus
Zenika MongoDB Tour - REX Amadeus
 
Tunis big data_meetup__21_nov2015__aymenzaafouri
Tunis big data_meetup__21_nov2015__aymenzaafouriTunis big data_meetup__21_nov2015__aymenzaafouri
Tunis big data_meetup__21_nov2015__aymenzaafouri
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQL
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 

En vedette

QUALITY MANAGEMENT
QUALITY MANAGEMENTQUALITY MANAGEMENT
QUALITY MANAGEMENT
smcci
 
Tuning Sql Server for SharePoint--- Community Day Belgium 2013
Tuning Sql Server for SharePoint--- Community Day Belgium 2013Tuning Sql Server for SharePoint--- Community Day Belgium 2013
Tuning Sql Server for SharePoint--- Community Day Belgium 2013
Isabelle Van Campenhoudt
 
Projeto AN9 - Uberlândia
Projeto AN9 - UberlândiaProjeto AN9 - Uberlândia
Projeto AN9 - Uberlândia
Filipe Detrey
 
To g chapter season 2 chapter 6.cv
To g chapter season 2 chapter 6.cvTo g chapter season 2 chapter 6.cv
To g chapter season 2 chapter 6.cv
Max Kerkula
 
บทที่ ๔ สื่อการสอนและห้องเรียนภาษาไทยในฐานะภาษาต่างประเทศ
บทที่ ๔ สื่อการสอนและห้องเรียนภาษาไทยในฐานะภาษาต่างประเทศบทที่ ๔ สื่อการสอนและห้องเรียนภาษาไทยในฐานะภาษาต่างประเทศ
บทที่ ๔ สื่อการสอนและห้องเรียนภาษาไทยในฐานะภาษาต่างประเทศ
เจริญขวัญ นาคประดิษฐ์
 

En vedette (20)

Sesión 4
Sesión 4Sesión 4
Sesión 4
 
Cycle Power BI Part1
Cycle Power BI Part1Cycle Power BI Part1
Cycle Power BI Part1
 
QUALITY MANAGEMENT
QUALITY MANAGEMENTQUALITY MANAGEMENT
QUALITY MANAGEMENT
 
Portfolio henderson a
Portfolio henderson aPortfolio henderson a
Portfolio henderson a
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donnees
 
Tuning Sql Server for SharePoint--- Community Day Belgium 2013
Tuning Sql Server for SharePoint--- Community Day Belgium 2013Tuning Sql Server for SharePoint--- Community Day Belgium 2013
Tuning Sql Server for SharePoint--- Community Day Belgium 2013
 
Projeto AN9 - Uberlândia
Projeto AN9 - UberlândiaProjeto AN9 - Uberlândia
Projeto AN9 - Uberlândia
 
Dat202 Techdays Paris 2015: PowerBI un an après
Dat202 Techdays Paris 2015: PowerBI un an aprèsDat202 Techdays Paris 2015: PowerBI un an après
Dat202 Techdays Paris 2015: PowerBI un an après
 
To g chapter season 2 chapter 6.cv
To g chapter season 2 chapter 6.cvTo g chapter season 2 chapter 6.cv
To g chapter season 2 chapter 6.cv
 
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?
 
Smci
SmciSmci
Smci
 
SharePoint 2016 les nouveautés / yosTour Lyon / Etienne Bailly | Benoit Jester
SharePoint 2016 les nouveautés / yosTour Lyon / Etienne Bailly | Benoit JesterSharePoint 2016 les nouveautés / yosTour Lyon / Etienne Bailly | Benoit Jester
SharePoint 2016 les nouveautés / yosTour Lyon / Etienne Bailly | Benoit Jester
 
Dart structured web apps
Dart   structured web appsDart   structured web apps
Dart structured web apps
 
SharePoint 2016 BI or PowerBI v2 - SharePoint Saturday Cambridge
SharePoint 2016 BI or PowerBI v2 - SharePoint Saturday CambridgeSharePoint 2016 BI or PowerBI v2 - SharePoint Saturday Cambridge
SharePoint 2016 BI or PowerBI v2 - SharePoint Saturday Cambridge
 
บทที่ ๔ สื่อการสอนและห้องเรียนภาษาไทยในฐานะภาษาต่างประเทศ
บทที่ ๔ สื่อการสอนและห้องเรียนภาษาไทยในฐานะภาษาต่างประเทศบทที่ ๔ สื่อการสอนและห้องเรียนภาษาไทยในฐานะภาษาต่างประเทศ
บทที่ ๔ สื่อการสอนและห้องเรียนภาษาไทยในฐานะภาษาต่างประเทศ
 
Présentation JSS2015 - Le Query Store de SQL Server 2016
Présentation JSS2015 - Le Query Store de SQL Server 2016Présentation JSS2015 - Le Query Store de SQL Server 2016
Présentation JSS2015 - Le Query Store de SQL Server 2016
 
PowerBI v2, Power to the People, 1 year later
PowerBI v2, Power to the People, 1 year laterPowerBI v2, Power to the People, 1 year later
PowerBI v2, Power to the People, 1 year later
 
Powerbi 365
Powerbi 365Powerbi 365
Powerbi 365
 
SQL Saturday 510 Paris 2016 - Query Store session - final
SQL Saturday 510 Paris 2016 - Query Store session - finalSQL Saturday 510 Paris 2016 - Query Store session - final
SQL Saturday 510 Paris 2016 - Query Store session - final
 
Unbreakable Sharepoint 2016 With SQL Server 2016 availability groups
Unbreakable Sharepoint 2016 With SQL Server 2016 availability groupsUnbreakable Sharepoint 2016 With SQL Server 2016 availability groups
Unbreakable Sharepoint 2016 With SQL Server 2016 availability groups
 

Similaire à Relational databases & NoSQL databases

Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprisesTours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
Michaël Figuière
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Christophe Laporte
 
JSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéJSS2013 : Haute disponibilité
JSS2013 : Haute disponibilité
Christophe Laporte
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigData
Ludovic Piot
 

Similaire à Relational databases & NoSQL databases (20)

Base de données
Base de donnéesBase de données
Base de données
 
Webinar Degetel DataStax
Webinar Degetel DataStaxWebinar Degetel DataStax
Webinar Degetel DataStax
 
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosql
 
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprisesTours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
 
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETICNoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
 
Les données on-premise et dans le cloud. Quelles options ?
Les données on-premise et dans le cloud. Quelles options ?Les données on-premise et dans le cloud. Quelles options ?
Les données on-premise et dans le cloud. Quelles options ?
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévuAWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
 
JSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéJSS2013 : Haute disponibilité
JSS2013 : Haute disponibilité
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB Administration
 
DataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudDataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le Cloud
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigData
 
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBSGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing Théâtre
 
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
 

Relational databases & NoSQL databases