Fundamentos de Bases de Datos (CB00-861)

Instituto Tecnológico y de Estudios Superiores de Monterrey  
Escuela de Ingeniería 
Departamento de Tecnologías de la Información y Electrónica
Horario: Martes y Viernes 13-14:30
Salón de clase: 1-204

Profesor: Mtro. Carlos Proal Aguilar
Dirección electrónica: cproal ( a t ) itesm.mx , carlos.proal (a t ) gmail.com
Asesoría: Ma y Vi 14:30-15:30 y/o previa cita (email)

Descripción del curso

Se estudia el concepto y el diseño de bases de datos, así como su uso a través del software conocido como manejador de bases de datos. Se analiza la noción de modelo de datos y se revisan diversos modelos existentes. Se profundiza en el modelo relacional y se estudian técnicas para el diseño de bases de datos utilizando este modelo. Se presentan los conceptos fundamentales en el diseño de manejadores de bases de datos.

Objetivos del curso

Objetivo principal
"Aprender"

Objetivos generales

Al término del curso el estudiante tendrá la habilidad para plantear modelos de datos que describan problemas reales, así como para implementar aplicaciones para dichos modelos usando un manejador de bases de datos relacional (DBMS). Asimismo, conocerá las características y requerimientos de implementación más importantes de un DBMS.

Objetivos específicos

  • Conocer los conceptos de bases de datos y modelo de datos
  • Conocer el propósito, ventajas y problemas de la introducción de un DBMS.
  • Conocer diversos enfoques al modelado de datos
  • Estudiar técnicas para el diseño de bases de datos relacionales
  • Estudiar y aplicar lenguajes de definición y manipulación de bases de datos en la implementación de modelos relacionales

Contenido sintético

  • Panorama de arquitecturas y componentes de un DBMS
  • Modelos de datos
  • Modelo Relacional
  • Lenguajes de bases de datos: SQL, Quel, QBE
  • Tendencias en bases de datos

Contenido detallado

  1. Introducción
    • Funciones de un DBMS
    • Usuarios de un DBMS
    • Componentes de un DBMS
  2. Modelado de datos
    • Entidad-Relación
    • Jerárquico
    • De red
    • Relacional
    • Relacional extendido
    • Orientado a objetos
  3. Modelo relacional
    • Conceptos básicos
    • Del modelo E-R al relacional
    • Normalización: 1NF, 2NF, 3NF, BCNF
    • Criterios para normalizar
    • Denormalización
  4. Algebra relacional
    • Definición del problema
    • Operaciones
    • Integridad referencial
  5. Lenguajes de bases de datos
    • Lenguajes comerciales: SQL
    • Cálculo relacional de tuplas
    • Cálculo relacional de predicados
    • Lenguajes comerciales: Quel, QBE
  1. Uso de DBMS
    • Arquitectura
    • Instancias
    • Administración
  2. Modelado Físico
    • Tipos de datos
    • Indices
    • Denormalización
  3. Programación para bases de datos
    • SQL inmerso ( C, Java, 4GLs)
    • Acceso remoto a DBMSs (JDBC, RMI, www)
  4. Procesamiento de queries
    • Estrategias de procesamiento
    • Equivalencia de expresiones
    • Optimización usando álgebra relacional
  5. Transacciones y Concurrencia
    • Clasificación de fallas
    • Modelo de transacciones
    • Recuperación por bitácora
    • Planes de ejecución
    • Serializabilidad
    • Bloqueo en dos fases
  6. Programación Avanzada (EJBs)
  7. Otras Bases de datos
    • Orientadas a objetos
    • XML
    • Distribuidas

Diagrama de Gantt del desarrollo del curso

Método de enseñanza-aprendizaje

Exposición de temas por parte del profesor, discusión en clase, solución a problemas de tarea, proyecto semestral (diseño e implementación de una aplicación utilizando una base datos y un DBMS comercial).

Bibliografía

Silberschatz. Database Systems Concepts. McGrawHill
Garcia-Molina. Database Systems The complete book. Prentice Hall
Mullins. Database Administration. Addison Wesley
Wessler. Oracle DBA on Unix and Linux. Sams publishing.
Graves. Designing XML databases. Prentice Hall
C.J. Date, An Introduction to Database Systems, Addison Wesley, 1990

Secuencia

Cursos Antecedentes Estructura de datos Cb00831 o Cb95831 y cursar o haber cursado Metodología de análisis… I Si00853
Cursos subsecuentes Diseño y arquitectura de software TC3003

Estructura del curso

Horas de clase 3
Horas de laboratorio 0
Total de unidades 8 unidades

Evaluación
 

Tareas 15
Programas 15
Exámenes Parciales 10, 15,15
Examen Final  10
Proyecto 20
Total 100

Fechas de Exámenes

  • Martes 5 de Septiembre
  • Martes 3 de Octubre
  • Martes 7 de Noviembre

Políticas de Tareas

Tareas y Programas

  • Las tareas deberán entregarse el día especificado más tardar a la hora de clase.
  • Las tareas que se entreguen después de esa hora recibirán una penalización de 1 punto por día, de manera que si se entrega la tarea ese mismo día pero después de la hora la máxima calificación que se podrá alcanzar será de 9, al día siguiente será de 8 y así sucesivamente.
  • Para el caso de programas será necesario solicitar por email la revisión extemporánea de los mismos.


Tareas Opcionales

  • Las tareas y/o participaciones opcionales son tareas que el estudiante puede hacer de manera voluntaria.
  • Se indicará explícitamente cuando una tarea es de este tipo y cuando es obligatoria.
  • El no entregarlas no repercute negativamente en la calificación final.
  • La solución correcta tendrá un valor sobre la calificación final a indicarse para cada tarea (1 o 2 décimas de la calificación final).
Fundamentos de Bases de Datos (CB00-861)