2. Índice
1. Origen de NoSQL databases
2. ACID vs BASE
3. ¿Qué es NoSQL?
4. Modelos NoSQL
a. Clave - Valor
b. Documental
c. Columnas
d. Grafos
5. Consistencia de Datos
6. Teorema CAP
7. Razones para usar
NoSQL databases
8. Referencias
3. 1. Origen de las NoSQL databases
● En los 80s destacan BD relacionales
● Problema de impedancia objeto - relacional
● Auge de Internet → Mayor escalabilidad
4. 1. Origen de las NoSQL databases
● Diversidad de tipo de datos
● Problema de escalabilidad horizontal
● Papel clave de empresas como Google y Amazon
5. 2. ACID vs BASE ACID
● Atómicas
● Coherente
● Aislado
● Duradero
BASE
● Básicamente disponibles
● Soft state
● Finalmente consistente
6. 3. ¿Qué es NoSQL?
● Son BD no relacionales
● Código abierto
● Distribuidas
● Escalables horizontalmente
● No soportan transacciones
ACID
● Concepto shema-less
7. 4. Modelos NoSQL
Martin Fowler clasifica las bases de datos NoSQL en 4 familias:
● Clave - Valor
● Documental
● De columna
● De Grafo
8. 4.a Modelo Clave - Valor
● Basado en una función hash
● Diversidad en el tipo de dato
● La agregación se implementa
con el valor
9. 4.b Modelo Documental
● Almacén de documentos
● Ventaja: consultas → recuperan porciones específicas de
documentos
● Datos → Formato JSON
● Mayor transparencia
● Agregación → documento
10. 4.c Modelo de columnas
● Basada en un modelo con dos claves:
○ Row key: representa una fila. Apunta a un conjunto de
columnas
○ Column key: identificador de una columna. Tiene → valor
● Agregación → columna
11. 4.d Modelo de grafos
● No orientadas a agregación
● Compuesta por:
○ Nodos
○ Enlaces
● Ventaja: eficiente al moverse a través
de enlaces
● Dividen los datos en partes
manejables
12. 5. Consistencia de Datos
● Característica clave en base de datos.
● Se busca solventar problemas de consistencia.
● Hay dos tipos:
○ Consistencia lógica: aparece en BD relacionales y de grafo y
ocurre en una misma máquina.
○ Consistencia de replicación: aparece en sistemas distribuidos
como BD NoSQL.
13. 6. Teorema CAP o Conjetura de Brewer
● CAP:
○ Consistencia
○ Disponibilidad
○ Tolerancia a la partición
● Premisa: en un sistema distribuido
tolerante a la partición, o es
disponible o es consistente.
14. 7. Razones para usar NoSQL databases
● Martin Fowler resume en tres las razones para usar NoSQL
databases:
○ Grandes cantidades de datos
○ Desarrollo más fácil:
■ La agregación en NoSQL es natural
■ Desaparece la impedancia objeto - relacional
○ Se “camufla” la integración de BD encapsulando
15. Referencias
● Fowler, M (2012). Introduction to NoSQL. [Conferencia GOTO].
Youtube: https://youtu.be/qI_g07C_Q5I