MongoDB is not a better relational database. It is a different trade.
Database Management Systems taught you to normalise: split data across tables, eliminate redundancy, join at read time, and let the database enforce consistency. MongoDB inverts almost every one of those decisions — it stores related data together in one document, accepts redundancy, avoids joins, and pushes consistency decisions to the application.
Neither is correct in general. Each is correct for a different access pattern, and the whole course is about telling which one you have.
| Relational (Database Management Systems) | Document (here) | |
|---|---|---|
| Unit of storage | A row, split across tables | A document, whole |
| Schema | Fixed, enforced on write | Flexible, optional validation |
| Redundancy | Eliminated by normalisation | Accepted for read speed |
| Joins | The core operation | Avoided; $lookup exists but is a last resort |
| Scaling | Vertically — a bigger machine | Horizontally — more machines |
| Guarantees | ACID across the whole database | ACID per document; transactions since 4.0 |
| Best when | Relationships matter and are queried many ways | You read one whole entity at a time |
| From | You have | Used here |
|---|---|---|
| Database Management Systems | SQL, keys, normalisation, ACID, transactions | Every unit — as the contrast. §1.5 and §3.9 map operation to operation |
| Web Technologies | JSON syntax, nested objects and arrays | A MongoDB document is a JSON object; Unit 1's BSON is its typed cousin |
| Python for Data Analysis and Visualization | pd.json_normalize |
How you get MongoDB documents into a DataFrame |
| Data Mining | Aggregation concepts | Unit 4's pipeline is GROUP BY with more stages |
If you learned Database Management Systems properly, you already know 70% of this course — you just have to learn where the answers differ and why.
To introduce students to the concepts of NoSQL databases and their significance compared to traditional relational databases.
To provide hands-on experience with MongoDB for performing CRUD operations, querying, and advanced data handling.
To develop skills in schema design, data modeling, and working with embedded and referenced documents.
replication, and transactions.
NOTE
Objective 4 is printed exactly as shown — the verb is missing, and the sentence is incomplete in the source document. From Course Outcome 4 it was presumably meant to read "To utilise advanced features such as indexing, aggregation, GridFS, replication, and transactions." Recorded as a finding in SYLLABUS-REVIEW.md.
What NoSQL is and what it is not; the CAP theorem and BASE against ACID; the four families — key-value, document, column and graph; RDBMS against NoSQL, and when NOT to use NoSQL; Redis, Cassandra, CouchDB and Neo4j compared; JSON and BSON; installation, the Mongo shell and Compass.
UNIT 2Database, collection and document; the BSON types and where each one bites; ObjectId and what its twelve bytes hold; schema design strategies; embedded against referenced documents; creating and dropping databases and collections.
UNIT 3insertOne and insertMany, ordered and unordered; find and the comparison, logical, element, evaluation and array operators; updateOne, updateMany and the destructive replaceOne; deleteOne and deleteMany; regular expression queries; bulk operations; array update operators and $elemMatch.
UNIT 4Embedded against normalized models and the trade-offs of each; when to normalize; one-to-one, one-to-many and many-to-many; the 16 MB limit and the unbounded array; the extended reference, computed and attribute patterns; the aggregation framework, and $match/$group as WHERE and HAVING.
UNIT 5Projection, sorting, limiting and skipping, and the order the server applies them; range pagination against skip; single field, compound, multikey and text indexes; the prefix rule and ESR; reading explain("executionStats"); aggregation pipelines and $lookup; replica sets, failover, write concern, and why an odd number of members.
PRACTICEExam-style questions with fully worked solutions.
LABEvery prescribed lab experiment, with code and expected output.