Está en la página 1de 17

ESCUELA DE INGENIERÍA EN COMPUTACIÓN

TÉCNICO EN INGENIRÍA DE DESARROLLO DE SOFTWARE

MANUAL PRÁCTICO

DISEÑO DE BASES DE DATOS NO RELACIONALES

Nombre del Participante: ____________________________________

Ciclo: ____________
ÍNDICE

INTRODUCCIÓN …………………………………………………………………………… 3

UNIDAD I …………………………………………………………………………………… 4

ESQUEMA DE UNIDAD I …………………………………………………………………… 5

EVALUACIÓN DIAGNÓSTICA …………………………………………………………… 7

EVALUACIÓN FINAL …………………………………………………………………… 8

PRACTICA 1 …………………………………………………………………………… 10

PRACTICA 2 …………………………………………………………………………… 18

PRACTICA 3 …………………………………………………………………………… x

PRACTICA 4 …………………………………………………………………………… x

PRACTICA 5 …………………………………………………………………………… x

PRACTICA 6 …………………………………………………………………………… x

PRACTICA 7 …………………………………………………………………………… x

PRACTICA 8 …………………………………………………………………………… x

PRACTICA 9 …………………………………………………………………………… x

Técnico en ingeniería de desarrollo de software Page 2


INTRODUCCIÓN

Un técnico en Ingeniería de Desarrollo de Software, para desempeñarse dentro de una


empresa debe tener las competencias elementales para diseñar bases de datos no
relacionales que almacenen grandes volúmenes de datos provenientes de fuentes no
convencionales. Poder procesar esos datos para generar información pertinente para los
tomadores de decisiones. En este módulo se aprenderá a diseñar y manipular base de datos
no relacionales para generar información importante para las empresas, todo esto bajo
normas y estándares vigentes en la industria del software.

El módulo está compuesto de dos unidades de aprendizaje, las cuales son:


1. Diseño de bases de datos NoSQL, para el almacenamiento masivo de datos con base a
requerimientos del usuario.
2. Creación de CRUD con bases de datos NoSQL, para el mantenimiento de los datos
conforme a las necesidades del usuario.

El módulo consta de 80 horas durante las cuales se aplicarán diferentes metodologías


didácticas, permitiendo a los estudiantes participar activamente durante todo el proceso de
aprendizaje y con ello favorecer el logro de las competencias necesarias para un óptimo
desempeño en su
campo laboral.

UNIDADES DE COMPETENCIA:

Técnico en ingeniería de desarrollo de software Page 3


• Diseñar base de datos NoSQL, para el almacenamiento masivo de datos con base a
requerimientos del usuario.
• Crear CRUD con bases de datos NoSQL, para el mantenimiento de los datos conforme
a las necesidades del usuario.

FUNCIÓN CLAVE:

Diseñar e implementar bases de datos no relacionales que cumplan con los requerimientos
del cliente.

ELEMENTOS DE COMPETENCIA:

• Diseñar bases de datos NoSQL con base a los requerimientos del usuario.
• Instalar y configurar gestores de bases de datos NoSQL utilizando requerimientos del
proveedor.
• Utilizar diferentes gestores de bases de datos NoSQL con base a especificaciones del
proveedor.
• Crear CRUD utilizando bases de datos NoSQL utilizando requerimientos del usuario

DURACIÓN DEL MÓDULO: 80 HORAS.

HORAS TEÓRICAS: 16

HORAS PRÁCTICAS: 64

Técnico en ingeniería de desarrollo de software Page 4


ESQUEMA GENERAL DEL MÓDULO

TEMA 1. Introducción a NoSQL.

TEMA 2. Tipos de bases de datos NoSQL.

TEMA 3. Lista de SGBD NoSQL.


MÓDULO: DISEÑO DE BASES DE DATOS NO

TEMA 4. Términos básicos entornos de SGBD.

UNIDAD 1: DISEÑAR BASE DE


RELACIONALES

DATOS NOSQL, PARA EL TEMA 5. JSON - JavaScript Object Notation.


ALMACENAMIENTO MASIVO
DE DATOS CON BASE A
REQUERIMIENTOS DEL TEMA 6. Instalación de SGBD en diferentes
USUARIO. sistemas operativos.

TEMA 7. Introducción al modelado de datos.

TEMA 8. Tipos de datos para bases NoSQL.

TEMA 9. Diseño del modelo de datos.

TEMA 10. Índices.

Técnico en ingeniería de desarrollo de software Page 5


TEMA 1. ¿Qué es un CRUD? .

TEMA 2. Creación de un CRUD (insertar, actualizar,


consultar y eliminar documentos).

TEMA 3. Operaciones Bulk Write.


MÓDULO: DISEÑO DE BASES DE DATOS

TEMA 4. Comandos de agregación.


NO RELACIONALES

UNIDAD 2: CREAR CRUD CON


BASES DE DATOS NOSQL, PARA EL
MANTENIMIENTO DE LOS DATOS TEMA 5. Comandos de comparación.
CONFORME A LAS NECESIDADES
DEL USUARIO.

TEMA 6. Variables en expresiones de agregación.

TEMA 7. Seguridad (creación de usuarios y password).

TEMA 8. Autenticación.

TEMA 9. Control de acceso basado en roles.

Técnico en ingeniería de desarrollo de software Page 6


EVALUACIÓN DIAGNÓSTICA

Módulo: Diseño de bases de datos no relacionales. Grupo: DWS2______

Nombres: ___________________________ Apellidos: _____________________________

En su rol de protagonista del proceso de aprendizaje, le proponemos completar el siguiente


cuestionario previo al estudio del módulo, con el objeto de que usted defina cuáles son sus
conocimientos iniciales de los temas que se van a estudiar y, que Evalúe su aprendizaje en el
transcurso del desarrollo del módulo. Finalmente puede comparar ambos procesos para que
identifique los aprendizajes alcanzados al terminar el módulo.

Para tal propósito, complete el cuestionario utilizando la siguiente escala:


1. No conozco ni sé hacerlo (Nunca he leído sobre este tema ni trabajado en él)
2. He escuchado, pero no he trabajado en ello.
3. Tengo poco conocimiento del tema.
4. Conozco y sé hacerlo.

Coloque un cheque en la escala seleccionada.


CONTENIDOS 1 2 3 4
Sabe diseñar bases de datos no relacionales con base a los
requerimientos del cliente.
Sabe cómo instalar un sistema gestor de bases de datos
NoSQL con base a las especificaciones técnicas del
proveedor.
Sabe cómo implementar bases de datos NoSQL con base a
los requerimientos del cliente.
Sabe cómo crear consultas para inserción datos en una
base de datos NoSQL con base a los requerimientos del
usuario.
Sabe cómo crear consultas para extraer datos de una base
de datos NoSQL tomando como base los requerimientos del
usuario.
Sabe cómo crear consultas para la actualización de datos de
una base de datos NoSQL tomando como base sintaxis
básica establecida por el proveedor.
Sabe crear consultas para eliminación de datos de una base
de datos NoSQL conforme a la sintaxis establecida por el
proveedor.

Técnico en ingeniería de desarrollo de software Page 7


EVALUACIÓN FINAL

SISTEMA DE EVALUACIÓN.

SOCIALIZACIÓN
Peso porcentual: 20%
- Ejercicios todas las semanas 20%

TOTAL SOCIALIZACIÓN: 100%

PRÁCTICA
Peso porcentual: 80%
Práctica 1 15%
Práctica 2 15%
Práctica 3 15%
Avances de proyecto 20%
Proyecto del módulo (Tarea significativa) 35%

TOTAL PRÁCTICA: 100%

TAREA SIGNIFICATIVA:

Desarrollar operaciones NoSQL para la gestión de los datos almacenados en una base de
datos no relacional: se desarrollarán las operaciones básicas para el mantenimiento de los
datos en una base de datos no relacional como insertar, eliminar, modificar, consultar a partir
de una problemática específica, además al final se deberá presentar un documento que
contenga la descripción del programa creado:

a) Portada
b) Índice
c) Introducción
d) Objetivos
e) Descripción del proyecto
f) Análisis del Problema
g) Diseño de la base de datos no relacional
h) Requerimientos para la instalación e implementación de la base de datos
i) Implementación de la base de datos
j) Mantenimiento de los datos (CRUD)
k) Consultas y resultados
l) Conclusiones
m) Glosario técnico
n) Referencias bibliográficas
Sugerencias para la presentación del documento:
Técnico en ingeniería de desarrollo de software Page 8
• Revisar ortografía y redacción
• Incluir la bibliografía utilizada
• Presentar el documento en formato de Word tamaño carta, con márgenes de 2.5 a
cada lado. Tipo de letra Arial tamaño 11 para textos y los títulos en tamaño 12.
Interlineado 1.5.

ESCUELA DE INGENIERÍA DE COMPUTACIÓN

Técnico en ingeniería de desarrollo de software Page 9


TÉCNICO EN INGENIERÍA DE DESARROLLO DE SOFTWARE
DISEÑO DE BASES DE DATOS NO RELACIONALES

PRÁCTICA 1
• INTRODUCCIÓN A NOSQL
• TIPOS DE BASES DE DATOS NOSQL
• LISTA DE SGBD NOSQL
• TÉRMINOS BÁSICOS ENTORNOS DE SGBD

RESULTADOS DE APRENDIZAJE.
Al finalizar esta práctica, es estudiante será capaz de:

• Aplicar conocimientos básicos sobre bases de datos NoSQL.


• Emplear los tipos de bases de datos NoSQL.
• Utilizar los diferentes sistemas gestores de bases de datos NoSQL.
• Aplicar los términos básicos relacionados a los sistemas gestores de
bases de datos.

MATERIAL Y EQUIPO.
• Guía de práctica.
• Computadora.
• Bolígrafo.
• Cuaderno de apuntes.
• Internet.

¿QUÉ ES NOSQL?

Bases de datos no relacionales (Not Only SQL) con excelente rendimiento y modelos de datos
flexibles.

¿QUÉ SON LAS BASES DE DATOS NOSQL?

Técnico en ingeniería de desarrollo de software Page 10


Las bases de datos NoSQL están diseñadas
específicamente para modelos de datos específicos
y tienen esquemas flexibles para crear aplicaciones
modernas. Las bases de datos NoSQL son
ampliamente reconocidas porque son fáciles de
desarrollar, por su funcionalidad y el rendimiento a
escala. Esta página incluye recursos que lo ayudan
a comprender mejor las bases de datos NoSQL y
comenzar a usarlas.

¿CÓMO FUNCIONA UNA BASE DE DATOS NOSQL (NO RELACIONALES)?

Las bases de datos NoSQL utilizan una variedad de


modelos de datos para acceder y administrar datos.
Estos tipos de bases de datos están optimizados
específicamente para aplicaciones que requieren
grandes volúmenes de datos, baja latencia y
modelos de datos flexibles, lo que se logra
mediante la flexibilización de algunas de las
restricciones de coherencia de datos en otras bases
de datos.

Considere el ejemplo de modelado del esquema para una base de datos simple de libros:

• En una base de datos relacional, un registro de libros a menudo se enmascara (o


"normaliza") y se almacena en tablas separadas, y las relaciones se definen mediante
restricciones de claves primarias y externas.

En este ejemplo, la tabla Libros tiene las columnas ISBN, Título del libro y Número de
edición, la tabla Autores tiene las columnas IDAutor y Nombre de autor y, finalmente, la
tabla Autor-ISBN tiene las columnas IDAutor e ISBN.

El modelo relacional está diseñado para permitir que la base de datos aplique la
integridad referencial entre tablas en la base de datos, normalizada para reducir la
redundancia y, generalmente, está optimizada para el almacenamiento.
Técnico en ingeniería de desarrollo de software Page 11
• En una base de datos NoSQL, el registro de un libro generalmente se almacena como
un documento JSON. Para cada libro, el elemento, ISBN, Título del libro, Número de
edición, Nombre autor y IDAutor se almacenan como atributos en un solo documento.
En este modelo, los datos están optimizados para un desarrollo intuitivo y escalabilidad
horizontal.

¿POR QUÉ DEBERÍA USAR UNA BASE DE DATOS NOSQL?

Las bases de datos NoSQL se adaptan


perfectamente a muchas aplicaciones modernas,
como dispositivos móviles, web y juegos, que
requieren bases de datos flexibles, escalables, de
alto rendimiento y altamente funcionales para
proporcionar excelentes experiencias de usuario.

• Flexibilidad: las bases de datos NoSQL generalmente ofrecen esquemas flexibles que
permiten un desarrollo más rápido y más iterativo. El modelo de datos flexible hace que
las bases de datos NoSQL sean ideales para datos semiestructurados y no
estructurados.

• Escalabilidad: las bases de datos NoSQL generalmente están diseñadas para escalar
usando clústeres distribuidos de hardware en lugar de escalar añadiendo servidores
caros y sólidos. Algunos proveedores de la nube manejan estas operaciones en
segundo plano, como un servicio completamente administrado.

• Alto rendimiento: la base de datos NoSQL está optimizada para modelos de datos
específicos y patrones de acceso que permiten un mayor rendimiento que el intento de
lograr una funcionalidad similar con bases de datos relacionales.

Técnico en ingeniería de desarrollo de software Page 12


• Altamente funcional: las bases de datos NoSQL proporcionan API altamente
funcionales y tipos de datos que están diseñados específicamente para cada uno de
sus respectivos modelos de datos.

TIPOS DE BASES DE DATOS NOSQL

Clave-valor: las bases de datos clave-valor son altamente divisibles y permiten escalado
horizontal a escalas que otros tipos de bases de datos no pueden alcanzar. Los casos de uso
como juegos, tecnología publicitaria e IoT se prestan particularmente bien con el modelo de
datos clave-valor.

Documentos: en el código de aplicación, los datos se representan a menudo como un objeto


o un documento de tipo JSON porque es un modelo de datos eficiente e intuitivo para los
desarrolladores. Las bases de datos de documentos facilitan a los desarrolladores el
almacenamiento y la consulta de datos en una base de datos mediante el uso del mismo
formato de modelo de documento que emplean en el código de aplicación.
La naturaleza flexible, semiestructurada y jerárquica de los documentos y las bases de datos
de documentos permite que evolucionen según las necesidades de las aplicaciones. El
modelo de documentos funciona bien con catálogos, perfiles de usuario y sistemas de
administración de contenido en los que cada documento es único y evoluciona con el tiempo.

Gráficos: el propósito de una base de datos de gráficos es facilitar la creación y la ejecución


de aplicaciones que funcionan con conjuntos de datos altamente conectados. Los casos de
uso típicos para una base de datos de gráficos incluyen redes sociales, motores de
recomendaciones, detección de fraude y gráficos de conocimiento.

En memoria: las aplicaciones de juegos y tecnología publicitaria tienen casos de uso como
tablas de clasificación, tiendas de sesión y análisis en tiempo real que requieren tiempos de
respuesta de microsegundos y pueden tener grandes picos de tráfico en cualquier momento.

Buscar: muchas aplicaciones generan registros para ayudar a los desarrolladores a


solucionar problemas.

Técnico en ingeniería de desarrollo de software Page 13


SQL (RELACIONAL) EN COMPARACIÓN CON NOSQL (NO RELACIONAL)

Durante décadas, el modelo de datos predominante utilizado para el desarrollo de


aplicaciones era el modelo de datos relacional empleado por bases de datos relacionales
como Oracle, DB2, SQL Server, MySQL y PostgreSQL. No fue sino hasta mediados y finales
de la década del 2000 que otros modelos de datos comenzaron a adoptarse y aumentó su uso
significativamente. Para diferenciar y categorizar estas nuevas clases de bases de datos y
modelos de datos, se acuñó el término "NoSQL". Con frecuencia, los términos "NoSQL" y "no
relacional" se usan indistintamente.

Aunque hay muchos tipos de bases de datos NoSQL con distintas características, en la tabla
siguiente se muestran algunas de las diferencias entre las bases de datos SQL y NoSQL.

Bases de datos relacionales Bases de datos no relacionales

Las bases de datos relacionales están Las bases de datos NoSQL están diseñadas
diseñadas para aplicaciones de para varios patrones de acceso a datos que
Cargas de
procesamiento de transacciones online incluyen aplicaciones de baja latencia. Las
trabajo
(OLTP) altamente coherentes y bases de datos de búsqueda NoSQL están
óptimas
transaccionales, y son buenas para el diseñadas para hacer análisis sobre datos
procesamiento analítico online (OLAP). semiestructurados.

El modelo relacional normaliza los datos


en tablas conformadas por filas y Las bases de datos NoSQL proporcionan una
Modelo de columnas. Un esquema define variedad de modelos de datos, como clave-
datos estrictamente las tablas, las filas, las valor, documentos y gráficos, que están
columnas, los índices, las relaciones entre optimizados para el rendimiento y la escala.
las tablas y otros elementos de las bases

Técnico en ingeniería de desarrollo de software Page 14


de datos. La base de datos impone la
integridad referencial en las relaciones
entre tablas.

Las bases de datos relacionales ofrecen


propiedades de atomicidad, coherencia,
aislamiento y durabilidad (ACID):

• La atomicidad requiere que una


transacción se ejecute por
completo o no se ejecute en Las bases de datos NoSQL a menudo hacen
concesiones al flexibilizar algunas de las
absoluto.
propiedades ACID de las bases de datos
• La coherencia requiere que una
relacionales para un modelo de datos más
vez confirmada una transacción,
Propiedades flexible que puede escalar horizontalmente.
los datos deban acoplarse al
ACID Esto hace que las bases de datos NoSQL
esquema de la base de datos.
sean una excelente opción para casos de uso
• El aislamiento requiere que las
de baja latencia y alto rendimiento que
transacciones simultáneas se
necesitan escalar horizontalmente más allá
ejecuten por separado.
de las limitaciones de una sola instancia.
• La durabilidad requiere la
capacidad de recuperarse de un
error inesperado del sistema o de
un corte de energía y volver al
último estado conocido.

Normalmente, el rendimiento depende del


El rendimiento es, por lo general, depende del
subsistema de disco. Se necesita la
tamaño del clúster de hardware subyacente,
Rendimiento optimización de consultas, índices y
la latencia de red y la aplicación que efectúa
estructura de tabla para lograr el máximo
la llamada.
rendimiento.

Las bases de datos relacionales Las bases de datos NoSQL normalmente se


generalmente escalan en forma pueden particionar porque los patrones de
ascendente las capacidades de acceso son escalables mediante el uso de
Escalado
computación del hardware o la ampliación arquitectura distribuida para aumentar el
mediante la adición de réplicas para rendimiento que proporciona un rendimiento
cargas de trabajo de solo lectura. constante a una escala casi ilimitada.

Las API basadas en objetos permiten a los


Solicita almacenar y recuperar datos que desarrolladores almacenar y recuperar
están comunicados mediante consultas fácilmente estructuras de datos. Las claves
que se ajustan a un lenguaje de consulta de partición permiten que las aplicaciones
API
estructurado (SQL). Estas consultas son busquen pares de clave-valor, conjuntos de
analizadas y ejecutadas por la base de columnas o documentos semiestructurados
datos relacional. que contengan atributos y objetos de
aplicación serializados.

SQL EN COMPARACIÓN CON TERMINOLOGÍA NOSQL

Técnico en ingeniería de desarrollo de software Page 15


La siguiente tabla compara la terminología utilizada por las bases de datos NoSQL
seleccionadas con la terminología utilizada por las bases de datos SQL.

SQL MongoDB DynamoDB Cassandra Couchbase

Tabla Conjunto Tabla Tabla Bucket de datos

Fila Documento Elemento Fila Documento

Columna Campo Atributo Columna Campo

ID del
Clave principal ObjectId Clave principal Clave principal
documento

Índice Índice Índice secundario Índice Índice

Índice secundario Vista


Ver Ver Ver
global materializada

Tabla u objeto Documento


Mapa Mapa Mapa
anidado incrustado

Matriz Matriz Lista Lista Lista

ACTIVIDAD PRÁCTICA

1. Formar equipos de trabajo de al menos 3 estudiantes para desarrollar la


investigación del tema.

INVESTIGACIÓN
Investigue los gestores de bases de datos no relacionales con los que se puede
trabajar NoSQL y haga una lista, no olvide agregar mongodb a su lista.
Describa cada gestor de bases de datos que encuentre, sus requerimientos de
instalación, si es software libre o de paga, con qué lenguajes de programación se
sugiere trabajar NoSQL en ellos y qué tipos de bases de datos se pueden
trabajar en cada uno.

Técnico en ingeniería de desarrollo de software Page 16


ACTIVIDAD PRÁCTICA

2. Elegir un representante del equipo para que exponga la lista de SGBD que
crearon como equipo, al resto de la clase. Para validar el trabajo
desarrollado en conjunto.

REFERENCIAS

• https://aws.amazon.com/es/nosql/

Técnico en ingeniería de desarrollo de software Page 17

También podría gustarte