Créditos ECTS Créditos ECTS: 6
Horas ECTS Criterios/Memorias Horas de Tutorías: 3 Clase Expositiva: 24 Clase Interactiva: 24 Total: 51
Lenguas de uso Castellano, Gallego
Tipo: Materia Ordinaria Grado RD 1393/2007 - 822/2021
Departamentos: Electrónica y Computación
Áreas: Lenguajes y Sistemas Informáticos
Centro Escuela Politécnica Superior de Ingeniería
Convocatoria: Segundo semestre
Docencia: Con docencia
Matrícula: Matriculable
Presentación
El programa de esta materia va encaminado a introducir al estudiante en el mundo de las bases de datos y dotarlo de los instrumentos necesarios que le permitan adquirir los conocimientos necesarios para diseñar, implementar y manipular los sistemas de bases de datos existentes en el mercado con el fin de que sea capaz de elegir el sistema que mejor se adapta a cada problema.
En primer lugar, el alumno deberá conocer los conceptos principales de los sistemas de información , así como los tipos existentes y las características de cada uno de ellos. Para ello, se abordarán los contenidos desde tres perspectivas: (i) modelo conceptual, modelo lógico de las bases de datos relacionales, (ii) diseño, indexación y métodos de consulta de información heterogénea en bases de datos objeto-relacionales y documentales, (iii) introducción a las tecnologías de procesamiento de datos y eventos complejos con el fin de identificar los patrones más significativos de un proceso.
En segundo lugar, la realización de las actividades prácticas se centrarán en el uso de: (i) el lenguaje de programación Python como interfaz de acceso a las diferentes tecnologías de bases de datos, (ii) el lenguaje estándar de consulta para los sistemas de bases de datos relacionales (SQL) y (iii) lenguajes de consulta para las bases de datos no relacionales (NoSQL).
El planteamiento de esta materia es eminentemente práctico, de manera que el alumnado disponga de una amplia variedad de ejemplos que le permita alcanzar las competencias transversales y específicas de la materia.
La duración de la presente materia es de 54 horas de docencia expositiva e interactiva, dejando la parte de actividades para la resolución de estas por parte del alumnado, fuera del horario académico.
Objetivos de la materia
Los objetivos, para el alumno, perseguidos en esta materia son:
- Adquirir conocimientos sobre el funcionamiento de las bases de datos.
- Conocer y manejar los sistemas gestores de bases de datos relacionales (SQL).
- Ser capaz de seleccionar y utilizar tecnologías de procesamiento en línea de transacciones, basados en tecnologías NoSQL.
- Tomar decisiones sobre el modelo y tecnología de base de datos que mejor se adapte a las características de cada problema.
- Ser capaz de seleccionar y utilizar tecnologías de procesamiento de eventos complejos basadas en lenguajes declarativos.
La memoria del título contempla para la asignatura los siguientes contenidos:
- Almacenamiento e indexación de datos.
- Representación de registros de tamaño fijo y variable.
- Organización de registros en archivos
- Indexación ordenada (árboles).
- Hashing.
- Sistemas de almacenamiento y consulta en memoria principal y persistente: Sistemas SQL y NoSQL.
- Procesamiento de flujos de datos (Streaming): procesamiento de eventos complejos.
Estos contenidos serán desarrollados de acuerdo al siguiente temario:
Tema 1: Sistemas de almacenamiento y consulta SQL
- Álgebra relacional
- Introducción a las bases de datos y sistemas gestores de bases de datos.
- Diseño de bases de datos relacionales.
- Dependencias Funcionales
- Normalización de BD
- Lenguaje de definición de datos
- Lenguaje de manipulación de datos
- Lenguaje de consulta de datos
Tema 2: Sistemas de almacenamiento y consulta NoSQL
- Distribución y consistencia de datos
- Tipos de BD NoSQL
- Clave Valor
- Documentales
- Wide-Column
- Grafos
Tema 3: Estructuras de almacenamiento e indexación de datos
- Representación de registros de tamaño fijo y variable
- Arboles (B+)
- Hashing (Hashing estático y dinámico)
Tema 4: Sistemas de almacenamiento y consulta de flujos de datos en streaming
- Procesamiento de eventos complejos
Se trata de una asignatura principalmente práctica (mayor carga de horas interactivas que expositivas), en la que el alumnado verá los contenidos teóricos durante las sesiones expositivas pero que profundizará en ellos principalmente en las sesiones interactivas. Esta es la razón por la que el programa de prácticas mantiene una estructura pareja a los contenidos de la asignatura. El alumno irá desarrollando los contenidos una vez expuestos en las clases teóricas.
Los módulos de prácticas principales que se desarrollarán en la asignatura son:
P1- Diseño y consulta de BD SQL.
P2- Gestión de datos con NoSQL.
P3- Procesamiento de flujos de datos de sensores en tiempo real.
Python será el lenguaje de desarrollo empleado para la implementación de los algoritmos requeridos para las actividades. Se emplea software de código abierto para las actividades que requieran de software de terceros (sistemas gestores de BD SQL y NoSQL en los módulos P1 y P2 respectivamente o un sistema para el procesamiento de grandes volúmenes de datos en streaming en el módulo P3).
Bibliografía básica
Silberschatz, Abraham, Korth, Henry F., Sudarshan, S. Fundamentos de Bases de Datos.6ª Edición, Madrid: McGraw-Hill, 2014
● Sadalage, Fowler. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence, Addison-Wesley, 2012
Bibliografía complementaria:
Los apuntes se complementan con lecturas de interés en alguno de los temas a partir de la siguiente bibliografía:
● Andrew G. Psaltis, Streaming Data: understanding the real-time pipeline,Shelter Island, New York : Manning Publications, 2016
El alumno que ha superado el curso con éxito será capaz de:
Conocimiento:
Con93. Conocer las tecnologías de procesamiento en línea de transacciones, basados en tecnologías SQL y NoSQL.
Con94. Identificar la tecnología de almacenamiento y consulta de datos que mejor se adapte a las características del problema a resolver.
Con95. Entender los fundamentos de las tecnologías de procesamiento de eventos complejos basadas en lenguajes declarativos.
Destreza:
H/D97. Construir estructuras de datos y métodos de acceso eficientes para colecciones de datos de distintos tamaños y para necesidades de consulta distintas, teniendo en cuenta la características del hardware (memoria RAM y memoria persistente).
H/D98. Combinar tecnologías existentes para procesar de forma eficiente flujos continuos de datos a gran escala.
Competencia:
Comp02. Programar algoritmos con las estructuras de datos adecuadas para la resolución de problemas en el ámbito de la robótica.
Comp19. Entender y saber programar las técnicas de análisis, procesado, detección, reconocimiento y seguimiento de patrones en los distintos tipos de señales procedentes de diferentes sensores y cámaras dentro del entorno de un robot.
Los contenidos de la asignatura se impartirán indistintamente en las clases expositivas e interactivas. Las unidades teóricas y las prácticas se impartirán de manera alternativa a lo largo del semestre, con el objetivo de afianzar los conceptos impartidos en ellas y utilizar la teoría como la base real de las prácticas.
La realización de todas las prácticas es necesaria, al igual que la asistencia a clase, para aprobar la materia, puesto que teoría y prácticas se complementan y se imparten indistintamente en clases expositivas e interactivas.
Clases expositivas: las clases de teoría se articulará con apoyo de medios electrónicos como videos y diapositivas. A través de la herramienta de e-Learning de la USC (Campus virtual) se proporcionará al alumnado el material docente de la asignatura a medida que se vaya empleando y se utilizará sistemáticamente como estrategia de entrega de trabajos o prácticas.
Clases interactivas: a lo largo del semestre el alumnado tendrá que realizar diferentes ejercicios prácticos adecuados a los contenidos desarrollados hasta el momento de forma individual o en pequeños grupos.
Tutorías: las sesiones de tutorías servirán para resolver las dudas del alumnado en cuanto a los contenidos de la materia y ejercicios de prácticas.
Los recursos necesarios para la materia son los siguientes:
- Ordenador personal
- Copias de los apuntes de la materia
- Acceso de los alumnos a la bibliografía en la Biblioteca o por Internet.
- OpenOffice o LibreOffice para la preparación de la documentación de las prácticas.
Para superar la asignatura, el alumnado deberá aprobar por separado tanto el examen final como la práctica de la asignatura.
La asistencia a las clases interactivas y expositivas es obligatoria y se tendrá en cuenta para la evaluación de la materia. Será obligatorio la asistencia al menos al 80% de las sesiones (salvo causas muy justificadas, según normativa de la USC).
Las clases prácticas se realizan a lo largo del curso durante las sesiones interactivas. A lo largo del semestre, el alumnado desarrollará diferentes ejercicios prácticos entregables que serán empleados para evaluar la evolución del alumno en el ámbito práctico de la asignatura.
Primera oportunidad: las preguntas del examen final se centrarán en los contenidos específicos, que se han desarrollado en la materia, en relación a sus competencias, y que podrán haber sido adquiridos por el alumno tanto en la parte expositiva como en la interactiva. El examen podrá constar de preguntas tipo test, preguntas cortas y problemas de casos prácticos. En el examen se evaluará el grado de asimilación de los objetivos establecidos en el programa docente de la materia. No se realizará ningún examen de teoría parcial.
El examen final será el 40% de la nota de la asignatura y las prácticas un 60%. Para poder superar la asignatura y estableciendo una evaluación sobre 10 puntos, será necesario obtener al menos un 4 en cada una de las partes (examen final y prácticas) y un 5 en la media entre las dos partes, teniendo en cuenta los porcentajes detallados anteriormente (40% y 60%). En el caso de que el alumno no realice el examen final, recibirá la cualificación de "no presentado".
Segunda oportunidad: se mantiene la nota conseguida en las prácticas durante el curso y también su peso en la nota final. Los alumnos podrán desarrollar y defender, para segunda convocatoria, aquellas actividades que no hubiesen alcanzado la nota de corte en la convocatoria anterior. El examen final será el 40% de la nota de la asignatura y las prácticas un 60%. Para poder superar la asignatura y estableciendo una evaluación sobre 10 puntos, será necesario obtener al menos un 4 en cada una de las partes (examen final y prácticas) y un 5 en la media entre las dos partes, teniendo en cuenta los porcentajes detallados anteriormente (40% y 60% respectivamente). Siguiendo el mismo criterio que en el caso de la primera oportunidad, el alumno que no realice el examen final recibirá la cualificación de "no presentado".
Dispensa de asistencia: en caso de dispensa de asistencia el alumno estará exento del cumplimiento del deber de asistencia a las clases presenciales pero será obligatoria la realización y entrega de las actividades prácticas propuestas, así como superar el examen final.
Los alumnos repetidores de años anteriores estarán exentos del cumplimiento del deber de asistencia a las clases presenciales. Para aprobar la materia deberán superar el examen teórico y los ejercicios prácticos como el resto de los alumnos.
Realización fraudulenta de ejercicios o pruebas: para los casos de realización fraudulenta de ejercicios o pruebas será de aplicación lo recogido en la “Normativa de avaliación do rendemento académico dos estudantes e de revisión de cualificacións” de la USC.
Evaluación de las competencias y resultados de aprendizaje: en general el desarrollo de las actividades prácticas así como la preparación de los temas teóricos permitirá al alumnado trabajar los conocimientos, las habilidades y las competencias de la asignatura. En concreto, el desarrollo de las prácticas así como la prueba final permitirá evaluar los conocimientos Con93, Con94, Con95, las habilidades H/D97, H/D98 y las competencias Comp2, Comp19.
La asignatura tiene asignados 6 créditos ECTS, que suponen una carga de trabajo aproximada de 150 horas. Depende del alumno organizar su tiempo de estudio de forma detallada, pero la recomendación general sería dedicarle entre 6.5 y 7.5 horas por semana (donde van incluidas las 4 horas de clase presencial).
Docencia:
- Clases expositivas: 18 horas
- Clases interactivas: 30 horas
- Tutorías en grupo (con grupos reducidos): 6 horas
- Tutorías individualizadas: 3 horas.
- Actividades de evaluación y revisión: 3 horas.
TOTAL: 54 horas
Trabajo personal del alumno:
- Lectura y preparación de temas: 24 horas.
- Elaboración de las prácticas: 47 horas.
- Preparación de trabajos: 3 horas.
- Preparación de exámenes: 15 horas.
- Actividades de evaluación y revisión: 7 horas.
TOTAL: 96 horas.
Dado que emplea una metodología sostenida en la evaluación continua, es necesario un trabajo continuado con los contenidos de la asignatura. Es la forma que se ha previsto para poder ir superando las distintas actividades de evaluación que se proponen.
También se considera importante aprovechar al máximo las tutorías para la resolución inmediata de las dudas que surjan, ya sea en los contenidos expositivos o interactivos, o en las actividades formativas de las sesiones no presenciales.
Alvaro Vazquez Alvarez
Coordinador/a- Departamento
- Electrónica y Computación
- Área
- Lenguajes y Sistemas Informáticos
- Correo electrónico
- alvaro.vazquez [at] usc.es
- Categoría
- Profesor/a: Profesor Ayudante Doctor LOU