1 / 30

MongoDB et C#

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

selia
Download Presentation

MongoDB et C#

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MongoDB et C# 08/02/2011RuiCarvalho Yann Schwartz

  2. 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

  3. D’où vient NoSQL ?

  4. SGBDR vs. NoSQL SGBDR • Tables – Relations • SQL • Transactions fortes • Centralisé NoSQL • Autre chose… • Ca dépend… • Ca dépend aussi • Réparti

  5. Modèles de données • Clé-valeur • Memcached, Reddis • Colonnes Big Table, Cassandra • Documents • CouchDB, MongoDB

  6. Requêtage • Propre au modèle de données • Par clé • Map/Reduce (agrégation) • JSON

  7. 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

  8. De nouveaux acronymes ! • ACID AtomicConsistent IsolatedDurable • CAP (choisir deux sur trois) Consistent AvailablePartitionned • BASE BAsicallyAvailableSoft State Eventually Consistent

  9. 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’ impedancemismatch

  10. 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

  11. 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)

  12. 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

  13. 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

  14. 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é

  15. 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”} ] }

  16. 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

  17. Relationnel / Document Question Question List(Comment) Comment User Response List(Response) User SQL Document

  18. 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

  19. 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

  20. Démo La console mongo

  21. 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

  22. 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

  23. Sharding et réplication • Le sharding permet un partitionnement automatique des données

  24. Autres fonctionnalités • Requêtes géographiques • Cappedcollections • FSGrid (file system réparti pour les blobs) • Javascript exécuté sur le serveur db.eval (~ procédures stockées)map/reduce ( agrégations) db.system.js ( fonctions)

  25. 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

  26. Démo Mongoverflow

  27. Ressources Site officiel www.mongodb.org Driver officiel github.com/mongodb/mongo-csharp-driverExtensions LINQgithub.com/craiggwilson/fluent-mongo Code des démos de la session bitbucket.org/rhwy/techdays-paris-2011-mongodb-csharp Code des démos de la session News, demos : artofnet.fr, objectnull.com Twitter: @rhwy,@abolibibelot

  28. MSDN et TechNet: l’essentiel des ressources techniques à portée de clic • Portail administration et infrastructure pour informaticiens • Portail de ressources technique pour développeurs http://technet.com http://msdn.com

More Related