Advanced Databases (NoSQL)
Advanced Databases (NoSQL)
About This Course | “Advanced Databases (NoSQL)” is a 10-week course which focuses on fundamentals of MongoDB, including MongoDB’s Document data model, importing data into a cluster, working with CRUD API and Aggregation Framework. In addition to these essential topics, students will learn and work with useful MongoDB tools and services as Atlas, MongoDB's database as a service, MongoDB Compass, a schema visualization tool, as well as many other useful command-line utilities. Course goal is to provide a solid background in NoSQL databases for software engineering, computer science and telecommunication students, in preparation either for a job in industry or for more advanced courses at the graduate level. |
Course Goal(s) | Course goal is to provide a solid background in NoSQL databases for software engineering, computer science and telecommunication students, in preparation either for a job in industry or for more advanced courses at the graduate level. |
Course Objectives: | Course Objectives include: • Explain the detailed architecture, define objects, load data, query data and performance tune Document-oriented NoSQL databases and how data is organized with MongoDB • Evaluate NoSQL database development tools and programming languages. • Perform hands-on NoSQL database lab assignments that will allow students to use the Document-oriented NoSQL database types via products such MongoDB. |
Skills & Competences | • Learn what NoSQL databases are and how data is organized with MongoDB • Learn how to perform CRUD operations with MongoDB • Learn how to use all features MongoDB offers to work with data efficiently |
Course Learning Outcomes: | By the end of this course students will be able to: • to install and use MongoDB locally and in the cloud (MongoDB Atlas); • to perform CRUD (Create, Read, Update, Delete) operations on MongoDB databases; • to filter for data efficiently; • to increase performance by using indexes; • to use the Aggregation Framework that's built into MongoDB; • to use MongoDB Atlas - the cloud solution offered by MongoDB; |
Ход урока
Этапы урока | Запланированная деятельность на уроке | Ресурсы |
---|---|---|
Lecture 1-Introduction to NoSQL (Part 1:Overview of NoSQL) |
The lesson will begin with an introduction to NoSQL, focusing on its role as a solution for handling large volumes of unstructured data that traditional relational databases struggle with. Students will learn the historical context behind the development of NoSQL, as well as its benefits and trade-offs compared to relational databases. This foundation will set the stage for understanding the broader landscape of modern database solutions. | https://youtu.be/Ru0r3IwbVrQ |
Lecture 1-Introduction to NoSQL (Part 2:Characteristics of NoSQL Databases) |
Next, the lecture will delve into the defining characteristics of NoSQL databases, such as schema flexibility, scalability, and distributed architecture. Students will explore how NoSQL databases can handle high-velocity data and horizontal scaling, which are critical in dynamic and large-scale applications. These attributes will be examined in relation to real-world scenarios where flexibility and efficiency are essential. | https://youtu.be/3bBzh97CIQs |
Lecture 1-Introduction to NoSQL (Part 3:NoSQL Database Categories - Key-Value) |
The first category, key-value databases, will then be introduced, explaining how they store data as pairs of keys and values, allowing for simple and efficient data retrieval. Students will discuss practical applications where key-value stores are useful, such as caching and session management, and analyze their strengths in handling fast lookups. Examples of widely used key-value databases, like Redis, will be highlighted. | https://youtu.be/xx3G-5gt0GE |
Lecture 1-Introduction to NoSQL (Part 4:NoSQL Database Categories – Document) |
Document-oriented databases, the next category, will be covered in depth, focusing on their ability to store data in semi-structured formats like JSON, making them ideal for applications that handle complex, hierarchical data. Students will learn how document databases support various data types within a single document and provide flexible schemas that evolve with application needs. Examples like MongoDB will demonstrate their advantages in content management systems and e-commerce platforms. | https://youtu.be/WIayBmBXJbA |
Lecture 1-Introduction to NoSQL (Part 5: NoSQL Database Categories – Column) |
The lesson will then address column-based databases, explaining how they store data in columns rather than rows to optimize for analytical queries and large-scale data processing. Students will explore how this model allows for efficient storage and retrieval of data across columns, making it suitable for use cases like time-series data and event logging. Popular column-based databases, such as Apache Cassandra, will be examined to illustrate their applications in big data analytics. | https://youtu.be/XWS-AENujmk |
Lecture 1-Introduction to NoSQL (Part 6:NoSQL Database Categories – Graph) |
Finally, graph databases will be introduced, focusing on their unique ability to store data in the form of nodes and edges to represent relationships. This structure allows for highly efficient querying of connected data, making graph databases ideal for applications involving social networks, recommendation engines, and fraud detection. Examples like Neo4j will help students understand how graph databases model complex relationships, enabling real-time insights in connected data environments. | https://youtu.be/32LYHjAPix8 |
Lecture 2-Document and CRUD Operations (Part 1:Understanding Databases, Collections and Documents. Creating Databases and Collections) |
In the second lecture, students will explore the foundational elements of NoSQL databases, focusing on databases, collections, and documents. They will learn what constitutes a database in the NoSQL context and how collections are used to organize groups of related documents. The lesson will include hands-on activities for creating databases and collections, demonstrating how these structures are defined and organized within NoSQL systems. | https://youtu.be/YlhcgH9-k3A |
Lecture 2-Document and CRUD Operations (Part 2: Understanding JSON Data. Comparing JSON & BSON) |
In Part 2 of the lecture, students will delve into understanding JSON (JavaScript Object Notation) as a data format commonly used in NoSQL databases, particularly in document-oriented systems. They will learn how JSON structures data in key-value pairs and how it enables easy exchange and storage of hierarchical data. The lecture will then compare JSON with BSON (Binary JSON), explaining the differences in terms of storage efficiency, speed, and support for data types like binary data, offering insights into when BSON is preferred over JSON in NoSQL environments. | https://youtu.be/D1r1KE4kn3U |
Lecture 3-Data Schemas and Data Modelling (Part 1:Structuring Documents. Data Types & Limits) |
In Part 1 of the lecture, students will learn how to structure documents in NoSQL databases, focusing on best practices for organizing data within documents. They will explore various data types supported by NoSQL systems, such as strings, integers, arrays, and embedded documents, and understand the limitations and considerations associated with each type. The lecture will also cover the size limits for documents and fields, providing practical knowledge on how to optimize data storage and retrieval within a NoSQL database. | https://youtu.be/YOZIEwaBSd8 |
Lecture 3-Data Schemas and Data Modelling (Part 2:Understanding Relations. Summarizing Relation) |
In Part 2 of the lecture, students will explore the concept of relationships within NoSQL databases, focusing on how data can be related across different documents and collections. They will compare the relational model in traditional databases with the more flexible, denormalized approach often used in NoSQL systems. The lecture will emphasize strategies for modeling relationships, such as embedding related documents or referencing them, and discuss the trade-offs of each approach in terms of performance and data consistency. | https://youtu.be/SkP8Q1ov3PU |
Lecture 4-MongoDB as a Background Service (Part 1:Working with Shell and Server. Exploring the MongoDB Options) |
In Part 1 of the lecture, students will learn how to interact with MongoDB using its shell and server. They will explore the basic shell commands for database management, such as creating, listing, and switching between databases and collections. The lecture will also cover the MongoDB server's architecture, including its configuration and available options for optimizing performance. Students will gain hands-on experience exploring different MongoDB options to configure and fine-tune the database for various use cases. | https://youtu.be/GTZkPF7RL7Q |
Lecture 4-MongoDB as a Background Service (Part 2:Shell Options & Help. Exploring the MongoDB Compass) |
In Part 2 of the lecture, students will learn about the various shell options and how to access help commands within the MongoDB shell to improve their workflow and troubleshooting. They will explore the use of the `help` command and other shell options for querying and managing databases more effectively. The lecture will also introduce MongoDB Compass, the graphical user interface for MongoDB, guiding students through its features such as visualizing data, running queries, and managing collections, providing a more intuitive way to interact with MongoDB beyond the command line. | https://youtu.be/tuU7Pj2Kz0A |
Lecture 5-Creating and Importing Documents (Part 1:Reading Documents with Operators. Methods, Filters and Operators) |
In Part 1 of the "Creating and Importing Documents" lecture, students will learn how to read and retrieve documents from a MongoDB database using various methods and filters. They will explore MongoDB's querying capabilities, focusing on using operators to refine searches and retrieve specific documents based on certain conditions. The lecture will cover common operators such as `$eq`, `$gt`, `$lt`, and `$in`, as well as how to combine them to create more complex queries. Students will also learn how to use projection to select specific fields from documents, helping to optimize query results. | https://youtu.be/yLJWnO4dE6I |
Lecture 5-Creating and Importing Documents (Part 2:Query Selectors and Projection Operators. Working with Comparison Operators) |
In Part 2 of the "Creating and Importing Documents" lecture, students will dive deeper into query selectors and projection operators in MongoDB. They will explore how to use selectors to filter documents based on field values, and how projection operators allow them to specify which fields should be included or excluded from query results. The lecture will focus on comparison operators like `$gt`, `$lt`, `$gte`, and `$lte`, showing students how to use these to perform range queries and filter data based on numerical or date ranges. Students will also learn how to apply these operators in practical scenarios for more efficient document retrieval. | https://youtu.be/k6BN2pNfdZ0 |
Lecture 6-Querying Embedded Fields & Arrays (Understanding and Applying Cursors. Sorting Cursor Results. Skipping & Limiting Cursor Results) |
In the "Querying Embedded Fields & Arrays" lecture, students will learn how to query embedded fields and arrays within MongoDB documents. They will explore how to use MongoDB’s query syntax to retrieve specific elements from arrays and navigate nested fields, applying operators like `$elemMatch` to filter data. The lecture will also cover working with cursors in MongoDB, teaching students how to manage cursor results by sorting, skipping, and limiting the number of returned documents. These techniques will help optimize data retrieval for large datasets by controlling the result set and improving query performance. | https://youtu.be/6Wq_IBW7yIo |
Lecture 7-Document Updating and Deletion Methods (Updating Fields. Updating Arrays. Incrementing & Decrementing Values. Updating Matched Array Elements. Updating All Array Elements. Finding & Updating Specific Fields) |
In the "Document Updating and Deletion Methods" lecture, students will learn various techniques for updating documents in MongoDB. They will explore how to update individual fields within documents using methods like `$set` and `$unset`. The lecture will also cover updating arrays, including adding, removing, and modifying elements, with operators such as `$push`, `$pull`, and `$addToSet`. Additionally, students will learn how to increment and decrement numeric values within documents using the `$inc` operator. The session will demonstrate how to update matched array elements as well as all elements in an array, providing hands-on examples of finding and updating specific fields in MongoDB documents. | https://youtu.be/qONgZCKIAsE |
Lecture 8-Working with Indexes (Part 1:Types of Indexes. Index creation process. Understanding the Default Index) |
In Part 1 of the "Working with Indexes" lecture, students will explore the different types of indexes available in MongoDB, including single field indexes, compound indexes, and geospatial indexes. They will learn about the index creation process, understanding how MongoDB automatically creates certain indexes, such as the default `_id` index, and how users can manually create custom indexes to optimize query performance. The lecture will cover the considerations for choosing the right index type based on query patterns and data access needs, as well as how to manage and evaluate indexes for efficiency in large-scale applications. | https://youtu.be/I702XLyecfs |
Lecture 8-Working with Indexes (Part 2:Index Creation Options. Analyze query perfomance with Index. Delete Indexes) |
In Part 2 of the "Working with Indexes" lecture, students will learn about various options for creating indexes in MongoDB. They will explore how to specify index options such as uniqueness, background index creation, and sparse indexes, which are useful for managing fields with missing values. The lecture will also cover how to analyze query performance using indexes by examining query execution plans with the `explain()` method, allowing students to assess the impact of indexes on query speed. Finally, students will learn how to delete indexes when they are no longer needed, ensuring that their database remains optimized and free from unnecessary overhead. | https://youtu.be/HALF0ThzXZU |
Lecture 9-Aggregation Framework (Getting Started with the Aggregation Pipeline. Understanding the Group Stage. Diving Into Additional Stages. Optimization of Aggregation Pipelines. Writing Pipeline Results Into a New Collection) |
In the "Aggregation Framework" lecture, students will be introduced to MongoDB's aggregation pipeline, a powerful tool for transforming and processing data within collections. They will start by learning how to construct basic aggregation pipelines, beginning with simple stages like `$match` and `$project`. The lecture will then dive into the `$group` stage, teaching students how to group data by specific fields and perform operations like summing, averaging, or counting values within those groups. Students will also explore additional stages in the pipeline, such as `$sort`, `$lookup`, and `$unwind`, to perform more complex data transformations. As part of optimizing aggregation performance, they will learn strategies for improving efficiency, such as limiting stages or indexing. The lecture will conclude with a demonstration on how to write the results of an aggregation pipeline into a new collection, enabling them to store the processed data for further use or analysis. | https://youtu.be/371RtMg-Hko |
Lecture 10-MongoDB and Security (Authentication &Authorization. Transport Encryption. Encryption at REST. Auditing. Server & Network Config and Setup. Backups & Software Updates) |
In the "MongoDB and Security" lecture, students will learn essential security concepts and practices to protect MongoDB databases. The lecture will begin with an introduction to authentication and authorization, explaining how to control access to databases using MongoDB's user roles and permissions. Students will explore how to implement transport encryption using TLS/SSL to ensure secure communication between MongoDB clients and servers. The session will cover encryption at rest, focusing on how to protect data stored in the database by encrypting files and backups. Students will also learn about auditing, allowing them to track and log database activities for security and compliance purposes. Additionally, the lecture will cover server and network configuration for secure MongoDB deployment, as well as best practices for backups and ensuring the database is regularly updated with the latest security patches. | https://youtu.be/KHWdnZFIiFU |
Отзывы(0)