Introducción a las bases de datos Mobile
Clase 19 de 43 • Curso de Desarrollo de Aplicaciones iOS 2018
Las bases de datos son la parte más importante de la aplicación ya que pueden hacer que tu aplicación sea más rápida si tiene la selección correcta y, por otro lado, también puede hacer que tu aplicación sea más lenta si tiene una selección incorrecta de la base de datos de acuerdo con el requisito de solicitud.
¿Por qué las bases de datos son el elemento más importante de una aplicación?
Las bases de datos son:
-
Limitadas en tamaño.
-
Limitadas en recursos.
-
Su proceso de sincronización es diferente.
Por defecto iOS usa CoreData una base de datos relacional, pero no es querida por la comunidad de desarrolladores pues su uso se torna complejo y estricto.
Sin embargo, también existen muchas otras opciones para crear bases de datos, estas son las más populares:
- Firestore.
- Realm.
- Sqlite.
¿En qué se diferencia cada una y cuáles son sus ventajas?
Firestore
Es una base de datos reciente no relacional creada por Firebase que sustituye todo el proceso de sincronización entre dispositivos y la hace mucho más eficiente.
Pros
- Sincronización Realm Time.
- Sincronización con Android.
- Facilidad de uso.
- No es relacional.
- Mantenimiento de Google.
Contras
- Costo.
- No es open source.
Realm
Es quizás una de las opciones más usadas en el mercado, es una base de datos relacional muy robusta, ya que fue construida directamente en C++ y adoptada en cada lenguaje además de esto tiene su propio sistema de ORM (Object Relational Model)
Pros
- Sincronización Realm Time.
- Sincronización con Android.
- La forma de hacer query no es tradicional.
- Pertenece a la comunidad open source.
- Realiza mappeo automático de modelos.
Contras
- Migraciones.
- Tamaño.
- Acoplamiento con Objective C.
SQlite
Es una de las más usadas pues es básicamente una base de datos tradicional SQL tipo Mysql o Postgres metida en tu teléfono tiene limitaciones pues es una versión light, pero su sintaxis SQL no cambia.
Pros
- Curva de aprendizaje.
- Tamaño.
Contras
- No hay sincronización entre dispositivos.
- Alta complejidad de uso a grandes volúmenes.
Pero realmente ¿Cómo elegir la base de datos correcta?
He aquí algunas de las preguntas que debemos hacernos a la hora de elegir tu base de datos mobile:
- ¿Cuál es la estructura de los datos?
- ¿Necesitará una solución de modelado de datos flexible?
- ¿Qué plataformas cliente soporta?
- ¿Cuánta seguridad de datos necesitará?
- ¿Cómo resolverá los conflictos de datos?
- ¿Necesita la capacidad de controlar cómo se sincroniza el sistema?
Cada base de datos tiene ventajas y desventajas en su uso, para nuestro caso práctico vamos a usar Firestore una de las preferidas por muchos por su integración directa con Firebase.