Tablas arboladas y submaestras.
Realizamos el análisis de una base de datos que permitirá gestionar la organización de un colegio. Dicha aplicación debe relacionar los aspectos fundamentales de un colegio: alumnos, profesores, materias, asignaturas, cursos, secciones, aulas, días lectivos y horarios. Esta aplicación debe responder, entre otras muchas, a consultas como: ¿cuál es el cuadro semanal de clases de un alumno?, ¿y el de un profesor?, ¿cuáles son los alumnos de un profesor?, ¿y los profesores de un alumno?, etc.
Hemos de crear las tablas siguientes: ESTUDIANTES, PROFESORES, MATERIAS, ASIGNATURAS, CURSOS, SECCIONES y AULAS.
Los registros de las tablas CURSOS, ESTUDIANTES, MATERIAS, PROFESORES, AULAS y ASIGNATURAS necesitan identificarse uno a uno de forma inconfundible, de modo que las tablas han de definirse como maestras de tipo normal con clave numérica, con la salvedad de la tabla MATERIAS. MATERIAS podría recoger, por ejemplo, el ciclo educativo, la materia en sí y el curso de impartición de una asignatura. Para este fin son ideales las tablas arboladas, en las que el campo código se comporta del siguiente modo:
El primer dígito del código actúa como dígito raíz.
Cada uno de los valores que recibe el primer dígito abre nuevas ramas del árbol.
De igual modo, los nuevos dígitos que añadimos al código abren nuevas sub-ramas del árbol (por ejemplo, el código PL2 podría indicar: ciclo primario, materia literatura, 2º curso del ciclo).
Las asignaturas de un curso se definen con la materia, el profesor y el aula en que se imparten, por lo que estableceremos un enlace singular-plural con cada una de las tablas correspondientes, incluyendo la tabla CURSOS.
Las secciones en las que se divide un curso y que agrupan a los alumnos no pueden existir si no es perteneciendo a un curso, por lo que declararemos la tabla SECCIONES como submaestra de CURSOS. De esta forma, el código de una sección se formará con el código de la tabla maestra (CURSOS) y el propio código de la tabla SECCIONES.
Aún nos falta por introducir en el análisis los días lectivos y los horarios. Para ello haremos uso de dos tablas estáticas, una en la que guardaremos los días de la semana (tabla DIAS) y otra en la que cada registro indicará el horario del colegio (tabla HORARIO) con un formato del tipo 8:15 a 9:00, 9:15 a 10:00, etc.
Una vez introducidas las tablas estáticas crearemos dos campos en la tabla ASIGNATURAS, uno llamado DIA, enlazado a la tabla estática DIAS, y otro al que llamaremos HORA, enlazado a la tabla estática HORAS.