du relationel au nosql
TRANSCRIPT
![Page 1: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/1.jpg)
Du relationnel au NoSql
![Page 2: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/2.jpg)
SQL & SGBDR
Système de gestion de base de données
Relationnel
![Page 3: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/3.jpg)
Modèle relationnel
![Page 4: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/5.jpg)
![Page 6: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/7.jpg)
Limites
➢ Difficilement distribuable➢ Schéma contraignant➢ Object Relational Mapper
■ Impedance mismatch➢ Performances➢ Coûts
![Page 8: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/8.jpg)
Problème de lenteurs ?
![Page 9: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/11.jpg)
Normalisation / Dénormalisation
![Page 12: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/12.jpg)
Monté en charge verticale
n1-standard-11 CPU 3,75Go RAM51$/mois
n1-highmem-3232 CPU208Go RAM1900$/mois
![Page 13: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/13.jpg)
Réplication pour la lecture
master
slave
slave
write
read
readwrite
![Page 14: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/14.jpg)
Sharding pour augmenter les capacités d’écriture
A B Creadwrite
readwrite
readwrite
![Page 15: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/15.jpg)
Concepts
➢ Monté en charge horizontale/verticale➢ Dénormalisation➢ Sharding/partitionning➢ Réplication
![Page 16: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/16.jpg)
NoSQL
![Page 17: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/17.jpg)
Qui ?
Google Big table map/reduce (2006)
Amazon Dynamo (2007)
Facebook Cassandra (2008)
=> Changement d’échelle
![Page 18: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/18.jpg)
Comment ?
Distribution on commodity hardware
It will fail
![Page 19: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/19.jpg)
Abandon des principes ACIDEn particulier la Consistance
➢ BASE○ Basic Availability○ Soft-state○ Eventual consistency
Comment ?
![Page 20: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/21.jpg)
CAP Theorem
Consistency
Availibity
SGBDR
![Page 22: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/23.jpg)
CAP Theorem
Consistency
Availibity
SGBDR
![Page 24: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/24.jpg)
CAP Theorem
Consistency
PartitionTolerance
BigtableMongoDbRedis
![Page 25: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/25.jpg)
CAP Theorem
PartitionTolerance Availibity
DynamoCassandra
![Page 26: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/26.jpg)
CAP Theorem
Consistency
PartitionTolerance Availibity
No
Pick two ! Eric A. Brewer 2000
Towards Robust Towards Robust Distributed Systems
![Page 27: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/28.jpg)
NoSQL database type
![Page 29: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/29.jpg)
One More Thing...
![Page 30: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/30.jpg)
One More Thing...
?
La base de donnée NoSQL la plus utilisée est
![Page 31: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/31.jpg)
One More Thing...
Lucene !
Solr / ElasticSearch
![Page 32: Du Relationel au NoSQL](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55b82015bb61ebb4578b4604/html5/thumbnails/32.jpg)
Ressources
➢ Presentations○ Dynamo and BigTable in light of the CAP theorem○ Towards Robust Towards Robust Distributed Systems
➢ Papers○ Dynamo: Amazon’s Highly Available Key-value Store○ Bigtable: A Distributed Storage System for Structured Data
➢ Videos○ Introduction to NoSQL by Martin Fowler
➢ Books○ NoSQL Distilled○ Seven Databases in Seven Weeks: A Guide to Modern Databases and
the NoSQL Movement