Your SlideShare is downloading. ×
0
NoSQL & RavenDB
with
.NET
Venkat Somula
Lead Architect
WoltersKluwer (CLS – Corporate Legal Services)
@vsomula

September ...
What is NoSQL?
 NoSQL is a brand name for Non-Relational(RDBMS) databases
 Means





Not Only SQL
No schema
No rela...
Why NoSQL?
 Flexible data model for being Schema-less
 Simple – just serialize objects as-is
 Avoid impedance mismatch ...
NoSQL Types
Document
Databases
Key/Value
Stores
NoSQL
Databases

• RavenDB
• MongoDB
• CouchDB
• MarkLogic

• Redis
• Simp...
http://ravendb.net
What is RavenDB?








A NoSQL Database
Document based – data is stored as JSON
Open Source
Built on C#
REST base...
RavenDB Features













Support for multiple database hosting
.NET client API for .NET platform
REST API...
High Level Architecture
.NET Client
App

Raven
DB
.NET
Client
API

Non .NET
Client App
RavenDB
Management
Studio

REST
API...
System Requirements
 Software
 Windows
 .NET Framework 4.0

 Hardware
 Minimum
 2 GB of RAM
 1 GHz Dual Core
 1 GB...
RavenDB Installation
 RavenDB has 2 parts (RavenDB Server and RavenDB client API)
 Download RavenDB Server or RavenDB Em...
RavenDB Management Studio

 Is accessible at http://localhost:port#/raven/studio.html
 Available features







C...
Data Modeling
 In relational modeling, every entity is stored in its own
table(to avoid duplicate data) and joins are nec...
Indexes
 Indexes play an important role in query performance
 Supports dynamic as well as static indexes
 Dynamic index...
Security
 Available only with commercial license
 Supports 2 types of authentication
 Windows Authentication
 OAuth Au...
Basic Operations (using .NET Client API)
Initialize Database

Add Employee
Stored As
JSON
Basic Operations …
Load Employee

Update Employee
Basic Operations …
Delete Employee

Query/Search Employees
Basic Operations …
Paging
Best Practices
 Setup RavenDB server as IIS Website for granular
administration(load balancing, scalability, security, is...
Licensing
 Available freely as open source under AGPL license
 Refer to http://ravendb.net/licensing for commercial purp...
Use Cases






Store server logs, errors, instrumentation/profiling
Blogs – with comments, notes, tags, etc..
Shoppi...
Resources
 Site: http://ravendb.net
 Twitter: @RavenDB
 GitHub: https://github.com/ravendb/ravendb
Upcoming SlideShare
Loading in...5
×

NoSQL & RavenDB with .NET

1,779

Published on

NoSQL & RavenDB with .NET(C#) examples

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,779
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
33
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "NoSQL & RavenDB with .NET"

  1. 1. NoSQL & RavenDB with .NET Venkat Somula Lead Architect WoltersKluwer (CLS – Corporate Legal Services) @vsomula September 24, 2013
  2. 2. What is NoSQL?  NoSQL is a brand name for Non-Relational(RDBMS) databases  Means     Not Only SQL No schema No relationships between entities No joins and sub queries  Some of the Characteristics of NoSQL databases      Not a relational database No Schema Open Source Highly scalable and available High retrieval performance
  3. 3. Why NoSQL?  Flexible data model for being Schema-less  Simple – just serialize objects as-is  Avoid impedance mismatch between the code(object) and data (table).  One size(RDBMS) does not fit all  Scalability(data distribution across multiple servers)  When performance is the key - no joins  To store and retrieve(quickly) millions of records with no relations  Integrated Caching  Cost reduction – mostly work commodity servers  Easy to program
  4. 4. NoSQL Types Document Databases Key/Value Stores NoSQL Databases • RavenDB • MongoDB • CouchDB • MarkLogic • Redis • SimpleDB(Amazon) • Dynamo Tabular/Wide Column Databases Graph Databases • Cassandra • BigTable(Google) • HBase • Neo4J • Infinite Graph • InfoGrid
  5. 5. http://ravendb.net
  6. 6. What is RavenDB?        A NoSQL Database Document based – data is stored as JSON Open Source Built on C# REST based Schema less Simple and feature rich
  7. 7. RavenDB Features             Support for multiple database hosting .NET client API for .NET platform REST API for non .NET platform Horizontal Scaling Supports ACID transactions Built-in full-text search Built-in caching Built-in sharding(split data across different servers) Built-in replication(copies of data in multiple servers) Storing of binary data(attachments, images, etc..) Support for Replication to SQL Server, Oracle, MySQL, etc.. Embedded database makes automated testing a breeze
  8. 8. High Level Architecture .NET Client App Raven DB .NET Client API Non .NET Client App RavenDB Management Studio REST API RavenDB Server Data Replication Tasks http REST API RavenDB Server Indexing Tasks REST API RavenDB Server
  9. 9. System Requirements  Software  Windows  .NET Framework 4.0  Hardware  Minimum  2 GB of RAM  1 GHz Dual Core  1 GB of disk space  Recommended (more is better)  4 GB RAM  2 GHz Quad Core  50 GB of disk space
  10. 10. RavenDB Installation  RavenDB has 2 parts (RavenDB Server and RavenDB client API)  Download RavenDB Server or RavenDB Embedded from http://ravendb.net/download  4 ways to Run RavenDB server  Console application from command Prompt(Raven.Server.exe)  Windows Service(Raven.Server.exe /install)  Website (Configure RavenDB-Build-xxxx/Web folder as website or virtual directory)  Embedded as part of .NET application(embedded version only)  Download RavenDB client from http://ravendb.net/download  OR Download as Nuget Package(search for RavenDB)
  11. 11. RavenDB Management Studio  Is accessible at http://localhost:port#/raven/studio.html  Available features       Create, Import, Export, and Backup database View/Edit/Delete documents Query documents Manage indexes View usage and recent queries etc.. Manage Authentication, replication, and sharding
  12. 12. Data Modeling  In relational modeling, every entity is stored in its own table(to avoid duplicate data) and joins are necessary where as in NoSQL world all related information is stored in single document for fast retrieval Relational NoSQL(RavenDB-JSON) Order Order Item Billing Info Shipping Info Trakcing Info  Relational databases are optimized for writes where as NoSQL is optimized for reads
  13. 13. Indexes  Indexes play an important role in query performance  Supports dynamic as well as static indexes  Dynamic indexes get created by database automatically based on queries but indexes are not persisted  Static indexes are permanent, and can be created using code or in the management studio(UI)  Can define indexes using Linq queries  Supports Map/Reduce functionality  Indexes run in the background so no impact to the operations  Indexes can be stale
  14. 14. Security  Available only with commercial license  Supports 2 types of authentication  Windows Authentication  OAuth Authentication(API key authentication)
  15. 15. Basic Operations (using .NET Client API) Initialize Database Add Employee Stored As JSON
  16. 16. Basic Operations … Load Employee Update Employee
  17. 17. Basic Operations … Delete Employee Query/Search Employees
  18. 18. Basic Operations … Paging
  19. 19. Best Practices  Setup RavenDB server as IIS Website for granular administration(load balancing, scalability, security, isolation, administration, start/stop, etc..)  Use .NET client API for .NET consumers  Create static indexes for all known queries  Keep in mind that indexes can be stale and design you applications accordingly  Use Includes feature to load related objects to avoid chatty interface to database  Use replication feature for high availability
  20. 20. Licensing  Available freely as open source under AGPL license  Refer to http://ravendb.net/licensing for commercial purposes
  21. 21. Use Cases      Store server logs, errors, instrumentation/profiling Blogs – with comments, notes, tags, etc.. Shopping cart Complex objects with hierarchy(orders, product catalogue) High volume data (tweets, chat, comments, etc..) where query performance is critical  Click streams  Big Data
  22. 22. Resources  Site: http://ravendb.net  Twitter: @RavenDB  GitHub: https://github.com/ravendb/ravendb
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×