Gülçin Yıldırım Jelínek
Staff Database Engineer @Xata, Main Organizer @Prague PostgreSQL Meetup, MSc, Computer and Systems Engineering @ Tallinn University of Technology, BSc, Applied Mathematics @Yildiz Technical University
Petr Jelínek
28th of Oct 2016
TTÜ Geeky Weekly
RDBMS
PostgreSQL, Oracle, MySQL, MSSQL
NoSQL
MongoDB, Cassandra, RocksDB
NewSQL
Vertica, VoltDB
Other specialized
Hadoop, Elastic search, etc
Durability: once data is written it will always be there, across crashes and similar
Basically Available: "always" available
Soft-state: the state of the system may change even without client activity
Eventual Consistency: the system will become consistent over time
Atomic: all commands in transaction either succeed or fail, there is no in between state preserved
Consistent: all committed data is consisted according to the rules, constraints, etc that are defined in the DB
Isolation: provides control over what data other clients see
user_id | city | country |
---|---|---|
1 | London | UK |
2 | Oxford | UK |
id | name | |
---|---|---|
1 | Simon | simon@email.com |
user
address
{
"id": 1
"name": "Simon"
"email":"simon@email.com"
"address":
[
{
"city": "London"
"country": "UK"
},
{
"city": "Oxford"
"country": "UK"
}
]
}
SELECT * FROM users WHERE id = 1;
SELECT department, role, gender, count(*)
FROM employees
GROUP BY CUBE (department, role, gender);
WITH RECURSIVE ...
redis.get(1)
db.bios.find( { _id: 5 } )
db.bios.find(
{
awards: {
$elemMatch: {
award: "Turing Award",
year: { $gt: 1980 }
}
}
}
)
Specialised type of database optimized for storing graphs
Do you know what you are doing?
No: use RDBMS
Yes: you don't need me to tell you
Key-Value store (Redis)
Caching
Graph databases (Neo4j)
Social relations (friend of a friend), network maps
Wide-column store (Cassandra)
When you need to easily scale writes beyond what
single server can do
Document store (?)
Volatile data with dynamic structure (web sessions,
chat, etc)
By Gülçin Yıldırım Jelínek
This presentation is prepared for TTÜ Geeky Weekly Geek Talk @ 28 October 2016, Tallinn
Staff Database Engineer @Xata, Main Organizer @Prague PostgreSQL Meetup, MSc, Computer and Systems Engineering @ Tallinn University of Technology, BSc, Applied Mathematics @Yildiz Technical University