30

MongoDB et C#

  • Upload
    selia

  • View
    75

  • Download
    0

Embed Size (px)

DESCRIPTION

MongoDB et C#. 08/02/2011 Rui Carvalho Yann Schwartz. Au menu. NoSQL en 5 minutes MongoDB dans les grandes lignes Modéliser ses données dans Mongo Le requêtage Fonctionnalités avancées Un exemple : MongOverlfow. D’où vient NoSQL ?. SGBDR vs. NoSQL. SGBDR Tables – Relations SQL - PowerPoint PPT Presentation

Citation preview

Page 1: MongoDB et C#
Page 2: MongoDB et C#

2

MongoDB et C#08/02/2011Rui Carvalho Yann Schwartz

Page 3: MongoDB et C#

3

Au menu• NoSQL en 5 minutes

• MongoDB dans les grandes lignes

• Modéliser ses données dans Mongo

• Le requêtage

• Fonctionnalités avancées

• Un exemple : MongOverlfow

Page 4: MongoDB et C#

4

D’où vient NoSQL ?

Page 5: MongoDB et C#

5

SGBDR vs. NoSQL

SGBDR

• Tables – Relations

• SQL

• Transactions fortes

• Centralisé

NoSQL

• Autre chose…

• Ca dépend…

• Ca dépend aussi

• Réparti

Page 6: MongoDB et C#

6

Modèles de données• Clé-valeur

• Memcached, Reddis

• ColonnesBig Table, Cassandra

• Documents• CouchDB, MongoDB

Page 7: MongoDB et C#

7

Requêtage

• Propre au modèle de données

• Par clé

• Map/Reduce (agrégation)

• JSON

Page 8: MongoDB et C#

8

Transactions• Les garanties dépendent du modèle et des choix

de conception de la base…

• Toujours des transactions atomiques

• Mais pas forcément de transactions explicites pour plusieurs actions

Page 9: MongoDB et C#

9

De nouveaux acronymes !• ACIDAtomic Consistent Isolated Durable

• CAP (choisir deux sur trois)Consistent Available Partitionned

• BASEBAsically AvailableSoft StateEventually Consistent

Page 10: MongoDB et C#

10

A quoi ça sert ?• Caches à valeur ajoutée (requêtables, distribués,

persistents)

• Données transitoires

• Contraintes de charge

• Modèles élastiques

• Résoudre l’ impedance mismatch

Page 11: MongoDB et C#

11

Au menu• NoSQL en 5 minutes

• MongoDB dans les grandes lignes

• Modéliser ses données dans Mongo

• Le requêtage

• Fonctionnalités avancées

• Un exemple : MongOverlfow

Page 12: MongoDB et C#

12

MongoDB

• Base de données orientée documents

• Schémas souples

• Requêtes exprimées en JSON

• Données stockées et transmises en BSON (binary JSON)

• Montée en charge (réplication, sharding)

Page 13: MongoDB et C#

13

Pourquoi MongoDB• Facile à mettre en œuvre

• Open Source, gratuit et vivant

• Des drivers pour tous les langages

• Riche mais pas trop exotique (une partie des concepts relationnels s’appliquent toujours)

• Outillage assez riche

• Modèle riche

Page 14: MongoDB et C#

14

Au menu• NoSQL en 5 minutes

• MongoDB dans les grandes lignes

• Modéliser ses données dans Mongo

• Le requêtage

• Fonctionnalités avancées

• Un exemple : MongOverlfow

Page 15: MongoDB et C#

15

Orienté document

• Les documents (ligne) de même nature sont stockées dans des collections (tables)

• Un document est un arbre, composé de clés et de valeurs

• Une valeur peut être:• Scalaire (int, long, string, date, binary, bool,

etc.)• Tableau• Un document imbriqué

Page 16: MongoDB et C#

Un document

{Id : 1,user : 1,Titre : "mon premier post",Date : 123456789,Views : 123,CommentsCount : 1,Comments : [{ Content : "super ton post!", User : "toto”}, {Content: ‘Preums !’, User: “Le Troll”}]}

Page 17: MongoDB et C#

17

Comment modéliser• Document complexe

• Documents imbriqués• Les value objects font partie du document• Parfois gourmands (dénormalisation)• Limite (actuelle) de 4Mo par document

• Normalisation

• Approche mixte

Page 18: MongoDB et C#

18

• Relationnel / Document

Question

Comment

Response

User

SQL Document

Question

List(Comment)

List(Response)

User

Page 19: MongoDB et C#

19

Au menu• NoSQL en 5 minutes

• MongoDB dans les grandes lignes

• Modéliser ses données dans Mongo

• Le requêtage

• Fonctionnalités avancées

• Un exemple : MongOverlfow

Page 20: MongoDB et C#

20

Requêtes dans MongoDB• Requêtes en JSON

• On retrouve l’équivalent des projections de SQL

• Quelques agrégations par défaut… Map/Reduce pour les

autres

Page 21: MongoDB et C#

21

DémoLa console mongo

Page 22: MongoDB et C#

22

API d’accès• Trois bibliothèques, dont une officielle

• 10gen : fonctionnalités complètes, pas de LINQ• Extension pour LINQ : fluent-mongo

• NORM, mongodb-csharp : LINQ

• En commun : mode document brut ou sérialisation de POCO

Page 23: MongoDB et C#

23

Au menu• NoSQL en 5 minutes

• MongoDB dans les grandes lignes

• Modéliser ses données dans Mongo

• Le requétage

• Fonctionnalités avancées

• Un exemple : MongOverlfow

Page 24: MongoDB et C#

24

Sharding et réplication• Le sharding permet un partitionnement

automatique des données

Page 25: MongoDB et C#

25

Autres fonctionnalités• Requêtes géographiques

• Capped collections

• FSGrid (file system réparti pour les blobs)

• Javascript exécuté sur le serveurdb.eval (~ procédures stockées)map/reduce ( agrégations)db.system.js ( fonctions)

Page 26: MongoDB et C#

26

Au menu• NoSQL en 5 minutes

• MongoDB dans les grandes lignes

• Modéliser ses données dans Mongo

• Le requétage

• Fonctionnalités avancées

• Un exemple : MongOverlfow

Page 27: MongoDB et C#

27

DémoMongoverflow

Page 28: MongoDB et C#

28

RessourcesSite officielwww.mongodb.org

Driver officielgithub.com/mongodb/mongo-csharp-driverExtensions LINQgithub.com/craiggwilson/fluent-mongo

Code des démos de la sessionbitbucket.org/rhwy/techdays-paris-2011-mongodb-csharp

Code des démos de la sessionNews, demos : artofnet.fr, objectnull.comTwitter: @rhwy,@abolibibelot

Page 29: MongoDB et C#

29

MSDN et TechNet : l’essentiel des ressources techniques à portée de clic

http://technet.com http://msdn.com

Portail administration et infrastructure pour informaticiens

Portail de ressources technique pour développeurs

Page 30: MongoDB et C#