# Gestión de un colegio

## Gestión de un colegio

### Conceptos a tratar

* Enlaces [singular](https://doc.velneo.com/29/proyectos-objetos-y-editores/proyecto-de-datos/tabla/enlace#maestro) y [plural](https://doc.velneo.com/29/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/plural).
* Tablas [arboladas](https://doc.velneo.com/29/proyectos-objetos-y-editores/proyecto-de-datos/tabla#maestro-normal-con-clave-arbolada) y [submaestras](https://doc.velneo.com/29/proyectos-objetos-y-editores/proyecto-de-datos/tabla#submaestro).
* [Tablas estáticas](https://doc.velneo.com/29/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla-estatica).

### Descripción

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.

### Esquema de la aplicación

![](https://2403970030-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M7D2zitZhY9szSsa5EK%2Fsync%2F8ea9d44f0b42dff53f22051b0782487e89301a1a.png?generation=1589374129018434\&alt=media)

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](https://doc.velneo.com/29/proyectos-objetos-y-editores/proyecto-de-datos/tabla#maestro-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](https://doc.velneo.com/29/proyectos-objetos-y-editores/proyecto-de-datos/tabla#maestro-normal-con-clave-arbolada), 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](https://doc.velneo.com/29/proyectos-objetos-y-editores/proyecto-de-datos/tabla#submaestro) 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.
