32
Du relationnel au NoSql

Du Relationel au NoSQL

  • Upload
    sfeir

  • View
    119

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Du Relationel au NoSQL

Du relationnel au NoSql

Page 2: Du Relationel au NoSQL

SQL & SGBDR

Système de gestion de base de données

Relationnel

Page 3: Du Relationel au NoSQL

Modèle relationnel

Page 4: Du Relationel au NoSQL

SQL & SGBDR

➢ Algèbre Relationnelle➢ Théorie des ensembles➢ +40 ans d’optimisations

Ceux qui ne comprennent pas la théorie

des ensembles

????

Ceux qui comprennent la

théorie des ensembles

venn diagram sql

Page 5: Du Relationel au NoSQL
Page 6: Du Relationel au NoSQL

ACID

➢ Transaction ACIDAtomic: Everything in a transaction succeeds or the entire

transaction is rolled back.Consistent: A transaction cannot leave the database in an

inconsistent state.Isolated: Transactions cannot interfere with each other.Durable: Completed transactions persist, even when servers

restart etc.

Page 7: Du Relationel au NoSQL

Limites

➢ Difficilement distribuable➢ Schéma contraignant➢ Object Relational Mapper

■ Impedance mismatch➢ Performances➢ Coûts

Page 8: Du Relationel au NoSQL

Problème de lenteurs ?

Page 9: Du Relationel au NoSQL

Conception

➢ Lenteurs○ Souvent un problème de conception○ Tout modèle est optimisé pour

un cas d’utilisation

➢ SQL ou NoSQL ne change rien à ce problème

Page 10: Du Relationel au NoSQL

Index

➢ Un index est une structure de données redondante organisée de manière à accélérer certaines recherches.

Page 11: Du Relationel au NoSQL

Normalisation / Dénormalisation

Page 12: Du Relationel au NoSQL

Monté en charge verticale

n1-standard-11 CPU 3,75Go RAM51$/mois

n1-highmem-3232 CPU208Go RAM1900$/mois

Page 13: Du Relationel au NoSQL

Réplication pour la lecture

master

slave

slave

write

read

readwrite

Page 14: Du Relationel au NoSQL

Sharding pour augmenter les capacités d’écriture

A B Creadwrite

readwrite

readwrite

Page 15: Du Relationel au NoSQL

Concepts

➢ Monté en charge horizontale/verticale➢ Dénormalisation➢ Sharding/partitionning➢ Réplication

Page 16: Du Relationel au NoSQL

NoSQL

Page 17: Du Relationel au NoSQL

Qui ?

Google Big table map/reduce (2006)

Amazon Dynamo (2007)

Facebook Cassandra (2008)

=> Changement d’échelle

Page 18: Du Relationel au NoSQL

Comment ?

Distribution on commodity hardware

It will fail

Page 19: Du Relationel au NoSQL

Abandon des principes ACIDEn particulier la Consistance

➢ BASE○ Basic Availability○ Soft-state○ Eventual consistency

Comment ?

Page 20: Du Relationel au NoSQL

ACID � ➢ Strong consistency➢ Isolation � ➢ Focus on “commit”➢ Nested transactions

Availability?➢ Conservative (pessimistic)

➢ Difficult evolution (e.g. schema)

BASE � ➢ Weak consistency

○ stale data OK➢ Availability first➢ Best effort➢ Approximate answers OK➢ �Aggressive (optimistic)

➢ Simpler➢ Faster �➢ Easier evolution

NoSQL ACID vs BASE

continuum

Page 21: Du Relationel au NoSQL

CAP Theorem

Consistency

Availibity

SGBDR

Page 22: Du Relationel au NoSQL

1. The network is reliable.2. Latency is zero.3. Bandwidth is infinite.4. The network is secure.5. Topology doesn't change.6. There is one administrator.7. Transport cost is zero.8. The network is homogeneous.

Fallacies of distributed computing

Page 23: Du Relationel au NoSQL

CAP Theorem

Consistency

Availibity

SGBDR

Page 24: Du Relationel au NoSQL

CAP Theorem

Consistency

PartitionTolerance

BigtableMongoDbRedis

Page 25: Du Relationel au NoSQL

CAP Theorem

PartitionTolerance Availibity

DynamoCassandra

Page 27: Du Relationel au NoSQL

Cas d’usages

➢ Performance & réduction des coûts○ Distribution○ élasticité (cloud)

➢ Agilité des développements○ NoORM○ NoSchema

➢ Modélisations alternatives○ Graph

Page 28: Du Relationel au NoSQL

NoSQL database type

Page 29: Du Relationel au NoSQL

One More Thing...

Page 30: Du Relationel au NoSQL

One More Thing...

?

La base de donnée NoSQL la plus utilisée est

Page 31: Du Relationel au NoSQL

One More Thing...

Lucene !

Solr / ElasticSearch