Course Code: nosql4bspk
Duration: 28 hours
Prerequisites:
  • Basic knowledge of database concepts, including SQL and relational databases.
  • Familiarity with at least one programming language, such as Java, Python, or JavaScript
  • Understanding of basic networking concepts, such as IP addresses, ports, and protocols
  • Experience with using a command line interface (CLI) on a Windows, macOS, or Linux operating system

Audience

The target audience for this course would be the following who are interested in learning about NoSQL databases and their use in modern applications.

  • Developers,
  • Software engineers, Database administrators, and
  • System administrators
Course Outline:

Introduction to NoSQL and MongoDB

  • Introduction to NoSQL databases: definition, benefits, and disadvantages compared to relational databases.
  • Overview of different types of NoSQL databases, including document-oriented, key-value, column-family, and graph databases.
  • Introduction to MongoDB: features, architecture, and data model.
  • Installing and configuring MongoDB on different platforms (Windows, macOS, Linux)
  • Basic CRUD operations in MongoDB: create, read, update, and delete.
  • Querying data in MongoDB: basic and advanced techniques.
  • MongoDB Aggregation Framework
  • Hands-on lab: creating a MongoDB database, importing data, and performing CRUD operations.

Cassandra and Redis

  • Introduction to Cassandra: features, architecture, and data model.
  • Installing and configuring Cassandra on different platforms.
  • Basic operations in Cassandra: creating a keyspace, creating a table, inserting data, and querying data.
  • Cassandra data modeling: understanding primary keys, partition keys, and clustering keys.
  • Introduction to Redis: features, architecture, and data model.
  • Installing and configuring Redis on different platforms.
  • Basic operations in Redis: inserting data, retrieving data, updating data, and deleting data.
  • Hands-on lab: creating a Cassandra database, importing data, and performing basic operations; creating a Redis database, inserting data, and querying data.

Neo4j and mixed environments 

  • Introduction to Neo4j: features, architecture, and data model
  • Installing and configuring Neo4j on different platforms
  • Basic operations in Neo4j: creating nodes and relationships, querying data, and using indexes
  • Neo4j data modeling: understanding nodes, relationships, properties, and labels
  • Introduction to mixed environments: using both relational and NoSQL databases in tandem
  • Examples of mixed environments: using a NoSQL database for user sessions and a relational database for transactions; using a NoSQL database for analytics and a relational database for OLTP
  • Hands-on lab: creating a Neo4j database, importing data, and performing basic operations; setting up a mixed environment with a NoSQL database and a relational database working in tandem

Scaling, security, and deployment

  • Scaling NoSQL databases: sharding, replication, and clustering
  • Configuring a cluster of NoSQL databases to distribute the processing of very large datasets.
  • NoSQL database security: authentication, authorization, encryption, and access control
  • Best practices for securing NoSQL databases.
  • Deploying and scaling a NoSQL database in a production environment: choosing the right hardware, configuring network settings, monitoring performance, and managing backups.
  • Hands-on lab: configuring a cluster of NoSQL databases, securing a NoSQL database, and deploying a NoSQL database in a production environment.