Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Mod 7:Aplicación Ofertas Trabajo

Enviado por   •  13 de Enero de 2024  •  Práctica o problema  •  980 Palabras (4 Páginas)  •  173 Visitas

Página 1 de 4

EJERCICIO 1

-Apartado 1:

Realizar un análisis acerca del modelo de datos y la arquitectura de distribución y replicación de los datos que se adecúe mejor a los requisitos de la aplicación descrita.En cuanto a modelo de datos, hay que argumentar la conveniencia de que se elija este último, qué modelo sería el más adecuado

En base al enunciado podemos concluir que la aplicación va a trabajar con grandes cantidades de datos que podemos clasificar en cuatro entidades principales:

  • Portales de búsqueda
  • Diferentes requisitos de búsqueda por usuario
  • Diferentes usuarios
  • Ofertas de trabajo

Las ofertas de trabajo van a tener una gran variedad de características que dependerán de cada usuario por lo que vamos a necesitar un modelo que pueda almacenar valores diferentes de forma flexible. Además, nos encontramos con que va a tener que trabajar con un gran volumen de datos por lo que va a tener que poder ser escalable. Basándonos en estos dos matices, almacenar diferentes tipos de datos de forma flexible y capacidad de escalado, yo me quedaría con un modelo de datos Documental.

Este tipo de modelo de datos precisamente se caracteriza por una gran flexibilidad a la hora de almacenar la información en forma de documentos que podrán contener cualquier tipo de información. Además, se pueden almacenar en forma de colecciones que podemos distribuir en varios servidores y así aumentar la escalabilidad de la aplicación pudiendo soportar un gran volumen de datos.

Estas dos características que me hacen decantarme principalmente por este modelo de datos son a la vez las que fallarían en un modelo de datos Relacional, ya que con este no obtendríamos flexibilidad a la hora de almacenar los datos y no tendríamos una gran escalabilidad ya que toda la base de datos debería encontrarse en el mismo servidor.


Apartado 2:

Describir una colección de MongoDB que almacenará la información sobre las solicitudes realizadas por cada usuario, ilustrándolo con las colecciones y tipos de documentos que serían necesarios.

-Colección Ofertas:

         -id: Clave del documento 🡪 ObjectId

Portal: Portal de origen de la oferta 🡪 String,

Puesto: Puesto que se oferta 🡪 String

Requisitos: Requisitos de la oferta (idiomas, lenguajes

de programación, puesto de trabajo ...) 🡪 Array

Experiencia: Se requiere o no experiencia 🡪 String        

Ciudad: Ciudad de la oferta 🡪 String

Sueldo: Sueldo ofrecido 🡪 Number

Contrato: Tipo de contrato 🡪 String

-Colección Usuario:

-id: Clave del documento 🡪 ObjectId

Nombre: Nombre 🡪 String

Apell1: Primer apellido 🡪 String

Apell2: Segundo apellido del usuario 🡪 String

DNI: Número de documento 🡪 String

Domicilio: Domicilio 🡪 String

Ciudad: Ciudad de residencia 🡪 String

Requisitos: Requisitos de las ofertas a consultar 🡪 Array

DispoGeo: Disponibilidad geográfica 🡪 String,

Experiencia: Experiencia previa 🡪 String

Email: Email de contacto 🡪 String

Teléfono: Teléfono de contacto 🡪 String

-Colección OfertaUsu

-id: Clave del documento 🡪 ObjectId

DNI: Número de documento del usuario 🡪 String

Id_oferta: id de la oferta origen 🡪 ObjectId

Puesto: Puesto de la oferta 🡪 String

CiudadOferta: Ciudad de la oferta 🡪 String

Requisitos: Requisitos de la oferta 🡪 Array

Contrato: Tipo de contrato de la oferta 🡪 String

CiudadUsu: Ciudad de residencia 🡪 String

Domicilio: Domicilio de residencia 🡪 String

FechaInscripcion: Fecha en que se seleccionó la oferta 🡪 Date


Apartado 3: Realiza las siguientes consultas

**Antes de empezar las consultas preparamos la BD

- Se genera una base de datos denominada db.busqEmpleo:

[pic 1]

-Inserto la oferta de trabajo 1:

db.Ofertas.insert({‘Portal’: ‘Infojobs’,

‘Empresa’: ‘BlueTab’,

‘Puesto’:’Director Proyecto’,

‘Requisitos’:[‘Gestion Proyectos’,’Ingles’],

‘Experiencia’:’S’,

‘Ciudad’:’Barcelona’,

‘Sueldo’:50000,

‘Contrato’:’Indefinido’

})

[pic 2]


-Usuario 1:

[pic 3]

-OfertaUsu 1: La hacemos combinando los dos anteriores

**Obtengo el _id asignado la Oferta 1 (y de paso se comprueba que fue insertado con éxito) para rellenar OfertaUsu1

[pic 4] 

[pic 5]

  1. Recuperar todas las ofertas de trabajo que ha solicitado el usuario con nombre ‘Isabel’ y apellidos ‘Cabrerizo Alonso’.

Hago un join entre la colección de Usuario y OfertaUsu usando el campo DNI para unir:

db.getCollection('OfertaUsu').aggregate([

{ "$addFields": { "DNI": "11084807A" }},

...

Descargar como  txt (8.4 Kb)   pdf (606.5 Kb)   docx (717.8 Kb)  
Leer 3 páginas más »
Disponible sólo en Essays.club