Presentado por Luis Porras / @lporras16
Software Engineer en RunaHR
Programador Web Senior
Un lenguaje de consultas declarativo
function getSharks() {
var sharks = [];
for (var i = 0; i < animals.length; i++) {
if (animals[i].family === "Sharks") {
sharks.push(animals[i]);
}
}
return sharks;
}
select email, first_name, last_name
from customers
where city = "Quincy"
first_name | last_name | |
---|---|---|
jadams@usa.gov | Jhon | Adams |
customer_id | oder_date | order_amount |
---|---|---|
2 | 3/14/1760 | $78.50 |
4 | 9/03/1790 | $65.50 |
select customer_id, order_date, order_amount
from customers
join orders
on customers.customer_id = orders.customer_id
where customer_id = 3
Para escalar una aplicación necesitas hacer tu servidor más..
Grande
Grande
Grande
Escalamiento Vertical
Grande
Grande
Grande
Escalamiento Horizontal
#NoSQL
Not Only SQL
Tienes una estructura lógica en tu aplicación...
y cuando la vas a guardar en la DB...
queda repartida en diferentes tablas...
y esto require de capas de abstraccion intermedias, los populares ORM
Existen 4 diferentes tipos de Modelo de Datos NoSQL
467742
3fds-2d
{
"_id": "507f191e810c19729de860ea",
"nombre": "Luis Alfredo Porras Páez",
"twitter": "@lporras16",
"pais": "Colombia",
"lenguajes": ["español", "inglés"]
}
Se pueden pensar como un almacen de componentes o agregados.
Aggregate Oriented Databases
Los componentes ayudan a resolver los 2 problemas que tienen las RDBMS
Ahora se puede tener la misma estructura
de un componente tanto en la aplicación como en la base de datos
Ahora la información de un componente o un bloque de componentes puede estar distribuida en cada nodo del cluster
MATCH x = shortestPath((o:City)-[*]-(a:Attraction))
WHERE o.name = "Vaniville Town" AND a.name = "Pokemon Center"
WITH NODES(x) AS stops
MATCH (p:Pokemon)-[:CAUGHT_IN]->(r:Route)
WHERE r IN stops
RETURN r.name AS `Route`, COLLECT(p.name) AS `Wild Pokemon`
ORDER BY r.name
tomacity - Una operación consiste en una serie de pasos en los que se ejecutan todos o ninguno
onsistency - La data pasa de un estado válido a otro
solation - Las transcacciones no se afectan entre sí.
urability - Persistencia
Básicamente disponible, Soft State, Eventual Consistency (BASE):
Es una filosofía de diseño de sistemas de datos que valora la disponibilidad sobre la consistencia de las operaciones.
BASE se desarrolló como una alternativa para producir arquitecturas de datos más escalábles.
Consistency
Availability
Partition Tolerance
R
D
B
M
S
NoSQL
Persistencia Poliglota
Sesión de Usuarios
redis
Datos Financieros
MySQL
Recomendaciones
Neo4J
Cat. Productos
MongoDB
Analíticas
Cassandra
Reportes
RDBMS + Memcached