Logo UAB
2022/2023

Bases de Datos No Relacionales

Código: 104351 Créditos ECTS: 6
Titulación Tipo Curso Semestre
2503758 Ingeniería de Datos OB 2 2

Contacto

Nombre:
Alicia Fornes Bisquerra
Correo electrónico:
alicia.fornes@uab.cat

Uso de idiomas

Lengua vehicular mayoritaria:
catalán (cat)
Algún grupo íntegramente en inglés:
No
Algún grupo íntegramente en catalán:
Algún grupo íntegramente en español:
No

Equipo docente

Alicia Fornes Bisquerra
Laura Rivera Sanchez

Prerequisitos

Se recomienda haber cursado la asignatura de bases de datos relacionales

Objetivos y contextualización

En esta asignatura se introducen los conceptos básicos de las bases de datos no relacionales y las bases de datos distribuidas. El objetivo principal es proveer al estudiante las herramientas necesarias para diseñar y utilizar estos sistemas de almacenamiento de datos.

CONOCIMIENTOS: Al finalizar el curso el alumno debe ser capaz de:

  • Diseñar bases de datos no relacionales adecuadas a los datos a procesar.
  • Diseñar y configurar infraestructuras de procesamiento de datos en función de determinados requisitos.
  • Hacer consultas sobre bases de datos.

HABILIDADES: Se pretende que los alumnos adquieran las siguientes habilidades:

  • Reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
  • Trabajar cooperativamente, en entornos complejos o inciertos y con recursos limitados, en un contexto multidisciplinar, asumiendo y respetando el rol de los diferentes miembros del equipo.
  • Prever y solucionar problemas, adaptarse a situaciones imprevistas y tomar decisiones.
  • Redactar informes técnicos de una base de datos.

Trabajar las habilidades anteriores con SGBD no relacionales, como son MongoDB y Neo4J.

Competencias

  • Concebir, diseñar e implementar sistemas de almacenamiento de datos de forma eficiente y segura.
  • Manipular grandes volúmenes de datos heterogéneos.
  • Prevenir y solucionar problemas, adaptarse a situaciones imprevistas y tomar decisiones.
  • Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
  • Trabajar cooperativamente, en entornos complejos o inciertos y con recursos limitados, en un contexto multidisciplinar, asumiendo y respetando el rol de los diferentes miembros del equipo.

Resultados de aprendizaje

  1. Diseñar bases de datos relacionales o no relacionales adecuadas a los datos a procesar.
  2. Diseñar y configurar infraestructuras de procesamiento de datos en función de determinados requerimientos.
  3. Hacer consultas sobre bases de datos.
  4. Prevenir y solucionar problemas, adaptarse a situaciones imprevistas y tomar decisiones.
  5. Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
  6. Redactar informes técnicos de una base de datos.
  7. Trabajar cooperativamente, en entornos complejos o inciertos y con recursos limitados, en un contexto multidisciplinar, asumiendo y respetando el rol de los diferentes miembros del equipo.

Contenido

  1. Bases de Datos orientadas a objetos y no relacionales
    • Conceptos básicos de orientación a objetos.
    • Identidad y estructura de un objeto.
    • Encapsulamiento de operaciones, métodos y persistencia.
    • Introducción a las bases de datos No-SQL: definición, características y tipos.
  2. Bases de Datos Documentales: MongoDB
    • Conceptos básicos y características.
    • Patrones de diseño.
    • Operaciones básicas: CRUD, importación / exportación.
    • Diseño físico: indexación y hashing.
    • Sistemas distribuidos: replicasets y sharding.
  3. Bases de Datos de grafos: Neo4J
    • Conceptos básicos y características.
    • Patrones de diseño.
    • Operaciones básicas en grafos: CRUD, importación / exportación.
    • Operaciones avanzadas en grafos: algoritmos de búsqueda.

Metodología

En esta asignatura seguiremos una metodología de aula inversa. En esta metodología, el estudio de los contenidos teóricos se debe realizar antes de las sesiones presenciales, y como actividades autónomas del alumnado, a partir de material y documentación que tendrán acceso a los estudiantes a través del campus virtual de la asignatura. Las clases presenciales se convierten en sesiones prácticas de resolución de ejercicios y realización del proyecto, orientadas a resolver todas las dudas y problemas que se hayan podido encontrar a lo largo de la semana.

Es realizarán dos tipos de actividades: actividades de teoría proyecto. Las actividades de teoría estarán orientadas a consolidar los aspectos más teóricos de la asignatura. Una parte de ellas serán individuales mientras que otras se realizarán en grupos de trabajo. El proyecto será una actividad grupal esencialmente práctica que se realizará a lo largo del curso y que servirá para ayudar a consolidar los aspectos teóricos trabajados en clase.

Los grupos de trabajo serán grupos de 4 alumnos, se formarán el primer día de clase y se mantendrán estables a lo largo de todo el curso. Serán los mismos para las actividades grupales de teoría y el proyecto.

Sin contar las horas que deban dedicarse a preparar los exámenes parciales. Se ha calculado una carga media de 9 horas por semana y estudiante distribuidas en las siguientes actividades:

  • Trabajo previo: se estima una media de 2 horas por semana que tendrá que dedicar a leer o visualizar el material que se trabajará en las sesiones presenciales.
  • Realización del proyecto: se estima una media de 3 horas por semana y miembro del grupo que tendrá que dedicar a hacer el proyecto además de las horas que se dediquen puntualmente a las sesiones dedicadas a la resolución de problemas y proyecto.
  • Resolución de problemas y proyecto: las semanas con menos carga de trabajo dedicada al proyecto se dedicarán a hacer más resoluciones de ejercicios y problemas de los temas trabajados en las sesiones presenciales.

Competencias transversales: En esta asignatura se deberá trabajar las competencias T01 - Trabajar cooperativamente, en entornos complejos o inciertos y con recursos limitados, en un contexto multidisciplinar, asumiendo y respetando el rol de los diferentes miembros del equipo T05 - Prevenir y solucionar problemas, adaptarse a situaciones imprevistas y tomar decisiones. Estas competencias se trabajarán a lo largo de todo el curso en todas las actividades que se tengan que hacer pero con más intensidad en la resolución de problemas y proyecto.

Nota: se reservarán 15 minutos de una clase dentro del calendario establecido por el centro o por la titulación para que el alumnado rellene las encuestas de evaluación de la actuación del profesorado y de evaluación de la asignatura o módulo.

Actividades

Título Horas ECTS Resultados de aprendizaje
Tipo: Dirigidas      
Sessiones presenciales 26 1,04 2, 3, 5
Tipo: Supervisadas      
Resolución de problemas y proyecto 24 0,96 1, 4, 6, 7
Tipo: Autónomas      
Estudio y preparación pruebas parciales 20 0,8 1, 2, 3, 5, 6
Realización del proyecto 39 1,56 2, 3, 4, 6, 7
trabajo previo 26 1,04 1, 2, 4, 5, 6

Evaluación

La evaluación se hará de forma continuada. Habrá dos pruebas teórico-prácticas individuales por escrito, con el peso que se indica más abajo para cada una de ellas. La primera prueba (Par1) se hará aproximadamente a la mitad del semestre y evaluará los conceptos teóricos y prácticos en bases de datos documentales como MongoDB. La segunda prueba (par2) se realizará al final del semestre y evaluará los conceptos teóricos y prácticos no evaluados en Par1, y que probablemente serán las bases de datos de grafos como Neo4J. 

Examen de recuperación: En caso de que la Nota Teoría no llegue al aprobado, los estudiantes podrán presentarse a un examen de recuperación sobre la parte suspendida.

La mayoría de las semanas habrá la posibilidad de entregar actividades trabajadas durante la semana. La entrega es opcional y se podrá hacer hasta las horas fijadas con antelación en el Campus Virtual. Con el 80% de las entregas se podrá alcanzar la máxima puntuación (1 punto) de esta actividad (NPrb).

La nota del proyecto se obtendrá a partir de la media ponderada de las notas obtenidas en cada entrega. La nota de cada entrega saldrá de hacer la media aritmética de la nota de grupo y de la individual. Habrá que aprobar por separado cada una de las entregas. En caso de suspender alguna entrega se dará la opción de recuperar la parte suspendida. La nota de la recuperación será como máximo un 5.

INDICADORES DE CALIFICACIÓN:

La nota final de la asignatura se calcula de la siguiente manera:

  • Nota Parcial 1 = Par1 
  • Nota Parcial 2 = Par2 
  • Nota Teoria = 0'5*Par1 +0'5*Par2 + NPrb
  • Nota Proyecto = 0’5*Prj1 + 0’5*Prj2 
  • NOTA FINAL ASIGNATURA = 0'5 * Nota Teoria + 0'5 * Nota Proyecto

CRITERIOS DE EVALUACIÓN

  • Para que contabilicen las notas de problemas (NPrb), es necesario obtener un mínimo de 4.5 en la media de los parciales: = 0'5*Par1 +0'5*Par2 >= 4.5.
  • Para que contabilice la nota de las entregas del proyecto (PRJ) es necesario obtener una nota superior o igual a 4 en todas las entregas.
  • En caso de suspender algunas de las entregas del proyecto, la nota máxima que se puede obtener en la recuperación es de 5. 
  • Para considerar aprobadas cualquiera de las dos partes (teoría y prácticas) debe obtenerse un mínimo de 5.
  • La asignatura estará aprobada si la NOTA FINAL ASIGNATURA es superior o igual a 5.
  • En el caso de no llegar al mínimo exigido en alguna de las actividades de evaluación, la nota numérica del expediente será el valor menor entre 4,5 y la media ponderada de las notas.
  • NO EVALUABLE: Si no presenta ninguna actividad de evaluación.
  • REPETIDORES: No se convalida ninguna parte aprobada por separado (teoría, proyecto) de un curso académico a otro.
  • IMPORTANTE PARA TODOS LOS ALUMNOS: Es importante inscribirse en el campus virtual (CV) de la asignatura, pues se publican los materiales de la asignatura, se hacen las entregas de las actividades y se publican las notas finales de la asignatura.
  • Otorgar una calificación de matrícula de honor es decisión del profesorado responsable de la asignatura. La normativa de la UABindica que las MH sólo se podrán conceder a estudiantes que hayan obtenido una calificación final igual o superior a 9.00. Se puede otorgar hasta un 5% de MH del total de estudiantes matriculados.

 

CALENDARIO DE EVALUACIÓN:

  • Exámenes Parciales: horario anunciado al principio del semestre.
  • Examen de Recuperación: según calendario académico de la Escuela de Ingeniería.
  • Entregas de las actividades: fecha y hora fijada con antelación al CV.
  • Entregas del proyecto: fecha y hora fijada con antelación al CV. 

Las fechas de las entregas a CV  pueden estar sujetas a cambios de programación por motivos de adaptación a posibles incidencias. Siempre se informará por Caronte sobre estos cambios ya que se entiende que es el mecanismo habitual de intercambio de información entre el profesorado y el alumnado.

Para cada actividad de evaluación, se indicará un lugar, fecha y hora de revisión en la que el/la estudiante podrá revisar la actividad con el profesor. En este contexto, se podrán hacer reclamaciones sobre la nota de la actividad, que serán evaluadas por el profesorado responsable de la asignatura. Si el/la estudiante no se presenta en esta revisión, no se revisará posteriormente esta actividad. 

Sin perjuicio de otras medidas disciplinarias que se estimen oportunas, y de acuerdo con la normativa académica vigente, las irregularidades cometidas por un/una estudiante que puedan conducir a una variación de la calificación se calificarán con un cero (0). Las actividades de evaluación calificadas de esta forma y por este procedimiento no serán recuperables. Si es necesario superar cualquiera de estas actividades de evaluación paraaprobar la asignatura, esta asignatura quedará suspendida directamente, sin oportunidad de recuperarla en el mismo curso. Estas irregularidades incluyen, entre otros:

  • la copia total o parcial de una práctica, informe, o cualquier otra actividad de evaluación;
  • dejarse copiar;
  • presentar un trabajo de grupo no hecho íntegramente por los miembros del grupo;
  • presentar como propios materiales elaborados por un tercero, aunque sean traducciones o adaptaciones, y en general trabajos con elementos no originales y exclusivos del alumno/a;
  • tener dispositivos de comunicación (como teléfonos móviles, smartwatches, etc.) accesibles durante las pruebas de evaluación teórico-prácticas individuales (exámenes).

La nota numérica del expediente será el valor menor entre 3.5 y la media ponderada de las notas en caso de que el/la estudiante haya cometido irregularidades en un acto de evaluación (y por tanto no será posible el aprobado por compensación). En resumen: copiar, dejar copiar o plagiar en cualquiera de las actividades de evaluación equivale a un suspenso con una nota inferior a 3,5.

Actividades de evaluación

Título Peso Horas ECTS Resultados de aprendizaje
1a Entrega del projecto 0,25 4,5 0,18 2, 4, 5, 6
1er Parcial de teoria 0,25 2 0,08 1, 2, 3, 5, 6
2o Parcial de teoria 0,25 2 0,08 1, 2, 3, 5, 6
2o entrega del proyecto 0,25 4,5 0,18 2, 4, 5, 6
Entrega de problemas (NProb) 0.05 2 0,08 1, 3, 4, 7

Bibliografía

MATERIAL DE LA ASSIGNATURA: campus virtual de la asignatura Bases de datos no relacionales.

BIBLIOGRAFIA BÁSICA:

  • NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Pramod J. Sadalage , Martin Fowler. Addison-wesley, 2013.
  • MongoDB: The Definitive Guide. Kristina Chodorow . O'Really , 2013.
  • Graph Databases, Ian Robinson, Jim Webber and Emil Eifrem, 2n Edition. O’Really, 2015.
  • Graph Algorithms, Mark Needham & Amy E. Hodler, O’Really, 2019.

Software

  • Servidor de MongoDB (https://www.mongodb.com)
  • Cliente de MongoDB: nosqlBooster (https://nosqlbooster.com)
  • Cliente y servidor de Neo4j, Neo4j Desktop (https://neo4j.com)
  • IDE de desarrollo en Python (PyCharm, Spider, Anaconda, etc.)
  • Repositorio de código (github o bitbucket)