Table of Contents

Homework Assignments

Submissions

General homework assignment

Develop an application that uses multiple databases for different tasks within a project (polyglot persistence).

The project aims to demonstrate how different database systems can work together effectively to provide high performance, scalability, and usability.

HW0: Topic selection

1. Choose your distinct topic.

:!: Example: The online store will specialize in custom furniture, allowing users to select designs, materials, and dimensions. The platform will have various features such as product inventory, user sessions, shopping carts, purchase history, activity logs, and personalized recommendations.

2. Describe the subject area - tell about your project, its participants, and the tasks inside the project.

3. Write the functional requirements for the project.

4. Separate the parts of your project so that each of the listed database systems (PostgreSQL, Redis, MongoDB, Cassandra, Neo4j) will be used at least once.

:!: Example:

4. Write the arguments for each choice.

HW1: Relational database (PostgreSQL)

1. Create the first block of the project. It must be a relational database. Create ER-model and tables.

2. Fill these tables with data. The data must be realistic.

3. Create indexes to speed up common queries.

4. Extra: use triggers for insert, update, etc.

5. Extra: use JSON types and write queries to process data stored in a JSON object (use @> and →).

Review the further homework and prepare data suitable for all of them. The main table must have over 50 rows.

HW2: Redis

* Execution:

HW3: MongoDB

mongosh --port 42222 -u login -p password database script.js

HW4: Cassandra

Error from server: code=1300 [Replica(s) failed to execute read]...

cqlsh -u $username -p $password -k $KeyspaceName -f $ScriptFile

HW5: Neo4j

HW6: MapReduce

Bonus assignment #1 (BA1)

Analysis of Sharding and Replication Strategies in NoSQL Databases (+3 p.)

Bonus assignment #2 (BA2)

Multi-Database Integration with Redis (+2 p.)

Individual Topics