Proyecto del Curso de Bases de Datos
Introducción
El proyecto del curso de Bases de Datos
consiste en consturir una base de datos de tamaño "razonable" para un
problema del mundo real que ustedes elijan. Ustedes diseñarán el esquema
en un papel, luego crearán una base de datos real usando Postgresql.
Luego ingresarán los datos, escribirá consultas interactivas
y modificaciones, explorará algunos otros aspectos como restricciones,
índices, optimización, y crearán programas para manipular la
base de datos. (Crédito extra para aquellos que desarrollen un
front-end simple para poner la base de datos en la Web.)
El punto clave es identificar el dominio que se quiere administrar
con la base de datos.
Aconsejamos tomar un problema con el que sientan afinidad o les
divierta. Recuerde que estarán todo el semestre trabajando en él.
Ejemplos: un hobby, un sitio Web favorito, materiales de otro curso,
un proyecto de investigación, la administración de un pequeño
negocio, etc. Ojalá sea un dominio donde los datos sean reales.
Respecto de las dimensiones: el diagrama de E/R debiera tener alrededor
de 3 a 10 conjuntos entidad y un número similar de relaciones. Debe
tener diferentes tipos de relaciones (muchos a uno, uno a muchos, etc.),
tipos de datos (enteros, strings, etc.).
Si encuentran dificultad para encontrar su dominio, miren cualquier
sitio Web de shopping. Ese es un tamaño adecuado para su proyecto.
Sobre todo, consulten al profesor o auxiliar.
Calendario
- Etapa 0
Escriba un documento de requerimientos
(suponga que Ud. es el cliente que necesita la base de datos;
entonces éste es el documento inicial que Ud. le entregará a la empresa
desarrolladora que construirá su base de datos.)
Debe ser breve y claro. Indique posibles dificultades.
Indique dónde se obtendrán los datos.
Debe indicar que datos existen, que significan, que reglas
semánticas valen entre ellos, posibles restricciones,
cómo se cargan y modifican (estáticamente una
vez, se modifica todos los días, etc.), cómo se consultan
(que consultas quieren hacer), que volúmenes se esperan,
que velocidades de respuesta se esperan para las operaciones
más comunes.
- Etapa 1
Epecificar la base de datos en el modelo de entidad-relación (E/R).
No olvide indicar los atributos de llave para los conjuntos entidad e
incluir las flechas indicando la multiplicidad de conjuntos de relaciones.
Si hay entidades débiles o relaciones "is-a", asegúrese de
anotarlas apropiadamente.
- Etapa 2
A) Producir el conjunto de relaciones basado en su
modelo E/R. Especifique llaves para todas las relaciones.
Recuerde que debido que que nuestro modelo no maneja todas las
llaves, en algunos casos las llaves que Ud. especifique deberán
estar basadas en la semántica de los datos.
El modelo debe estar normalizado (veremos que significa esto)
y las restricciones de integridad --si existen-- especificadas.
B) Implementación en SQL. Implementación en Postgresql.
Hay algunas decisiones de implementación que deben tomarse.
Ingreso de los datos.
- Etapa 3
Optimización
Seleccionar un subconjunto de las operaciones que se considere más crítico en
términos de eficiencia y trabajar en la implementación Postgresql de modo de
lograr una mayor eficiencia en tiempo para esas operaciones. Esto incluye
crear los índices adecuados para los campos adecuados. Estudiar el compromiso
entre tiempos de actualización y de consulta cuando uno
usa un índice u otro. Hacer estadísticas de las consultas
elegidas con y sin índices.
Evaluación
Cada proyecto se hará en grupos de 3 personas.
La evaluación del proyecto consistirá en una nota por cada una
de las etapas exeptuando la (0) que es la presentación del proyecto.
La nota final del proyecto es el promedio de ellas. Ninguna puede ser inferior a 4.0.