Cita: El problema viene aqui, la institucion cuenta con 800 estudiantes, es decir que en un dia el programa debera ser capaz de registrar 800 registros, pero la cosas se complica, ya que la asistencia no es por dia sino por cada materia (por eso la id de la materia), si un estudiante ve por ejemplo 4 materias en un dia, serian 3.200 registros en la tabla (de todos los estudiantes), y 16.000 en una semana... ¿Es esto logico?.... imaginen en un año cuantos registros habrian en esa tabla, la aplicacion a mi parecer funcionaria extremandamente lenta...
Primero: Si. Es lógico, es habitual, es lo que corresponde, y trae menos problemas de lo que supones porque cada registro sólo agrega algunos bytes (id del alumno, id de cursada, fecha... alrededor de 24 bytes).
Segundo: En base de datos uno se empieza a preocupar realmente, si tienes centenares de miles o millones de registros / día. Recién allí es preocupante. Tener 3.200 registros en un día, ni siquiera califica como "molestia".
Como ejemplo: Trabajo con una base donde una tabla recibe esa cantidad de inserciones cada... tres segundos. Y allí sí representa una complicación, pero no a nivel permformance, sino de servidores y por el delay causado por tantas operaciones simultáneas (más de 1500 concurrentes todo el tiempo).
Los DBMS se diseñaron para soportar eso y más.