SlideShare ist ein Scribd-Unternehmen logo
Jorge Ortiz-Fuentes
Developer Advocate, MongoDB
TALLER
Los mejores consejos para migrar
de RDBMS a MongoDB
Diego Freniche
Developer Advocate, MongoDB
https://www.linkedin.com/in/jorgeortiz/ https://www.linkedin.com/in/dfreniche/
Agenda
La gran migración: ¿por qué Amazon eligió
NoSQL?
Abriendo un nuevo camino - Encontrar el
camino hacia la libertad de la base de datos
Poniéndolo en marcha - Modelado de
relaciones en NoSQL
Ejecutando el plan
La Gran
Migración
¿Por qué
NoSQL?
“El cambio comienza al final de tu zona
de confort”.
Roy T Bennett
Amazon se fundó en 1995 y se
basó en servicios monolíticos.
Empresa de 5 millardos de
dólares cuando SOA se convirtió
en un estándar interno en 2005.
En 2018 problemas de escala:
● 3K instancias de Oracle
● 10K Servicios de
aplicaciones
● 25K Desarrolladores
El costo de RDBMS fue una gran
línea de pedido
● La licencia de Oracle más
grande del mundo
● Alto TCO de infraestructura
¿Alternativas?
Abriendo un
nuevo
camino
“La historia se repite porque nadie
escucha la primera vez”.
Erik Qualman
La ley de Moore ya no es el salvavidas
El rendimiento de CPU se aplana
El costo del almacenamiento
sigue bajando
Esto no es nuevo…
“La simplicidad de la representación matricial, que se
vuelve factible cuando todas las relaciones se expresan
en forma normal, no sólo es ventajosa para el
almacenamiento, sino también para la comunicación
de datos a gran escala entre sistemas que utilizan
representaciones de datos muy diferentes”.
“Si las fuertes redundancias en los resultados (named
set) se reflejan directamente en redundancias fuertes en
el conjunto almacenado (o si se introducen otras
redundancias fuertes en el conjunto almacenado),
entonces, en general, el espacio de almacenamiento
adicional y el tiempo de actualización se consumen
con una caída potencial del tiempo de consulta en
algunos casos y de carga en las unidades centrales
de proceso.
“Idealmente, la variedad de representaciones de datos
permitidas debería ser adecuada para cubrir el espectro de
requisitos de rendimiento del conjunto total de instalaciones.
Una variedad demasiado grande conduce a costos
generales innecesarios en el almacenamiento y la
reinterpretación continua de las descripciones de las
estructuras actualmente en uso”.
A Relational Model of Data for Large
Shared Data Banks
Edgar Frank "Ted" Codd
19 de agosto de 1923–18 de abril de
2003
Sobre la normalización: Sobre la desnormalización:
Sobre la definición de un ERD:
¿Cuándo usar NoSQL?
Optimizado para almacenar Optimizado para la computación
Normalizado/relacional Desnormalizado/Jerárquico
Consultas a medida Vistas instanciadas
Escalado vertical Escalado horizontal
Bueno para OLAP Pensado para OLTP a escala
SQL NoSQL
Poniéndolo
en marcha
“Los datos son como la basura. Más
vale que sepas lo que vas a hacer con
ella antes de recogerla.”
Mark Twain
EN DETALLE
Los patrones de
acceso dirigen el
costo
En Amazon en 2017, el 70% de las
consultas accedían a una única fila de
datos
Un 20% adicional accedía a un rango de
filas de una sola tabla
El 50% de la infraestructura se dedicaba
al último 10%
Las relaciones lo son todo
Gestión documental Control de procesos
Redes sociales
Data lake
Monitorización de IT
Relacional
Tabla Colección
Documentos
Fila Documento
Columna Campo
Modelado de Datos con MongoDB
● Polimorfismo
● Incrustado
● Referencias
Modelado de Datos con MongoDB
● Polimorfismo
● Incrustado
● Referencias
Poli = Muchos
Morf(ismo) = Formas
Muchas formas
Modelado de Datos con MongoDB
● Polimorfismo
● Incrustado
● Referencias
Documentos dentro de
Documentos (dentro de
Documentos)
Modelado de Datos con MongoDB
● Polimorfismo
● Incrustado
● Referencias
Un valor hace referencia
a un par clave/valor en
otro documento
Ejecutando
el Plan
Modelado de
Datos
Relaciones Comunes
1:1 1:M N:M
Uno a Uno Uno a Muchos Muchos a Muchos
Movies
TITLE
DIRECTOR
GENRE(S)
WRITERS(S)
CAST
RATING
RUNTIME
Modelando relaciones 1:1
id title
573 Star Wars: Episode IV – A New Hope
Movies Table
movie_id director runtime
573 George Lucas 121
Movie Details Table
Modelando relaciones 1:M
id title
573 Star Wars: Episode IV – A New Hope
Movies Table
movie_id actor character
573 Mark Hamill Luke Skywalker
573 Harrison Ford Han Solo
573 Carrie Fisher Princess Leia Organa
Cast Table
Modelando relaciones M:M
id title
573 Star Wars: Episode IV – A New Hope
Movies Table
id location
106 Yuma, Arizona
movie_id location_id
573 106
Locations Table
Movie_Locations Table
MongoDB Relational Migrator
RELATIONAL
MIGRATOR
Docker Compose
Demo
Conclusiones
● NoSQL no significa no relacional
● El ERD sigue siendo importante
● La eficiencia de RDBMS está
disminuyendo
● NoSQL es ideal para la mayoría
de las cargas de trabajo de OLTP
● La API de MongoDB también es
compatible con OLAP
Gracias por su
tiempo

Weitere ähnliche Inhalte

Ähnlich wie Los mejores consejos para migrar de RDBMS a MongoDB.pptx.pdf

Ähnlich wie Los mejores consejos para migrar de RDBMS a MongoDB.pptx.pdf (20)

Modelado de datos
Modelado de datosModelado de datos
Modelado de datos
 
Comparación SMBD
Comparación SMBDComparación SMBD
Comparación SMBD
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
 
Actividad4 garibay blanca
Actividad4 garibay blancaActividad4 garibay blanca
Actividad4 garibay blanca
 
Smbd
SmbdSmbd
Smbd
 
Cedes cloud 2013 ronald vargas quesada
Cedes cloud 2013 ronald vargas quesadaCedes cloud 2013 ronald vargas quesada
Cedes cloud 2013 ronald vargas quesada
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Act4 base datos_reyes_rosalba
Act4 base datos_reyes_rosalbaAct4 base datos_reyes_rosalba
Act4 base datos_reyes_rosalba
 
Big Data - Desarrollando soluciones efectivas
Big Data - Desarrollando soluciones efectivasBig Data - Desarrollando soluciones efectivas
Big Data - Desarrollando soluciones efectivas
 
Base de datos
Base de datosBase de datos
Base de datos
 
Laboratorio 3 formato ieee "Tecnologias de Big Data"
Laboratorio 3 formato ieee "Tecnologias de Big Data"Laboratorio 3 formato ieee "Tecnologias de Big Data"
Laboratorio 3 formato ieee "Tecnologias de Big Data"
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
NoSql introducción -Innova4j
NoSql introducción -Innova4jNoSql introducción -Innova4j
NoSql introducción -Innova4j
 
Sistema de Administración de base de datos
Sistema de Administración de base de datosSistema de Administración de base de datos
Sistema de Administración de base de datos
 
Actividad de aprendizaje 4
Actividad de aprendizaje 4Actividad de aprendizaje 4
Actividad de aprendizaje 4
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 
MongoDB
MongoDBMongoDB
MongoDB
 
Basede datos nlsg
Basede datos nlsgBasede datos nlsg
Basede datos nlsg
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Diseño de una base de datos
Diseño de una base de datosDiseño de una base de datos
Diseño de una base de datos
 

Mehr von Diego Freniche Brito

From Mobile to MongoDB: Store your app's data using Realm
From Mobile to MongoDB: Store your app's data using RealmFrom Mobile to MongoDB: Store your app's data using Realm
From Mobile to MongoDB: Store your app's data using RealmDiego Freniche Brito
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using SwiftDiego Freniche Brito
 
Functional Programming for Busy Object Oriented Programmers
Functional Programming for Busy Object Oriented ProgrammersFunctional Programming for Busy Object Oriented Programmers
Functional Programming for Busy Object Oriented ProgrammersDiego Freniche Brito
 
Cocoa pods iOSDevUK 14 talk: managing your libraries
Cocoa pods iOSDevUK 14 talk: managing your librariesCocoa pods iOSDevUK 14 talk: managing your libraries
Cocoa pods iOSDevUK 14 talk: managing your librariesDiego Freniche Brito
 
Swift as a scripting language iOSDevUK14 Lightning talk
Swift as a scripting language iOSDevUK14 Lightning talkSwift as a scripting language iOSDevUK14 Lightning talk
Swift as a scripting language iOSDevUK14 Lightning talkDiego Freniche Brito
 
Charla XVII Beta Beers Sevilla: ¿Ágil? Como la rodilla de un click
Charla XVII Beta Beers Sevilla: ¿Ágil? Como la rodilla de un clickCharla XVII Beta Beers Sevilla: ¿Ágil? Como la rodilla de un click
Charla XVII Beta Beers Sevilla: ¿Ágil? Como la rodilla de un clickDiego Freniche Brito
 
Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14Diego Freniche Brito
 
Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Diego Freniche Brito
 
Core data basic Workshop slides NSSpain 2013
Core data basic Workshop slides NSSpain 2013Core data basic Workshop slides NSSpain 2013
Core data basic Workshop slides NSSpain 2013Diego Freniche Brito
 

Mehr von Diego Freniche Brito (9)

From Mobile to MongoDB: Store your app's data using Realm
From Mobile to MongoDB: Store your app's data using RealmFrom Mobile to MongoDB: Store your app's data using Realm
From Mobile to MongoDB: Store your app's data using Realm
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
 
Functional Programming for Busy Object Oriented Programmers
Functional Programming for Busy Object Oriented ProgrammersFunctional Programming for Busy Object Oriented Programmers
Functional Programming for Busy Object Oriented Programmers
 
Cocoa pods iOSDevUK 14 talk: managing your libraries
Cocoa pods iOSDevUK 14 talk: managing your librariesCocoa pods iOSDevUK 14 talk: managing your libraries
Cocoa pods iOSDevUK 14 talk: managing your libraries
 
Swift as a scripting language iOSDevUK14 Lightning talk
Swift as a scripting language iOSDevUK14 Lightning talkSwift as a scripting language iOSDevUK14 Lightning talk
Swift as a scripting language iOSDevUK14 Lightning talk
 
Charla XVII Beta Beers Sevilla: ¿Ágil? Como la rodilla de un click
Charla XVII Beta Beers Sevilla: ¿Ágil? Como la rodilla de un clickCharla XVII Beta Beers Sevilla: ¿Ágil? Como la rodilla de un click
Charla XVII Beta Beers Sevilla: ¿Ágil? Como la rodilla de un click
 
Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14
 
Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013
 
Core data basic Workshop slides NSSpain 2013
Core data basic Workshop slides NSSpain 2013Core data basic Workshop slides NSSpain 2013
Core data basic Workshop slides NSSpain 2013
 

Kürzlich hochgeladen

HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdfIsabelHuairaGarma
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfcj3806354
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf7adelosriosarangojua
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusraquelariza02
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfjjfch3110
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024DanielErazoMedina
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiegoCampos433849
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.saravalentinat22
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxLeidyfuentes19
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respetocdraco
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Luis Fernando Uribe Villamil
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfAlejandraCasallas7
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaFernando Villares
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerRobertoCarrancioFern
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareAndres Avila
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxencinasm992
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx44652726
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
 

Kürzlich hochgeladen (20)

HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 

Los mejores consejos para migrar de RDBMS a MongoDB.pptx.pdf

  • 1. Jorge Ortiz-Fuentes Developer Advocate, MongoDB TALLER Los mejores consejos para migrar de RDBMS a MongoDB Diego Freniche Developer Advocate, MongoDB https://www.linkedin.com/in/jorgeortiz/ https://www.linkedin.com/in/dfreniche/
  • 2. Agenda La gran migración: ¿por qué Amazon eligió NoSQL? Abriendo un nuevo camino - Encontrar el camino hacia la libertad de la base de datos Poniéndolo en marcha - Modelado de relaciones en NoSQL Ejecutando el plan
  • 3. La Gran Migración ¿Por qué NoSQL? “El cambio comienza al final de tu zona de confort”. Roy T Bennett
  • 4. Amazon se fundó en 1995 y se basó en servicios monolíticos. Empresa de 5 millardos de dólares cuando SOA se convirtió en un estándar interno en 2005. En 2018 problemas de escala: ● 3K instancias de Oracle ● 10K Servicios de aplicaciones ● 25K Desarrolladores El costo de RDBMS fue una gran línea de pedido ● La licencia de Oracle más grande del mundo ● Alto TCO de infraestructura ¿Alternativas?
  • 5. Abriendo un nuevo camino “La historia se repite porque nadie escucha la primera vez”. Erik Qualman
  • 6. La ley de Moore ya no es el salvavidas El rendimiento de CPU se aplana El costo del almacenamiento sigue bajando
  • 7. Esto no es nuevo… “La simplicidad de la representación matricial, que se vuelve factible cuando todas las relaciones se expresan en forma normal, no sólo es ventajosa para el almacenamiento, sino también para la comunicación de datos a gran escala entre sistemas que utilizan representaciones de datos muy diferentes”. “Si las fuertes redundancias en los resultados (named set) se reflejan directamente en redundancias fuertes en el conjunto almacenado (o si se introducen otras redundancias fuertes en el conjunto almacenado), entonces, en general, el espacio de almacenamiento adicional y el tiempo de actualización se consumen con una caída potencial del tiempo de consulta en algunos casos y de carga en las unidades centrales de proceso. “Idealmente, la variedad de representaciones de datos permitidas debería ser adecuada para cubrir el espectro de requisitos de rendimiento del conjunto total de instalaciones. Una variedad demasiado grande conduce a costos generales innecesarios en el almacenamiento y la reinterpretación continua de las descripciones de las estructuras actualmente en uso”. A Relational Model of Data for Large Shared Data Banks Edgar Frank "Ted" Codd 19 de agosto de 1923–18 de abril de 2003 Sobre la normalización: Sobre la desnormalización: Sobre la definición de un ERD:
  • 8. ¿Cuándo usar NoSQL? Optimizado para almacenar Optimizado para la computación Normalizado/relacional Desnormalizado/Jerárquico Consultas a medida Vistas instanciadas Escalado vertical Escalado horizontal Bueno para OLAP Pensado para OLTP a escala SQL NoSQL
  • 9. Poniéndolo en marcha “Los datos son como la basura. Más vale que sepas lo que vas a hacer con ella antes de recogerla.” Mark Twain
  • 10. EN DETALLE Los patrones de acceso dirigen el costo En Amazon en 2017, el 70% de las consultas accedían a una única fila de datos Un 20% adicional accedía a un rango de filas de una sola tabla El 50% de la infraestructura se dedicaba al último 10%
  • 11. Las relaciones lo son todo Gestión documental Control de procesos Redes sociales Data lake Monitorización de IT
  • 13. Modelado de Datos con MongoDB ● Polimorfismo ● Incrustado ● Referencias
  • 14. Modelado de Datos con MongoDB ● Polimorfismo ● Incrustado ● Referencias Poli = Muchos Morf(ismo) = Formas Muchas formas
  • 15. Modelado de Datos con MongoDB ● Polimorfismo ● Incrustado ● Referencias Documentos dentro de Documentos (dentro de Documentos)
  • 16. Modelado de Datos con MongoDB ● Polimorfismo ● Incrustado ● Referencias Un valor hace referencia a un par clave/valor en otro documento
  • 18. Modelado de Datos Relaciones Comunes 1:1 1:M N:M Uno a Uno Uno a Muchos Muchos a Muchos
  • 20. Modelando relaciones 1:1 id title 573 Star Wars: Episode IV – A New Hope Movies Table movie_id director runtime 573 George Lucas 121 Movie Details Table
  • 21. Modelando relaciones 1:M id title 573 Star Wars: Episode IV – A New Hope Movies Table movie_id actor character 573 Mark Hamill Luke Skywalker 573 Harrison Ford Han Solo 573 Carrie Fisher Princess Leia Organa Cast Table
  • 22. Modelando relaciones M:M id title 573 Star Wars: Episode IV – A New Hope Movies Table id location 106 Yuma, Arizona movie_id location_id 573 106 Locations Table Movie_Locations Table
  • 23.
  • 27. Demo
  • 28. Conclusiones ● NoSQL no significa no relacional ● El ERD sigue siendo importante ● La eficiencia de RDBMS está disminuyendo ● NoSQL es ideal para la mayoría de las cargas de trabajo de OLTP ● La API de MongoDB también es compatible con OLAP
  • 29.