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.