0% encontró este documento útil (0 votos)
48 vistas8 páginas

Introducción a Bases de Datos NoSQL

BASES DE DATOS NO RELACIONALES
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
48 vistas8 páginas

Introducción a Bases de Datos NoSQL

BASES DE DATOS NO RELACIONALES
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Lección 1: Bases de Datos No Relacionales

Objetivo:

El estudiante aprenderá qué son las bases de datos no relacionales, sus tipos y ventajas. Al final del tutorial, será
capaz de identificar cuándo y por qué se utilizan estas bases de datos, con ejercicios prácticos que refuercen los
conceptos.

1. Introducción Teórica

¿Qué son las bases de datos no relacionales?

Las bases de datos no relacionales, también conocidas como NoSQL (Not Only SQL), son sistemas de
almacenamiento de datos que no utilizan el modelo de tablas relacionales tradicional. Se diseñaron para gestionar
grandes volúmenes de datos no estructurados o semi-estructurados, distribuidos y a gran escala. Estas bases de
datos permiten una mayor flexibilidad en el manejo de datos complejos, como documentos, grafos, o pares clave-
valor.

¿Por qué surgieron las bases de datos no relacionales?

Con el crecimiento exponencial del volumen de datos (especialmente en la web y redes sociales), las bases de
datos relacionales tradicionales comenzaron a mostrar limitaciones, especialmente en términos de escalabilidad
y velocidad. Las bases de datos NoSQL fueron una respuesta a estos desafíos.

Características principales:

• Escalabilidad horizontal: Las bases de datos no relacionales están diseñadas para escalar añadiendo
más servidores en lugar de mejorar el hardware de uno solo.
• Flexibilidad en los esquemas: No requieren un esquema fijo, lo que facilita la adaptación de los datos a
medida que cambian.
• Alta disponibilidad y tolerancia a fallos: Son capaces de distribuir datos a través de diferentes nodos
para evitar puntos únicos de fallo.

Diferencias entre Bases de Datos Relacionales y No Relacionales:

Característica Relacional (SQL) No Relacional (NoSQL)


Modelo de datos Estructurado (tablas) No estructurado o semi-estructurado
Esquema Fijo (esquema rígido) Flexible (sin esquema o dinámico)
Consultas SQL (Lenguaje estructurado) Depende del tipo (consulta propia)
Escalabilidad Vertical Horizontal
Tipos de datos Normalización de datos complejos Manejo directo de datos complejos
A1: Reflexión inicial

Antes de continuar, tómate un momento para reflexionar sobre las siguientes preguntas:

1. ¿Qué experiencia tienes con bases de datos relacionales?


2. ¿Qué tipos de datos crees que podrían ser difíciles de manejar en una base de datos relacional?
3. ¿En qué situaciones imaginas que una base de datos no relacional podría ser útil?
4. ¿Por qué las bases de datos no relacionales son adecuadas para aplicaciones modernas?

2. Tipos de Bases de Datos No Relacionales

Existen diferentes tipos de bases de datos NoSQL, cada una diseñada para optimizar ciertos tipos de
operaciones y datos:

2.1. Bases de Datos de Clave-Valor

Se almacenan los datos en pares clave-valor, similar a un diccionario en programación.

• Ejemplo: Redis, DynamoDB


• Ventajas: Muy rápidas en consultas simples (búsqueda por clave).
• Caso de uso: Cachés en memoria, almacenamiento de sesiones.

2.2. Bases de Datos de Documentos

Almacenan datos en formato de documento (ej. JSON, BSON). Cada documento puede tener una estructura
diferente.

• Ejemplo: MongoDB, CouchDB


• Ventajas: Flexibilidad para manejar datos semi-estructurados.
• Caso de uso: Aplicaciones web, catálogos de productos.

2.3. Bases de Datos de Columnas

Organizan los datos por columnas en lugar de filas. Cada columna puede ser tratada de manera independiente.

• Ejemplo: Cassandra, HBase


• Ventajas: Óptimo para grandes volúmenes de datos distribuidos.
• Caso de uso: Análisis de datos masivos, registros históricos.

2.4. Bases de Datos de Grafos

Están diseñadas para gestionar relaciones complejas entre datos, como redes sociales o mapas.

• Ejemplo: Neo4j, Amazon Neptune


• Ventajas: Eficiencia en la gestión de relaciones.
• Caso de uso: Análisis de redes, motores de recomendaciones.
3. Ventajas de las Bases de Datos No Relacionales

• Escalabilidad: Permiten gestionar grandes cantidades de datos distribuidos.


• Flexibilidad: Los datos pueden ser estructurados de manera más libre, lo que permite adaptarse
rápidamente a cambios en las aplicaciones.
• Velocidad: En muchos casos, permiten tiempos de respuesta rápidos, especialmente en lectura de datos.
• Disponibilidad: Gracias a la replicación de datos, son altamente disponibles y tolerantes a fallos.

A2: Trabajo:

• ¿Qué limitaciones presentaron las bases de datos relacionales que dieron origen a las bases de datos
NoSQL?
• Explica en qué consiste la escalabilidad horizontal y cómo se aplica en bases de datos NoSQL.
• Si tuvieras que diseñar una aplicación que almacene perfiles de usuarios con campos que varían mucho
de un usuario a otro, ¿qué tipo de base de datos NoSQL elegirías y por qué?
• Menciona un caso donde una base de datos de grafos sea la mejor opción y justifica tu respuesta.

4. JSON

El formato JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos que es fácil de leer
y escribir tanto para los humanos como para las máquinas. Aunque proviene de JavaScript, JSON es
independiente del lenguaje de programación y se utiliza ampliamente en diversas aplicaciones, especialmente en
la web, para transmitir datos entre un cliente y un servidor.

4.1 Características del formato JSON:

1. Simplicidad: JSON es sencillo de leer y escribir. La estructura es similar a la de los objetos en


JavaScript, lo que facilita la comprensión.
2. Texto plano: Los datos se representan en formato de texto plano (texto legible), lo que lo hace
fácilmente transportable y compatible con diferentes sistemas.
3. Ligero: Al ser un formato minimalista, se utiliza a menudo en entornos donde la eficiencia es
importante, como en la transmisión de datos por la web.

4.2 Estructura básica de JSON:

JSON organiza los datos en pares clave-valor. Un par clave-valor consiste en una clave (nombre del campo) y
su valor correspondiente. Estos pares se encuentran entre llaves {}, y pueden contener:

• Objetos: Una colección de pares clave-valor.


• Arreglos: Listas ordenadas de valores entre corchetes [].
• Valores: Cadenas de texto, números, booleanos, arreglos u otros objetos.

Ejemplo de un objeto JSON:

Por ejemplo:
{
"nombre": "Juan",
"edad": 30,
"ciudad": "Madrid",
"hobbies": ["lectura", "natación", "viajes"],
"casado": false,
"trabajo": {
"empresa": "TechCo",
"puesto": "Desarrollador"
}
}

4.3 Elementos clave en el ejemplo:

1. Claves: "nombre", "edad", "esEmpleado", "hijos".


2. Valores:
o "Juan Pérez": Una cadena de texto.
o 30: Un número entero.
o true: Un valor booleano (verdadero/falso).
o [ ... ]: Un arreglo que contiene objetos con la información de los hijos.

4.4 Ventajas de JSON:

• Independiente del lenguaje: Puede ser generado y leído en casi cualquier lenguaje de programación.
• Fácil de parsear: Existen bibliotecas en muchos lenguajes que permiten interpretar o serializar objetos
JSON rápidamente.
• Popular en APIs: JSON es el formato preferido para enviar y recibir datos en APIs RESTful debido a
su simplicidad y facilidad de integración.

5. MongoDB
5.1 Introducción a MongoDB

MongoDB es una base de datos NoSQL orientada a documentos. En lugar de utilizar tablas y filas
como en las bases de datos relacionales, MongoDB utiliza colecciones y documentos. Los
documentos se componen de pares clave-valor y son similares a los objetos JSON.

5.2 Instalación de MongoDB

Paso 1: Descarga MongoDB Visita la página oficial de MongoDB


([Link] y descarga la versión adecuada para tu
sistema operativo.

Paso 2: Instala MongoDB Sigue las instrucciones de instalación proporcionadas para tu sistema
operativo.

[Link]

Paso 3: Verifica la instalación Abre una terminal y ejecuta:

mongod --version
Deberías ver la versión de MongoDB instalada.

5.3 Iniciar el servidor de MongoDB

Paso 1: Inicia el servidor MongoDB En la terminal, ejecuta:

mongod

Paso 2: Conéctate al servidor Abre otra terminal y ejecuta:

mongosh

Ahora estás conectado al shell de MongoDB.

[Link]

5.4 Operaciones básicas de CRUD

A. Crear (Create)

Ejemplo: Crear una base de datos y una colección

// Crear/usar una base de datos


use miBaseDeDatos

// Insertar un documento en una colección


[Link]({
nombre: "Juan",
edad: 30,
email: "juan@[Link]"
})

// Insertar múltiples documentos


[Link]([
{ nombre: "María", edad: 25, email: "maria@[Link]" },
{ nombre: "Pedro", edad: 35, email: "pedro@[Link]" }
])

B. Leer (Read)

Ejemplo: Consultar documentos

// Encontrar todos los documentos en una colección


[Link]()

// Encontrar documentos con un criterio específico


[Link]({ edad: { $gt: 30 } })

// Encontrar un solo documento


[Link]({ nombre: "Juan" })

C. Actualizar (Update)

Ejemplo: Actualizar documentos

// Actualizar un documento
[Link](
{ nombre: "Juan" },
{ $set: { edad: 31 } }
)

// Actualizar múltiples documentos


[Link](
{ edad: { $lt: 30 } },
{ $inc: { edad: 1 } }
)

D. Eliminar (Delete)

Ejemplo: Eliminar documentos

// Eliminar un documento
[Link]({ nombre: "Pedro" })

// Eliminar múltiples documentos


[Link]({ edad: { $gt: 35 } })

5. Consultas avanzadas

A. Operadores de comparación

Ejemplo: Uso de operadores de comparación

// Encontrar usuarios mayores de 25 años y menores de 35


[Link]({ edad: { $gt: 25, $lt: 35 } })

B. Operadores lógicos

Ejemplo: Uso de operadores lógicos

// Encontrar usuarios que tengan más de 30 años o se llamen "María"


[Link]({
$or: [
{ edad: { $gt: 30 } },
{ nombre: "María" }
]
})

5.5 MongoAtlas

Ver el siguiente video:


[Link]

MongoDB Atlas es un servicio de base de datos como servicio (DBaaS) completamente


administrado que te permite implementar, gestionar y escalar bases de datos MongoDB en la
nube. Atlas ofrece una solución optimizada y segura para trabajar con MongoDB en
plataformas de nube como AWS, Azure o Google Cloud, sin necesidad de administrar la
infraestructura subyacente.

Conceptos Clave:
1. Proyecto (Project): Un proyecto en MongoDB Atlas es una agrupación lógica de recursos,
como bases de datos y usuarios. Un proyecto puede contener varios clusters y se utiliza para
organizar y administrar diferentes instancias de MongoDB dentro de Atlas. En un proyecto
pueden trabajar varios equipos o usuarios, y cada uno puede tener permisos y funciones
específicos.

2. Cluster: Un cluster es un conjunto de servidores MongoDB que almacenan tus datos y


proporcionan alta disponibilidad, escalabilidad y redundancia. En MongoDB Atlas, los clusters
pueden ser replicados (para alta disponibilidad) y fragmentados (para grandes volúmenes de
datos). Existen diferentes niveles de clusters, desde gratuitos (nivel M0) hasta clusters con un
mayor rendimiento y capacidad para manejar grandes cantidades de datos.

3. Colección (Collection): Una colección es un grupo de documentos dentro de una base de


datos en MongoDB. Es equivalente a una tabla en una base de datos relacional, pero en lugar
de almacenar filas y columnas, almacena documentos. Cada colección puede contener un
conjunto de datos similares, pero no tiene un esquema rígido, lo que permite gran flexibilidad
en el almacenamiento de información.

4. Documento (Document): Un documento es la unidad básica de datos en MongoDB, que se


almacena en formato JSON (o BSON, una representación binaria de JSON). Un documento
contiene datos en forma de pares clave-valor. A diferencia de las bases de datos relacionales,
en MongoDB cada documento puede tener un esquema diferente, lo que permite una mayor
flexibilidad en la estructura de los datos.

6. Esquema de base de datos y Arquitectura

6.1 Esquema en una Base de Datos No Relacional:

Un esquema en una base de datos no relacional no está definido de manera rígida. En lugar de
imponer una estructura fija para las tablas, como ocurre en una base de datos relacional (donde
cada tabla debe tener columnas predefinidas con tipos de datos específicos), en las bases de
datos no relacionales como MongoDB, cada documento (unidad básica de datos) puede tener
una estructura diferente. No es obligatorio que todos los documentos dentro de una colección
sigan el mismo patrón de campos o tipos de datos.

Por ejemplo, en MongoDB, dentro de una misma colección, un documento podría tener los
campos "nombre" y "edad", mientras que otro documento podría tener "nombre", "edad" y
"dirección". Esto se conoce como "esquema flexible" o "esquema dinámico".

Este tipo de flexibilidad es útil para aplicaciones en las que los datos no se ajustan bien a un
modelo rígido o cuando la estructura de los datos evoluciona con el tiempo.
6.2 Arquitectura de una Base de Datos No Relacional:

La arquitectura de una base de datos no relacional, por otro lado, se refiere al diseño estructural
de cómo se distribuyen y gestionan los datos dentro del sistema. La arquitectura abarca varios
aspectos, como:

• Modelo de datos: Cómo se almacenan los datos (documentos, clave-valor, grafos, etc.).
• Distribución de los datos: Cómo se distribuyen los datos entre varios servidores o nodos
(como la replicación y fragmentación en MongoDB).
• Escalabilidad y rendimiento: Cómo el sistema gestiona grandes volúmenes de datos y
cómo escala horizontalmente agregando más nodos.
• Alta disponibilidad: Mecanismos para garantizar que el sistema siga funcionando incluso si
uno o más nodos fallan (a través de clusters y replicación, por ejemplo).

Diferencia entre Esquema y Arquitectura:

• Esquema se refiere a la estructura de los datos (cómo se organizan los documentos, qué
campos tienen y qué tipos de datos almacenan).
• Arquitectura se refiere a la estructura física y lógica del sistema en general, cómo se
distribuyen, almacenan y gestionan los datos a nivel de infraestructura

También podría gustarte