1. Tipos de bases de datos SQL
1.1. Tipos de datos
1.1.1. Cadena
1.1.1.1. Char
1.1.1.2. Varchar
1.1.1.3. Enum
1.1.1.4. Text
1.1.2. Numéricos
1.1.2.1. Int
1.1.2.2. Long
1.1.2.3. Float
1.1.2.4. Double
1.1.2.5. Boolean
1.1.3. Fecha y hora
1.1.3.1. Date
1.1.3.2. Time
1.1.3.3. Datetime
1.1.3.4. Timestamp
1.2. Características
1.2.1. Modelo de datos tabular
1.2.2. Esquema definido y rígido
1.2.3. Soporte completo para transacciones ACID
1.3. Ventajas
1.3.1. Soporta consultas avanzadas y manipulación de datos
1.3.2. Reduce la redundancia y mejora la integridad de los datos
1.3.3. Tiene soporte para funciones avanzadas como procedimientos almacenados, triggers, y vistas
1.4. Desventajas
1.4.1. Problemas de rendimiento con grandes volúmenes de datos y cargas transaccionales elevadas
1.4.2. Pueden tener un costo muy elevado
1.4.3. No están bien equipadas para manejar datos no estructurados o semiestructurados
1.5. Gestores
1.5.1. MySQL
1.5.2. PostgreSQL
1.5.3. Oracle Database
1.6. Aplicaciones
1.6.1. Sistemas de Gestión de Inventarios
1.6.2. Aplicaciones Financieras y Bancarias
1.6.3. Sistemas de Gestión Empresarial (ERP)
2. DIFERENCIAS
2.1. Las bases de datos SQL almacenan datos de manera estructurada, mientras que las NoSQL lo hacen en su formato original.
2.2. Las bases de datos SQL proporcionan una capacidad de escalar baja, en comparación con las NoSQL.
2.3. Las bases de datos SQL combinan de forma eficiente diferentes tablas para extraer información relacionadas, mientras que las NoSQL no lo permiten o son muy limitadas.
2.4. Las bases de datos NoSQL pueden hacer uso de una variedad de modelos, como clave-valor, documentos, columnas y grafos, mientras que las bases de datos SQL utilizan tablas y relaciones
3. Tipos de bases de datos NOSQL
3.1. Bases de datos orientadas a grafos
3.1.1. Caracteristicas
3.1.1.1. Destacar en encontrar rutas, determinar nodos influyentes, analizar conectividad y evaluar el estado de la red o comunidad
3.1.1.2. Representar la información como nodos y relaciones en un grafo
3.1.2. Aplicaciones
3.1.2.1. Redes Sociales
3.1.2.2. Análisis de Fraude
3.1.2.3. Recomendaciones de Productos y Contenidos
3.1.3. Herramientas
3.1.3.1. Neo4
3.1.3.2. OrientDB
3.1.3.3. ArangoDB
3.1.4. Ventajas
3.1.4.1. permite detectar conexiones distantes o analizar datos en función de aspectos como la fuerza o la calidad de la relación
3.1.4.2. permiten explorar y descubrir conexiones y patrones en redes sociales, IdC, big data, almacenes de datos y también datos de transacciones complejas
3.1.5. Desventajas
3.1.5.1. A medida que crece la complejidad de los datos y las relaciones, la gestión y optimización de la base de datos pueden volverse más complejas
3.1.5.2. Las consultas que no están pensadas para investigar relaciones entre nodos pueden ser menos eficientes
3.1.5.3. La distribución en múltiples nodos puede ser complicada y requerir técnicas de partición y replicación
3.2. Base de datos basado en columnas
3.2.1. Caracteristicas
3.2.1.1. Almacena datos en diferentes formatos permitiendo la estructuracion de la información
3.2.1.2. Acelera el proceso de extracción de datos y facilita la búsqueda y recuperación de datos
3.2.1.3. Permiten la integración de datos
3.2.2. Aplicaciones
3.2.2.1. Sistemas de Recomendación
3.2.2.2. Almacenamiento y Análisis de Datos Financieros
3.2.2.3. Análisis de Big Data
3.2.3. Herramientas
3.2.3.1. Amazon Redshift
3.2.3.2. MariaDB-ColumnStore
3.2.3.3. Apache Cassandra
3.2.4. Ventajas
3.2.4.1. Compresión de la información
3.2.4.2. Escalabilidad
3.2.4.3. Velocidad de carga
3.2.5. Desventajas
3.2.5.1. Rendimiento en Transacciones
3.2.5.2. Costos de Almacenamiento
3.2.5.3. Actualizaciones y Borrados Ineficientes
3.3. Bases de datos documentales
3.3.1. Caracteristicas
3.3.1.1. utilizan documentos para el almacenamiento de todos los registros y los datos asociados a ellos
3.3.1.2. Son tipo de bases de datos no relacionales por lo que la información no está contenida en tablas
3.3.1.3. Son capaces de almacenar información en diferentes formatos sin una estructura definida
3.3.2. Aplicaciones
3.3.2.1. Aplicaciones Móviles
3.3.2.2. Sistemas de Gestión de Datos de Usuario
3.3.2.3. Aplicaciones de Chat y Mensajería
3.3.3. Herramientas
3.3.3.1. Couchbase
3.3.3.2. MongoDB
3.3.3.3. Azure Cosmos
3.3.4. Ventajas
3.3.4.1. Permiten almacenar y consultar información semiestructurada sin una estructura definida
3.3.4.2. Simplifican las tareas de adición o actualización de datos
3.3.4.3. Tienen una gran escalabilidad
3.3.5. Desventajas
3.3.5.1. No utilizan el lenguaje SQL como lenguaje principal de consulta
3.3.5.2. No siempre pueden garantizar las propiedades ACID de atomicidad, consistencia, integridad y durabilidad
3.3.5.3. Los índices pueden ocupar mucha memoria RAM
4. Comparación
4.1. Base de datos SQL
4.1.1. Relacional (tablas con filas y columnas)
4.1.2. Estructurado, rígido y predefinido
4.1.3. Escalabilidad generalmente vertical
4.1.4. Consistencia ACID (Atomicidad, consistencia, aislamiento, durabilidad)
4.1.5. Lenguaje SQL
4.1.6. Tablas con relaciones predefinidas
4.1.7. Ideal para consultas complejas
4.1.8. Gestores: MySQL, PostgreSQL, Oracle
4.2. Base de datos NoSQL
4.2.1. No relacional (documentos, grafos, columnas, clave-valor)
4.2.2. Flexible y dinámico
4.2.3. Escalabilidad generalmente horizontal
4.2.4. Consistencia ajustable
4.2.5. Lenguaje dependiendo el gestor de base de datos
4.2.6. Documentos, grafos, pares, clave-valor, datos en columnas
4.2.7. Ideal para operaciones de gran volumen
4.2.8. Gestores: MongoDB, Cassandra, Neo4j