2012-05-14 nosql in .net - mit redis und mongodb

Post on 08-May-2015

1.808 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

1: Vortrag: NoSQL in .NET – mit Redis und MongoDBDer 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 RelationenEine 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.

TRANSCRIPT

› SET note1:title "Mittag"

› SET note1:message "nicht vergessen"

› KEYS note1:*

› GET note1:title

› DEL note1:title note1:message

http://bit.ly/ISv9f6

››

http://bsonspec.org

› use WebNote

› db.Notes.save( { Title: 'Mittag', Message: 'nicht vergessen‘ } );

› db.Notes.save

› db.Notes.find();

› db.Notes.find({ Title: /Test/i });

› db.Notes.find( { "Categories.Color": "red"}).limit(1);

› db.Notes.update({Title: 'Test'}, {'$set': {Categories: []}});

› db.Notes.update({Title: 'Test'}, {'$push': {

Categories: {Color: 'Red'} }

});

› db.dropDatabase();

› db.Notes.drop();

› db.Notes.remove();

NULL NULL

NULL NULL

NULL

> 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 } } )

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" } ] }

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 } );

// Jedes Produkt verlinkt die IDs der Kategorien

products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }

// Jedes Produkt verlinkt die IDs der Kategorien

products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }

// Jede Kategorie verlinkt die IDs der Produkte

categories:

{ _id: 20, name: "adventure",

product_ids: [ 10, 11, 12 ] }

categories:

{ _id: 21, name: "movie",

product_ids: [ 10 ] }

// Jedes Produkt verlinkt die IDs der Kategorien

products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }

// Jede Kategorie verlinkt die IDs der Produkte

categories:

{ _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 } )

// Jedes Produkt verlinkt die IDs der Kategorien

products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }

// Kategorien beinhalten keine Assoziationen

categories:

{ _id: 20,

name: "adventure"}

// Jedes Produkt verlinkt die IDs der Kategorien

products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }

// Kategorien beinhalten keine Assoziationen

categories:

{ _id: 20,

name: "adventure"}

// Alle Produkte für eine Kategorie

> db.products.find( { category_ids: 20 } )

// Jedes Produkt verlinkt die IDs der Kategorien

products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }

// Kategorien beinhalten keine Assoziationen

categories:

{ _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}})

›››

›››

››

IBM’s IMS

Codd publishes relational model paper

in 1970

1966 1969 1970 1985 2000 2004 2007

Agile becoming more popular

1990’s 2009

CODASYL model published

Term “object-oriented database” appears

Brewer’s CAP born

Google BigTable

Amazon Dynamo

Apache Cassandra initial release

2008

MongoDB initial release

1973 1974

INGRES

SQL invented

1977

Oracle founded

10gen founded

NoSQL Movement

top related