Practical CouchDB for Developers

NoSQL technology can augment your data persistence layer. In this course, you will learn about the concepts of this open source NoSQL database and see it getting used in sample .NET and JavaScript projects.
Course info
Rating
(56)
Level
Intermediate
Updated
Feb 23, 2015
Duration
5h 34m
Table of contents
Course Overview
Introduction to CouchDB
Data Documents in CouchDB
Special Data Operations in CouchDB
Design Documents in CouchDB
Security in CouchDB
A New Query Language: MapReduce
Accessing CouchDB With JavaScript/jQuery
Accessing CouchDB With .NET
Description
Course info
Rating
(56)
Level
Intermediate
Updated
Feb 23, 2015
Duration
5h 34m
Description

NoSQL databases have become mainstream with their suitability to internet-grade applications. This course has been authored to leverage your knowledge of relational databases to leap into NoSQL concepts using CouchDB. We assume no knowledge of NoSQL databases and take you to intermediate level in this course. You will learn the constructs within CouchDB and become familiar with Map-Reduce language using JavaScript. This open source technology ideally augments your project requirements. We will conclude this course with practical applications of CouchDB in JavaScript and .NET applications.

About the author
About the author

Abhishek has enjoyed working with technology for over 14 years. Starting with Satyam Computers he went on to work with Microsoft in various marketing and business positions. He is certified as a Scrum Master & Microsoft Certified Application Developer. He believes in power of communities and is currently helping Indian organizations realize productivity gains with Telerik technologies.

Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Welcome to this course on Practical CouchDB for Developers. This course is about learning to use a NoSQL database, like CouchDB, in real world applications. I am Abhishek Kant, and I am honored to be your guide in this brave new learning effort. You can find me on Twitter with my handle abhishekkant. This course consists of five modules. The first module is about getting a first look at CouchDB. We continue our exploration of the various types of documents that are stored in CouchDB in module two. Next we will learn about query language that is used in CouchDB called MapReduce. We will use JavaScript to create our MapReduce queries. This is a course on practically using CouchDB in real world applications. In module four, we will learn how to perform read and write operations in CouchDB using. NET. The last module, that is module five, will be about accessing CouchDB using JavaScript and jQuery.

Introduction to CouchDB
Welcome to this module on Introduction to CouchDB. I'm Abhishek Kant, your guide for this course. You can find me online with my Twitter handle @abhishekkant. We will begin this module by understanding the NoSQL classification as it applies to CouchDB. While CouchDB can be installed on various operating systems, in this course, we will see how to install CouchDB on Windows. Next, we will take a look at what it takes to make CouchDB function. This is where we uncover the basics of CouchDB. The easiest way to get started with CouchDB is with its management GUI called Futon. Here we will learn how to perform basic tasks like reading, adding, updating, and deleting a document using Futon GUI. The final module attempts to leverage your knowledge of SQL world to dive deeper into the NoSQL universe. We compare and contrast the difference between Microsoft SQL Server and CouchDB NoSQL database.

Data Documents in CouchDB
Welcome to this module on working with data documents in CouchDB. I'm Abhishek Kant, your guide for this course. You can find me on Twitter with my handle abhishekkant. CouchDB is inspired by real world documents. In the earlier module we saw how adding personal details with varying fields can be easily managed in CouchDB. Here are some other real world documents that we frequently come across: bills and receipts, medical prescriptions, letters. And structured forms, like tax declaration. What is common against all of them is that they are all self contained documents. So, as you think about storing data in CouchDB, you may want to think about modeling your data to reflect the real world entities. We have a paradigm in software development for it called the business object. This module is about leaping from the knowledge gained in the earlier module to understanding the bare-metal characteristics of CouchDB. We need to refresh some basic concepts and this is what we will cover first, the web refresher. Next we will work with CouchDB documents without using the Futon interface introduced in the last module. This is made possible by the rich REST API supported by CouchDB. We will work with Fiddler, an HTTP debugging tool to explore this API. We will end the Module by discussing Concurrency in CouchDB.

Special Data Operations in CouchDB
In an earlier module, we saw how to perform simple CRUD operations in CouchDB. This module is about learning special data operations possible in CouchDB. I am Abhishek Kant and you can reach me on my email alias [email protected] net. We will start this module by learning how to do faster batch operations in CouchDB. We will spend a little time on revisiting attachment support in CouchDB. Change notifications are a powerful feature of CouchDB. And we will see that in action next. CouchDB's replication also stands out for its ease of use. We will round up the module by discussing the replication features.

Design Documents in CouchDB
Welcome to this module on Design Documents in CouchDB. In the earlier modules, we've seen a lot of possibilities with data documents. Let us now jump into exploring the utility of design documents in CouchDB. I'm Abhishek Kant, your host and guide for this course. In this module, we will begin with an introduction to the anatomy of design documents. One of the most important design documents is the view that allows for queries to happen. We will cover this next. There are additional constructs that help provide programmatic control over CouchDB. These include validation functions, show and list functions, and update functions. Only update functions have the capability to create side effects in CouchDB. The rest are read-only functions.

Security in CouchDB
Welcome to this module on security in CouchDB. I'm Abhishek Kant, your coach for this course. You can find me on Twitter with my handle abhishekkant. Till now, we haven't talked about security in CouchDB. Let us change that. In this module, we will start by exploring the overall security model of CouchDB for authentication and authorization. We will follow that by contrasting the CouchDB security model with the SQL server security. CouchDB comes with a relaxed security out of the box. We will learn how to secure the default installation of CouchDB next. In the end we will see how cookie based authentication can be implemented by applications aiming to connect with CouchDB.

A New Query Language: MapReduce
Welcome to this module on A New Query Language: MapReduce. I am Abhishek Kant, and I am your guide for this course. You can find me on twitter with my handle Abhishek Kant. This is a module that builds on the design documents that we saw in an earlier module. We will start this module with a basic introduction to Map/Reduce Language. We will then delve into understanding the anatomy of the map function followed by the anatomy of the reduce function. We will see how to write these functions and invoke them. A large part of this module will be spent on mapping T-SQL statements to their corresponding Map/Reduce equivalence.

Accessing CouchDB With JavaScript/jQuery
Welcome to this module on accessing CouchDB with JavaScript and jQuery. I'm Abhishek Kant, your presenter for this course, and I can be found on Twitter with my handle @abhishekkant. Let us see what we are going to be covering in this module. We are going to leverage our understanding of CouchDB to build up a complete working code in JavaScript. We will start with understanding the application architecture. The data model is quite different for NoSQL applications in comparison to applications built with RDBMS. First, we will create a data model for the application, and then build up the UI for the application. We are going to leverage an open source library called Kendo UI, from Telerik, for this module. We will round off this module by a quick look into the JavaScript library that comes out of the box with CouchDB, called CouchDB jQuery Plugin.

Accessing CouchDB With .NET
If you're here, then a very big congratulations to you. You've made it to the last module on the CouchDB course successfully. I'm Abhishek Kant, your companion for this course and you can find me on Twitter at abhishkekkant. In this module, we are consolidating our learning from earlier modules and building an ASP. NET application using CouchDB database. At this time, I would recommend that you watch the module on accessing CouchDB using JavaScript. If you've not done that already, as that module has the basics on modeling your CouchDB database. The approach that they're going to take in this module is to have a pre-built dot net application working on MS SQL database server. We are going to migrate that over to working with CouchDB database. In real life, you will probably be working with both an RDBMS and no SQL database side by side. We will begin this module by reviewing this working application. Next, we will conceptually cover the steps that need to be taken for porting the Microsoft SQL server data over to CouchDB database. This will lead us back to the same CouchDB database that we used in the accessing CouchDB with JavaScript module. Our grand finale is going to be moving over to using CouchDB as our database for the application and the code changes that are required to be made in the application to make this work. So hop on and follow through with me.