1. Tareas de diseño
Los requisitos funcionales bajo este tema son:
Realizar la gestión de la información de los estudiantes, clases, departamentos, carreras, etc.
Realice la gestión de la información sobre el rendimiento de los estudiantes y los cursos.
Realizar la gestión de la información de recompensas y castigos de los estudiantes.
Cree una regla para restringir el elemento de género solo a "masculino" o "femenino"
Cree una vista para consultar el número de estudiante, nombre, clase, especialización y departamento de cada estudiante.
Cree un procedimiento almacenado para consultar los expedientes académicos de estudiantes específicos.
Cree activadores para modificar automáticamente la clase correspondiente y el número de estudiantes al agregar, eliminar o modificar información de clase de estudiantes.
Establecer restricciones de integridad referencial entre tablas relacionadas en la base de datos.
Entre ellos, soy el principal responsable de diseñar el proceso de almacenamiento, crear activadores para modificar automáticamente el número de estudiantes en la clase correspondiente al modificar la información de la clase de los estudiantes, el módulo de gestión de selección de cursos (selección de cursos, retiro y verificación de cursos) y el módulo de gestión de calificaciones (agregar, eliminar, modificar, verificar resultados), módulo de gestión de recompensas y castigos (agregar, eliminar, modificar, verificar información de recompensas y castigos).
Los módulos restantes son ×× responsables de diseñar la estructura de la tabla, diseñar la página principal, el módulo de gestión de departamentos (agregar, eliminar y verificar información del departamento), el módulo de gestión profesional (agregar, eliminar y verificar información profesional) y el módulo de gestión de clases. (agregar, eliminar clases) información, consulta de tamaño de clase); , consultar información del curso).
1.1 Análisis de requisitos
1.2 Requisitos funcionales
Módulo de gestión de estudiantes : cree una tabla de información de estudiantes (stu_inf) para agregar, consultar, modificar y eliminar información de estudiantes.
Módulo de gestión de cursos : cree una tabla de información del curso (curso) para agregar, consultar, modificar y eliminar información del curso.
Módulo de gestión de departamentos : cree una tabla de información de departamentos (departamento) para agregar, consultar y eliminar información de departamentos.
Módulo de gestión profesional : Crear una tabla de información profesional (mayor) para agregar, consultar y eliminar información profesional.
Módulo de gestión de clases : cree una tabla de información de clases (clase) para agregar, eliminar y consultar información de clases.
Módulo de gestión de selección de cursos : cree una tabla de información de selección de cursos (stu_cou) para agregar, consultar y eliminar información de selección de cursos.
Módulo de gestión de calificaciones : la tabla de información de selección de cursos (stu_cou) se puede utilizar para agregar, consultar, modificar y eliminar información de calificaciones.
Módulo de gestión de recompensas y castigos : cree una tabla de información de recompensas y castigos (stu_san) para agregar, consultar, modificar y eliminar información de recompensas y castigos.
1.3 Requisitos de desempeño
Integridad y precisión de los datos : los datos se ingresan en un formulario y el tipo y rango de valores de los datos ingresados están limitados para garantizar la integridad y precisión de los datos. El sistema tiene una función de arrepentimiento parcial y se proporcionan todas las funciones de modificación. por el sistema se puede revertir.
Puntualidad en la finalización de los datos : por ejemplo, al ingresar calificaciones, las calificaciones solo se pueden ingresar después de que se hayan ingresado los materiales del curso seleccionados.
1.4 Requisitos de datos
Tabla de departamentos (nombre de departamento (Varchar))
El departamento de información principal en la tabla principal (nombre principal (Varchar), nombre de departamento (Varchar)) debe ser el departamento en la tabla de departamentos.
La información de clase principal de la tabla de clases (nombre principal (Varchar), número de clase (Int), suma de clases (Smallint)) debe ser la principal de la tabla principal
La clase de la tabla de estudiantes (Sno(Varchar), Sname(Varchar), Ssex(Enum), Sbirth(Date), Snative(Varchar), Sclass(Int), Smajor(Varchar)) la información del estudiante debe ser la clase de la mesa de clases
Horario del curso (Cno(Varchar), Cname(Varchar), Ccredit(Smallint), Cteacher(Varchar))
El número de estudiante en la tabla de selección de cursos (Cno (Varchar), Sno (Varchar), GradeSmallint)) debe ser el número de estudiante en la tabla de estudiantes, y el número de curso debe ser el número de curso en el cronograma del curso.
Tabla de información de recompensas y castigos (id (Int), Sno (Varchar), Sname (Varchar), Reward (Varchar), Punish (Varchar)) El número de estudiante y el nombre de la información de recompensa y castigo deben ser el número de estudiante y el nombre de la mesa de estudiantes
Tabla de usuarios (nombre de usuario (Varchar), contraseña (Varchar))
1.5 Requisitos operativos
Interfaz de usuario : simple, práctica y fácil de operar
Interfaz de software : utilice JDBC para conectar bases de datos Java y MySQL
2. Diseño del sistema
marco funcional general
Diseño detallado de módulos.
Selección de curso : ingrese el número de estudiante existente y el número de curso, y luego ejecute la instrucción de inserción para agregar esta información a la tabla stu_cou de la base de datos.
Retirar un curso : ingrese la identificación del estudiante existente, primero ejecute la instrucción de selección para consultar la información de selección del curso correspondiente, seleccione la información correspondiente del curso que desea retirar y luego ejecute la instrucción de eliminación para eliminar esta información en la tabla stu_cou de la base de datos. ;
Consulta de información de selección de cursos : ingrese el número de estudiante de un estudiante existente y luego ejecute la declaración de selección para consultar todos los cursos de este estudiante, o ingrese el número de curso de un curso existente y luego ejecute la declaración de selección para consultar a todos los estudiantes en este curso.
Agregar y modificar calificaciones : ingrese el número del curso existente, primero ejecute la instrucción de selección para consultar a todos los estudiantes en este curso, seleccione los estudiantes para agregar calificaciones e ingrese las calificaciones de este curso, y luego ejecute la instrucción de actualización para actualizar esta información en el tabla stu_cou de base de datos
Eliminación de calificaciones : ingrese el número de curso existente, primero ejecute la declaración de selección para consultar a todos los estudiantes en este curso, seleccione al estudiante y luego ejecute la declaración de actualización para eliminar al estudiante y las calificaciones correspondientes de este curso en la tabla stu_cou de la base de datos.
Consulta de resultados :
Consulta por ID de estudiante: ingrese la ID de estudiante de un estudiante existente y luego ejecute la instrucción de selección para consultar todas las calificaciones del estudiante y enumere el número total de cursos, el total de créditos, el número de cursos reprobados, los créditos tomados y la puntuación promedio del estudiante. .
Consulta por número de curso: ingrese el número de curso de un curso existente y luego ejecute la instrucción de selección para consultar la información de calificaciones de los estudiantes que ya obtuvieron calificaciones en este curso y cuente automáticamente el número total de estudiantes, el número de personas que aprobaron. , el número de personas que reprobaron y la nota media de este curso.
Agregar información de recompensa y castigo: ingrese el número de estudiante y el nombre del estudiante existente, luego ingrese la información de recompensa y castigo y luego ejecute la instrucción de inserción para agregar esta información a la tabla stu_san de la base de datos
Eliminación de información de recompensa y castigo: ingrese el número de estudiante del estudiante cuya información de recompensa y castigo se agregó y luego ejecute la instrucción de eliminación para eliminar esta información en la tabla stu_san de la base de datos.
Modificación de la información de recompensa y castigo: ingrese la identificación del estudiante que agregó información de recompensa y castigo, primero ejecute la instrucción de selección para consultar toda la información de recompensa y castigo, luego seleccione la información que se modificará e ingrese la información de recompensa y castigo modificada y finalmente ejecute la declaración de actualización para modificar esto en la información de la tabla stu_san de la base de datos
Consulta de información de recompensas y castigos: ingrese el número de estudiante de un estudiante existente y luego ejecute la instrucción de selección para consultar toda la información de recompensas y castigos.
3. Diseño de base de datos
diseño estructural conceptual
Diseño de estructura lógica.
Clave principal del departamento (nombre del departamento) = nombre del departamento
Principal (nombre del departamento, nombre principal) Clave principal = nombre principal Clave externa = nombre del departamento
Clase (nombre principal, número de clase, número de clase) clave primaria = nombre principal, número de clase clave externa = nombre principal
Estudiante (número de estudiante, nombre, sexo, fecha de nacimiento, lugar de origen, nombre principal, número de clase)
Clave principal = número de estudiante Clave externa = nombre principal, número de clase
Curso (número de curso, nombre del curso, créditos, instructor) Clave principal = número de curso
Selección de curso (número de estudiante, número de curso, puntajes) Clave principal = número de estudiante, número de curso Clave externa = número de estudiante, número de curso
Información de recompensa y castigo (id, número de estudiante, nombre, información de recompensa, información de castigo) Clave primaria = id Clave externa = número de estudiante, nombre
usuario (nombre de usuario, contraseña) clave principal = nombre de usuario
diseño de estructura física
Tabla de información del estudiante (stu_inf)
Nombre del campo |
Tipo de campo |
punto decimal |
¿Es una clave primaria? |
¿Está vacío? |
¿Es una clave externa? |
Observación |
nieve |
Varchar(6) |
Sí |
No |
No |
Identificación del Estudiante |
|
se quita |
Varchar(10) |
No |
No |
No |
Nombre |
|
sexo |
enumeración |
No |
No |
No |
género |
|
Espíritu |
Fecha |
No |
No |
Fecha de nacimiento |
||
nativo |
Varchar(10) |
No |
No |
Lugar de nacimiento |
||
Clase S |
En t |
No |
No |
Sí |
clase |
|
mayor |
Varchar(10) |
No |
No |
Sí |
importante |
clave externa
nombre |
Campo |
esquema referenciado |
Tabla referenciada (padre) |
campo referenciado |
Al eliminar |
Al actualizar |
clase inf |
Clase S, Mayor |
meimaobingle |
clase |
número de clase, nombre principal |
RESTRINGIR |
RESTRINGIR |
Tabla de información del curso (curso)
Nombre del campo |
Tipo de campo |
punto decimal |
¿Es una clave primaria? |
¿Está vacío? |
¿Es una clave externa? |
Observación |
cno |
Varchar(4) |
Sí |
No |
No |
Numero de curso |
|
nombre |
Varchar(40) |
No |
No |
No |
Nombre del curso |
|
Él cree |
Pequeño |
No |
No |
No |
crédito |
|
profesor |
Varchar(10) |
No |
No |
No |
Profesores de entrenamiento |
Tabla de información del departamento (departamento)
Nombre del campo |
Tipo de campo |
punto decimal |
¿Es una clave primaria? |
¿Está vacío? |
¿Es una clave externa? |
Observación |
nombre del departamento |
Varchar(10) |
Sí |
No |
No |
Nombre de Departamento |
Formulario de información principal (principal)
Nombre del campo |
Tipo de campo |
punto decimal |
¿Es una clave primaria? |
¿Está vacío? |
¿Es una clave externa? |
Observación |
nombre mayor |
Varchar(10) |
Sí |
No |
No |
Nombre profesional |
|
nombre del departamento |
Varchar(10) |
No |
Sí |
Nombre de Departamento |
clave externa
nombre |
Campo |
esquema referenciado |
Tabla referenciada (padre) |
campo referenciado |
Al eliminar |
Al actualizar |
salida mayor |
nombre del departamento |
meimaobingle |
departamento |
nombre del departamento |
CASCADA |
CASCADA |
Tabla de información de clase (clase)
Nombre del campo |
Tipo de campo |
punto decimal |
¿Es una clave primaria? |
¿Está vacío? |
¿Es una clave externa? |
Observación |
nombre mayor |
Varchar(10) |
Sí |
No |
Sí |
Nombre profesional |
|
número de clase |
En t |
Sí |
No |
No |
Numero de clase |
|
clase |
Pequeño |
No |
No |
No |
tamaño de la clase |
clave externa
nombre |
Campo |
esquema referenciado |
Tabla referenciada (padre) |
campo referenciado |
Al eliminar |
Al actualizar |
clase mayor |
nombre mayor |
meimaobingle |
importante |
nombre mayor |
CASCADA |
CASCADA |
Formulario de información de selección de cursos (stu_cou)
Nombre del campo |
Tipo de campo |
punto decimal |
¿Es una clave primaria? |
¿Está vacío? |
¿Es una clave externa? |
Observación |
cno |
Varchar(4) |
Sí |
No |
Sí |
Numero de curso |
|
nieve |
Varchar(6) |
Sí |
No |
Sí |
Identificación del Estudiante |
|
Calificación |
Pequeño |
No |
No |
puntaje |
clave externa
nombre |
Campo |
esquema referenciado |
Tabla referenciada (padre) |
campo referenciado |
Al eliminar |
Al actualizar |
curso_cou |
Cnombre, Cno |
meimaobingle |
curso |
Cnombre, Cno |
CASCADA |
CASCADA |
cou_inf |
nieve |
meimaobingle |
este_inf |
nieve |
CASCADA |
CASCADA |
Tabla de información de recompensas y castigos (stu_san)
Nombre del campo |
Tipo de campo |
punto decimal |
¿Es una clave primaria? |
¿Está vacío? |
¿Es una clave externa? |
Observación |
identificación |
En t |
Sí |
No |
No |
Identificación de recompensa y castigo |
|
nieve |
Varchar(6) |
No |
No |
Sí |
Identificación del Estudiante |
|
se quita |
Varchar(10) |
No |
No |
Sí |
Nombre |
|
Premio |
Varchar(100) |
No |
No |
información de recompensa |
||
Castigar |
Varchar(100) |
No |
No |
Información de castigo |
clave externa
nombre |
Campo |
esquema referenciado |
Tabla referenciada (padre) |
campo referenciado |
Al eliminar |
Al actualizar |
san-inf |
Sno, nombre |
meimaobingle |
este_inf |
Sno, nombre |
CASCADA |
CASCADA |
Tabla de información del usuario (iniciar sesión)
Nombre del campo |
Tipo de campo |
punto decimal |
¿Es una clave primaria? |
¿Está vacío? |
¿Es una clave externa? |
Observación |
nombre de usuario |
Varchar(10) |
Sí |
No |
No |
nombre de usuario |
|
contraseña |
Varchar(10) |
No |
No |
No |
contraseña |
Vista de información del estudiante
CREATE ALGORITHM = UNDEFINED DEFINER = `root` @`localhost` SQL SECURITY DEFINER VIEW `studentview` AS SELECT
`stu_inf`.`Sno` AS `Sno`,
`stu_inf`.`Sname` AS `Sname`,
`stu_inf`.`Sclass` AS `Sclass`,
`stu_inf`.`Smajor` AS `Smajor`
FROM `stu_inf`
Consulta el procedimiento almacenado para el expediente académico de un estudiante específico :
CREATE DEFINER=`root`@`localhost` PROCEDURE `pd_select_stu_cou_by_Sno`(S_no varchar(6))
BEGIN
select Sno,Cno,Grade from stu_cou where Sno=S_no;
END
desencadenar :
·Al agregar estudiantes, el tamaño de la clase aumentará automáticamente en 1
CREATE DEFINER = `root` @`localhost` TRIGGER `stu_jia` AFTER INSERT ON `stu_inf` FOR EACH ROW
UPDATE class SET classsum = classsum + 1
WHERE new.Smajor = majorname AND new.sclass = classnum;
Al eliminar estudiantes, el tamaño de la clase se reduce automáticamente en 1
CREATE DEFINER = `root` @`localhost` TRIGGER `stu_shan` BEFORE DELETE ON `stu_inf` FOR EACH ROW
UPDATE class SET classsum = classsum - 1
WHERE old.Smajor = majorname AND old.sclass = classnum;;
Al modificar la clase de un estudiante, la clase anterior será automáticamente -1 y la nueva clase será automáticamente +1.
CREATE DEFINER = `root` @`localhost` TRIGGER `stu_geng` AFTER UPDATE ON `stu_inf` FOR EACH ROW
BEGIN
UPDATE class SET classsum = classsum + 1
WHERE new.Smajor = majorname AND new.sclass = classnum;
UPDATE class SET classsum = classsum - 1
WHERE old.Smajor = majorname AND old.sclass = classnum;
END;
4. Resultados de operación y pruebas.
Interfaz en ejecución y sus representaciones.
Describa los problemas encontrados durante la depuración :
Durante el diseño inicial de la base de datos, faltaban algunas restricciones definidas por el usuario de la base de datos, lo que provocó que se escribieran algunos datos ilógicos e incorrectos en la base de datos. Posteriormente, se agregaron al programa condiciones de juicio de restricciones relevantes para garantizar la exactitud y coherencia de los datos.
Código completo: https://download.csdn.net/download/qq_38735017/87394449