Presentado por Luis Porras / @lporras16
Software Engineer at Up TradeÂ
Programador
, Speaker
#!/bin/bash
db_set () {
echo "$1,$2" >> database
}
db_get () {
grep "^$1," database | sed -e "s/^$1,//" | tail -n 1
}
db_set 123456, '{"nombre": "Barranquilla", "atracciones": ["Carnaval", "Bocas de Ceniza"]}'
db_set 42, '{"nombre": "Santiago de Chile", "atracciones": ["Cerro San Cristobal", "Mercado Central"]}'
db_get 42
{"nombre": "Santiago de Chile", "atracciones": ["Cerro San Cristobal", "Mercado Central"]}
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 - La regla del todo o nada
onsistency - La data pasa de un estado válido a otro
solation - Las transcacciones no se afectan entre sÃ.
urability - Persistencia
Consistency
Availability
Partition Tolerance
R
D
B
M
S
Â
Â
Persistencia Poliglota
Sesión de Usuarios
redis
Datos Financieros
MySQL
Recomendaciones
Neo4J
Cat. Productos
MongoDBÂ
AnalÃticas
Cassandra
Reportes
RDBMS + Memcached
Aprendan Inglés