2012-05-14 NoSQL in .NET - mit Redis und MongoDB

2,143 views

Published on

1: Vortrag: NoSQL in .NET – mit Redis und MongoDB
Der Vortrag führt in die Theorie ein, stellt die beiden NoSQL-Datenbanksysteme Redis und MongoDB näher vor und gibt Praxisbeispiele. Ich präsentiere die beiden Systeme live an einem ASP.NET MVC Beispielprojekt, welches allen Teilnehmern zur Verfügung gestellt wird.

2. Vortrag: NoSQL – Dokumente und Relationen
Eine dokumentenbasierte NoSQL-Datenbank wie MongoDB hat nicht nur eine andere API zur Abfrage der Daten. Die tiefergehende Neuerung ist eine grundlegende andere Art die Daten abzuspeichern. Der Vortrag konzentriert sich auf Schema-Design, das Map-Reduce Verfahren und bekannten Patterns für Dokumenten-basierte Datenbanken.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,143
On SlideShare
0
From Embeds
0
Number of Embeds
1,392
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2012-05-14 NoSQL in .NET - mit Redis und MongoDB

  1. 1. › SET note1:title "Mittag"› SET note1:message "nicht vergessen"› KEYS note1:*› GET note1:title› DEL note1:title note1:message
  2. 2. http://bit.ly/ISv9f6
  3. 3. ››
  4. 4. http://bsonspec.org
  5. 5.
  6. 6. –› use WebNote› db.Notes.save( { Title: Mittag, Message: nicht vergessen‘ } );› db.Notes.save
  7. 7. –› db.Notes.find();› db.Notes.find({ Title: /Test/i });› db.Notes.find( { "Categories.Color": "red"}).limit(1);
  8. 8. –› db.Notes.update({Title: Test}, {$set: {Categories: []}});› db.Notes.update({Title: Test}, {$push: { Categories: {Color: Red} } });
  9. 9. –› db.dropDatabase();› db.Notes.drop();› db.Notes.remove();
  10. 10. NULL NULLNULL NULLNULL
  11. 11. > db.shapes.find()› { _id: "1", type: "c", area: 3.14, radius: 1}› { _id: "2", type: "s", area: 4, length: 2}› { _id: "3", type: "r", area: 10, length: 5, width: 2}// Shapes mit radius > 0 finden> db.shapes.find( { radius: { $gt: 0 } } )
  12. 12. blogs: { author : “Johannes", date : ISODate("2011-09-18T09:56:06.298Z"), comments : [ { author : “Klaus", date : ISODate("2011-09-19T09:56:06.298Z"), text : “toller Artikel" } ]}
  13. 13. blogs: { _id: 1000, author: “Johannes", date: ISODate("2011-09-18"), comments: [ {comment : 1)} ]}comments : { _id : 1, blog: 1000, author : “Klaus", date : ISODate("2011-09-19")}> blog = db.blogs.find({ text: "Destination Moon" });> db.comments.find( { blog: blog._id } );
  14. 14. // Jedes Produkt verlinkt die IDs der Kategorienproducts: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }
  15. 15. // Jedes Produkt verlinkt die IDs der Kategorienproducts: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }// Jede Kategorie verlinkt die IDs der Produktecategories: { _id: 20, name: "adventure", product_ids: [ 10, 11, 12 ] }categories: { _id: 21, name: "movie", product_ids: [ 10 ] }
  16. 16. // Jedes Produkt verlinkt die IDs der Kategorienproducts: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }// Jede Kategorie verlinkt die IDs der Produktecategories: { _id: 20, name: "adventure", product_ids: [ 10, 11, 12 ] }categories: { _id: 21, name: "movie", product_ids: [ 10 ] }// Alle Kategorien für ein Produkt> db.categories.find( { product_ids: 10 } )
  17. 17. // Jedes Produkt verlinkt die IDs der Kategorienproducts: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }// Kategorien beinhalten keine Assoziationencategories: { _id: 20, name: "adventure"}
  18. 18. // Jedes Produkt verlinkt die IDs der Kategorienproducts: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }// Kategorien beinhalten keine Assoziationencategories: { _id: 20, name: "adventure"}// Alle Produkte für eine Kategorie> db.products.find( { category_ids: 20 } )
  19. 19. // Jedes Produkt verlinkt die IDs der Kategorienproducts: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }// Kategorien beinhalten keine Assoziationencategories: { _id: 20, name: "adventure"}// Alle Produkte für eine Kategorie> db.products.find( { category_ids: 20 } )// Alle Kategorien für ein Produkt product> product = db.products.find( { _id: some_id } )> db.categories.find({_id: {$in : product.category_ids}})
  20. 20. › › ›››
  21. 21. ›››
  22. 22. ›››
  23. 23. ››
  24. 24. CODASYL model SQL Agile becoming more Google MongoDB initial published invented popular BigTable releaseIBM’s Oracle Brewer’s Amazon IMS INGRES founded CAP born Dynamo1966 1969 1970 1973 1974 1977 1985 1990’s 2000 2004 2007 2008 2009 10gen NoSQL Codd publishes Term “object-oriented founded Movement relational model paper database” appears in 1970 Apache Cassandra initial release

×