Está en la página 1de 14

TALLER Nº1

CURSO: BASES DE DATOS II


TEMA: BASES DE DATOS NO-SQL

Nombre: Tomás Sarmiento Candia


Puntaje: ____ Calificación:___

INDICACIONES:
● El Taller es personal
● Puede usar apuntes
● El tiempo de desarrollo es de 2 horas.
● Una vez finalizado el taller debe subir un archivo pdf en Campus Virtual.
● Las respuestas serán a través de imágenes del uso de funciones en su
propio computador (lo importante es el desarrollo de la consulta).
● Puede usar la consola del motor de Bases de Datos o el Editor Gráfico
● Se exige 60% del taller correcto para obtener calificación 4.0

ACTIVIDADES
1. Diseñe (puede ser explicar) un modelo de base de datos No-SQL para
almacenar la información proveniente de bases de datos que almacenan datos
sobre la situación COVID19 en distintos países. Considere los siguientes
antecedentes para elaborar su propio diseño.

Antecedentes: La enfermedad por coronavirus (COVID-19) es una enfermedad


infecciosa causada por el virus SARS-CoV-2.

La mayoría de las personas infectadas por el virus experimentarán una enfermedad


respiratoria de leve a moderada y se recuperarán sin requerir un tratamiento especial. Sin
embargo, algunas enfermarán gravemente y requerirán atención médica. Las personas
mayores y las que padecen enfermedades subyacentes, como enfermedades
cardiovasculares, diabetes, enfermedades respiratorias crónicas o cáncer, tienen más
probabilidades de desarrollar una enfermedad grave. Cualquier persona, de cualquier
edad, puede contraer la COVID-19 y enfermar gravemente o morir.

Para apoyar la investigación científica, clínica y epidemiológica del COVID19 en muchos


países, se puso a disposición de la comunidad información oficial que envía los
Ministerios de Salud en un formato estándar para su análisis.

Estas Bases de Datos son resultado de la Mesa Social COVID19, con el objetivo
de facilitar el trabajo de todos y todas quienes busquen aportar con soluciones a esta
emergencia sanitaria a través del análisis de información.
Algunos ejemplos de datos almacenados en Chile, se muestran en las imágenes:

Fig1: Información diaria sobre COVID en Chile

Fig 2: Evolución de la campaña de vacunación


Fig 3: Evolución casos confirmados

Fig 4: Casos confirmados por región

Fig 5: Evolución exámenes PCR


Fig 6: Número de camas disponibles

Considere tipos de gráficos similares para otros países.

Se pide diseñar un modelo para MongoDB considerando lo siguiente:


- El modelo debe incluir un subdocumento
- Se debe almacenar información de los casos COVID
- Agregar un mínimo de 5 datos para cada caso
- Agregar la fecha y lugar donde ocurre el caso COVID.
- Uno de los datos debe ser una lista de valores
(10 puntos)

En el modelo que creé, la colección almacena casos. En este sentido, cada documento
será un caso en particular. Cada caso tendrá el país y ciudad donde ocurrió, de tal forma
que se puedan hacer las consultas respectivas. Con este modelo es posible obtener todas
las estadísticas mostradas en las imágenes de arriba.

Cada caso tendrá el nombre de la persona afectada, su edad (para poder obtener luego
datos que permitan construir gráficos por grupo etario), el país y la ciudad corresponden
al lugar donde ocurrió la infección, el tipo test (que puede ser PCR o antígeno como
ejemplo), fecha test, el atributo “estado_actual” almacena el estado (puede ser activo,
recuperado o fallecido), el atributo enfermedades es un arreglo que contiene todas las
enfermedades que el contagiado pueda presentar. Luego, el atributo usa_cama puede ser
true o false, presenta_sintomas puede ser “Sí”, “No”, o “Se desconoce”; y finalmente el
atributo contacto_estrecho es un arreglo de subdocumentos que almacena las personas
con las cuales el contagiado ha tenido contacto estrecho (En este atributo se cumple que
uno de los datos debe ser una lista de valores, y además que el modelo debe incluir
subdocumentos).

Este modelo, además de permitir generar estadísticas por país, también permite generar
estadísticas a nivel mundial. Por ejemplo, para obtener la cantidad de casos activos en
total, simplemente se deben contar los documentos cuyo atributo estado_actual sea
activo. Si se quiere saber los activos de Chile, se debe restringir la consulta a los
documentos cuyo atributo País sea Chile.
2. Cree una consulta que permita almacenar 3 documentos (con los subdocumentos). (3
puntos)

Almacené seis documentos para tener más variedad.


3. Se requiere una consulta para mostrar información de los casos COVID ocurridos en
un determinado lugar. (3 puntos)

Se muestran los casos del país Chile. En este caso había cinco documentos.
Cantidad de casos en Chile:

Cantidad de recuperados en Argentina:

4. Se requiere mostrar la evolución de la cantidad de camas críticas para un determinado


lugar. (4 puntos)
Se muestra la cantidad de camas críticas ocupadas en Chile hasta la fecha del 01 de julio
del 2022.

Ahora se muestra la cantidad de camas críticas ocupadas en Chile hasta la fecha del 21
de septiembre del 2022.
5. Actualice la lista (arreglo) para eliminar uno de los datos (3 puntos)
Antes, Catalina Quezada tenía la enfermedad Diabetes.

Luego, consulta para eliminar enfermedad diabetes:

Ahora el documento queda así:


6. Modificar los datos de uno de los casos COVID ingresados (3 puntos)
Antes, Vicente Perez estaba en Santiago cuando fue contagiado

Consulta:

Ahora, se cambió la ciudad por Rancagua


7. Agregar un nuevo atributo a uno de los casos COVID ingresados. (2 puntos)
Se agregará el atributo de si está en UCI: en_UCI al caso de Tomás Sarmiento
Antes:

Consulta:

Después:
8. Cree un índice que permita realizar búsquedas eficientes (2 puntos)
Se creará un índice con el atributo nombre_afectado
Explain antes de crear el índice:

Consulta para crear índice:


Explain luego de crear el índice:

9. Elimine un atributo de todos los documentos (2 puntos)


Se elimina el atributo presenta_sintomas de todos los documentos
10. Cree una consulta que permita aumentar en 1 el valor de casos (2 puntos)
En el modelo que yo creé, para aumentar los casos basta con insertar un nuevo
documento. Otra manera, también, es cambiar el estado de un caso de inactivo a activo.
De todas formas, me parece que esta pregunta va orientada a probar si conozco el uso
del operador $inc, el cual puedo también usar aumentando la edad de alguna de las
personas afectadas.
Antes:

Consulta:

Después:
11. Elimine uno de los documentos (2 puntos)

También podría gustarte