Sobre las distintas formas de mostrar datos horizontales (pivot table) con MYSQL puedes leer
http://en.wikibooks.org/wiki/MySQL/Pivot_table http://dev.mysql.com/tech-resources/...t_version.html http://www.artfulsoftware.com/infotree/queries.php#78
En cuanto a la estructura de bases de datos para calificaciones, deberías tener claras las salidas (los datos) que te piden.
Naturalmente una nota es de un examen o ejercicio que a su vez es de una asignatura de un alumno, dentro de un curso académico, pero un examen o ejercicio puede estar dentro o pertenecer a una convocatoria específica (evaluaciones (1ª, 2ª, 3ª, final); convocatoria de febrero, junio, septiembre, etc.; convocatoria ordinaria, extraordinaria), y presentar una tipología muy variada: tratarse de un examen oral, escrito, teórico, práctico, etc.; puede ser voluntario o no; previsto o sorpresa; su nota puede ser acumulable de una manera o de otra (suma de parte, porcentaje, valores condicionados, valor absoluto, etc.) para el resultado de la nota parcial o la nota final; ser necesario aprobarla para poder obtener calificación en otra asignatura, es decir, que su asignatura sea llave para otra, etc. Tienes que tener en cuenta todas estas cuestiones antes de hacer la estructura de la base.