Search
sshfs $USERNAME@nosql.felk.cvut.cz:/home/$USERNAME /mnt/dbs2-server
/mnt/dbs2-server/$PATH_TO_PROJECT
sudo umount /mnt/dbs2-server
sftp://$USERNAME@nosql.felk.cvut.cz/
sftp
WinSCP
~/assignments/name/
postgresql
mapreduce
redis
cassandra
mongodb
neo4j
ssh
PuTTY
~/assignments/
sudo submit_execute name
name
prokoyul@fel.cvut.cz
~/submissions/
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.
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.
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.
.sql
nosql.felk.cvut.cz
~/assignments/postgresql/
* Execution:
cat $ScriptFile | redis-cli -p $Port -a $Password
$ScriptFile
$Password
ssh -L $Port:127.0.0.1:$Port $Username@nosql.felk.cvut.cz
redis-cli -h 127.0.0.1 -p $Port -a $Password
createCollection
insertOne
insertMany
upsert
$and
$or
$not
$elemMatch
sort
$match
$group
$sort
$project
$addFields
$skip
$limit
$sum
$avg
$count
$min
$max
$first
$last
lookup
export LC_ALL=C
f24_login
USE database
db.getSiblingDB('database')
find
aggregate
db.collection.find().forEach(printjson);
semicolon ;
script.js
mongosh --port 42222 -u login -p password database script.js
$login
$database
$password
$file
tuple
list
set
map
WHERE
ORDER BY
ALLOW FILTERING
USE
Error from server: code=1300 [Replica(s) failed to execute read]...
cqlsh -u $username -p $password -k $KeyspaceName -f $ScriptFile
$KeyspaceName
f241_login
script.cql
CREATE
MATCH
OPTIONAL MATCH
RETURN
WITH
EXISTS
IN
CONTAINS
STARTS WITH
size()
collect()
head()
last()
tail()
reduce()
CASE
DELETE
SET
REMOVE
DETACH
cypher-shell -f $ScriptFile
queries.cypher
WordCount.java
Map
Reduce
Combine
MapReduce.java
MapReduce
hadoop-common-3.1.1.jar
hadoop-mapreduce-client-core-3.1.1.jar
/user/f24_login/
Analysis of Sharding and Replication Strategies in NoSQL Databases (+3 p.)
Multi-Database Integration with Redis (+2 p.)