Duration
3 days
Synopsis
The relational database has been the foundation of enterprise applications. MySQL is a popular open-source relational database management system (RDBMS). In RDBMS systems stores data in tables and uses structured query language (SQL) for database access. In RDBMS database schema is pre-defined based on requirements. In RDBMS related information are stored in separated tables, but associated through the relationships between fields in the tables. Yet with the explosion in the volume and variety of data in recent years, “non-relational” database technologies have emerged to address the requirements of new applications.
MongoDB is an open-source database, stores data in JSON-like documents that can vary in structure. Related information is stored together for fast query access through the MongoDB query language. MongoDB uses dynamic schemas, meaning records can be created without defining the structure. This data model gives ability to represent hierarchical relationships, to store arrays, and other more complex structures easily. MongoDB was designed with high availability and scalability in mind, and includes out-of-the-box replication and auto sharding.
A firm grasp of fundamental concepts in NON-RDBMS / NO-SQL is important for any developer who develops applications that deal with tons of data. MongoDB by default prefers high insert rate over transaction safety. This is also important for those who are not dealing with any development. For example a basic grasp of the MONGODB will enable the project manager to understand when to use RDBMS and when to use NON-RDBMS databases or a marketing guy to propose features that can be added to the existing application such as location based functions that are used to analyse users usage and determining where to invest for marketing.
With this objective in mind the course is designed to equip the participants with both foundation knowledge and deep understanding of each MONGODB components, and therefore increased interest and confidence for their future projects. The subject is delivered with minimal theory, stressing on practical applications instead.
Class highlight
This course starts with essential fundamentals of SQL and NON-SQL. The participants are then taught the theories of commonly-used in NON-SQL environment. Once the participants are equipped with essential concepts and NON- RDBMS knowledge, the participants are introduced to the MONGODB.
At every stage the participant will be learning and designing the necessary features to build their own web application. To conclude the course, a complete Facebook application will be created using MONGODB. This serves to show the practical applications of the various subject areas learned in this course.
What You Will Learn
- Understand Mongo as a data store
- Be comfortable with Mongo's query and update languages
- Work with the common use-cases and architectures of Mongo
- Use Mongo's built-in JavaScript interpreter
- Query Mongo using Mongo's JSON-based query language
- Index Mongo collections
- Handle data with Mongo's built-in MapReduce capabilities
Who Should Attend
- Anyone interested in NO-SQL Databases
- Whoever wants to build web solution using NON-RDBMS database
Prerequisite
Participants should be familiar with basic programming in almost any scripting or object-oriented language (command- line scripting, database programming, or application programming), and have some experience with any SQL or NoSQL database.
Course Methodology
The participants are taught theories in classroom followed by practical lab exercises on each day of the training. The participants will develop a complete web application using MONGODB as data store and Node.js framework.
Introduction
- What is MongoDB?
- The current SQL/NoSQL landscape
- Document-oriented vs. other types of storage
- Mongo's feature set
- Common use-cases
- Introduction to JSON Documents and Collections
- Creating documents
- Managing documents in collections
- Iterating over documents Simple Queries
- Field equality tests
- Operators available
- Projections
- Limiting results and paging Simple Updates and Deletes
- Field updates
- Field insertions and removal
- Document deletion More Complex Types of Queries
- Existential field values
- Aggregations and groups
- Aggregations and groups in hierarchical data Updates and Arrays
- Altering array field elements
- Insertion to array fields
- Removing from array fields
Day 2
Indexing 1 & 2
- The primary index and the _id field
- Problems requiring an index
- Defining secondary indexes
- Compound indexes
- Index selection
- Index hints
- Covering indexes
- Index storage size
- Indexes effect insertion and update speeds Mongo RESTful API and MapReduce
- CRUD operations through REST
- Explanation of MapReduce
- Types of logic that can be expressed as MapReduce declarations
- Mapping documents
- Reducing values Mongo Security
- Authorization and securing collections, documents
- The limits of Mongo's authorization scheme
- Authentication
- Mongo in the enterprise Mongo Replication and Sharding
- Configuring replication
- Configuring sharding
- Accessing clustered data from client APIs
- Latency and consistency in replicated and sharded Mongo
Day 3
Foundation
- The Node.js framework
- Installing Node.js
- Using Node.js to execute scripts
Node Projects
- The Node Package Manager
- Creating a project
- The package.json configuration file
- Global vs. local package installation
- Automating tasks with Gulp
Express
- The model-view-controller pattern
- Defining Jade and Handlebars templates
- Building a front-end controller
- Defining routes and Creating actions
- Configuring Express to use Handlebars
- Using REST & Reading POST data
- Building Handlebars helpers
- Adding middleware Data Sources
- How Node.js connects to NoSQL databases
- Performing CRUD operations
- Building client requests to web services
Programme scope, delivery arrangements and suitability are confirmed during enquiry.