Perdoname que te lo diga, @JenderxD, pero tu pregunta me asombra, y me hace dudar de cuánto sabes realmente de programación... Es la primera vez que alguien pregunta eso en este foro o en otros que yo he visto.
Sin ofender.
Vamos por la aclaración final:
Cita: como el programa sabe o se da cuenta de q cedula y que id le pertenece a cada estudiante
El programa no sabe nada. Ningún programa
sabe, eres tu, como programador, el que tiene que diseñar el programa de modo que
el usuario ingrese la información necesaria, y el sistema la procese para crear las relaciones entre los datos.
PAra empezar:
1) Cargas los datos correspondientes a qué grados existen en la institución. Son datos fijos, que se usan en muchas operaciones,
una de las cuales es la inscripción de alumnos en los cursos. Cómo y en qué momento cargas esos datos, es tema que tienes que resolver tu.
2) El alumno es cargado la primera vez cuando se inscribe o matricula en una institución. Al momento de la matriculación, el alumno o el usuario del programa, selecciona en qué curso o grado se inscribirá.
3) Si el alumno existe, antes de seleccionar el grado, se buscan sus datos (el ID entre ellos) y se verifica qué grados ya ha cursado, para no ofrecérselos.
4) Si nunca se inscribió, se le toman los datos y al momento de generar el alta, se recupera el ID del alumno correspondiente.
5) Con ambos datos
ya recuperados, al confirmar la inscripción,
el sistema envia a registrar las ID en la tabla que relaciona los datos de los alumnos con el grado a que pertenece. Es en ese momento en que la relación "nace".
En otras palabras: Es
tu responsabilidad crear esa vinculación.
Todo esto, y tenlo bien en cuenta,
no es Base de Datos, es
programación, o en todo caso
analisis de sistemas, y tiene que ver con las reglas del negocio (ver tema "reglas de negocio" en Wikipedia).