Los sistemas son un conjunto de partes que se relacionan con el fin de lograr un objetivo permitiendo darle soluciones a problemas, a través de su función, la cual se encuentra directamente determinada por su estructura, es por ello que al analizar el comportamiento de un sistema podemos determinar su estructura.
En este caso vamos a hacer un análisis estructural del sistema de registro de asistencia. Este tiene como objetivo generar una plataforma de interacción que permita el control de asistencias sustituyendo el registro manual e inexacto que actualmente se utiliza en las instituciones educativas del país. Basado en ello se puede determinar que el sistema de registro de asistencia se desenvolverá en un ambiente de tipo académico.
Ya que conocemos el enfoque de este hay tomar en cuenta que el mismo debe contener partes (entidades) con rasgos y propiedades. Las entidades que conforman la estructura de este sistema que permiten el registro de datos serian las siguientes:
Ø Alumnos.
Ø Profesores.
Ø Instituciones.
Ø Facultades.
Ø Escuelas.
Ø Asignaturas.
Ø Carreras.
Ø Cursos.
Ø Asistencias.
Antes de continuar con el desarrollo de este análisis es importante destacar las siguientes definiciones:
Primary Key (Clave primaria): Identifica de manera única cada fila de una tabla.La columna definida como clave primaria debe ser un valor único y no puede contener valores nulos; además, cada tabla sólo puede tener una clave primaria. Cuando la primary key de una determinada entidad es utilizada para representar un registro de la misma dentro de otra entrad, esta es llamas Foreing key (clave foránea).
Unique Key (Clave única): Una restricción de integridad (Unique Key) sobre una columna o conjunto de columnas define que dos filas de la tabla no pueden contener los mismos valores en esa columna o conjunto de columnas.
La estructura del sistema representada por tablas seria de la siguiente manera:
ALUMNOS
|
ATRIBUTOS
|
Id_alum
|
Nombres
|
Apellidos
|
Nacionalidad
|
Célula
|
Teléfono
|
Email
|
Dirección
|
Género
|
RESTRIC-
CIONES
|
Int
*Mayor que 0, auto-
incremental en cada registro.
Sera único y la Primary Key de esta entidad.
|
String
* Solo pueden contener letras.
|
String
* Solo pueden
contener letras.
|
Char
* Solo puede ser ‘v’
(venezolano) o ‘e’(extranjero).
|
Int
*Debe ser mayor que 0
y cada registro debe ser una unique key
|
Int
*Debe ser mayor que 0 y no debe contener mas de 11 caracteres.
|
String
*Debe contener una dirección de correo válida y ser un registro único.
|
String
* Solo puede contener letras y números enteros.
|
Char
* Solo puede contener ‘m’(masculino), ‘f’(femenino) o ‘o’ (otros o no binario).
|
* Alumnos: Esta entidad estará compuesta por: un id (id_alum) que será la Primary Key y un entero autoincremental en cada registro.Nombres,donde se registrara tanto el primer como el segundo nombre del usuario por lo tanto es un string que solo puede contener letras. Apellidos, que se encargará de registrar los apellidos del alumno y solo contendrá letras por lo tanto es un string . Nacionalidad, es de tipo char y podrá ser ‘v’ en caso de ser un alumno venezolano y ‘e’ en caso de ser alumno extranjero. Luego establecemos el atributo cédula que es de tipo entero y una unique key, de esta manera definimos que esta es única en cada registro (fila). Teléfono, será de tipo entero y no puede contener mas de 11 caracteres, que son los correspondientes a los números telefónicos nacionales. Email, será un string que deberá contener una dirección de correo valida y además al igual que la entidad cédula, será una unique key. Por otra parte dirección será un atributo de tipo string en la que solo se podrán registrar números correspondientes al domicilio del estudiante. Finalmente género, es un atributo de tipo char el cual puede contener solamente ‘m’ en caso e ser género masculino;’f’ en caso de ser género femenino y ‘o’ en caso de no corresponder a ninguno de los dos anteriores.
PROFESORES
|
ATRIBUTOS
|
Id_prof
|
Nombres
|
Apellidos
|
Nacionalidad
|
Célula
|
Teléfono
|
Email
|
Dirección
|
Género
|
RESTRIC-
CIONES
|
Int
*Mayor que 0, Auto-
incremental Y único en cada registro.Es
la primary key de esta entidad.
|
String
* Solo pueden contener letras.
|
String
* Solo pueden
contener letras.
|
Char
* Solo puede ser ‘v’
(venezolano) o ‘e’(extrajero).
|
Int
*Debe ser mayor que 0
y cada registro debe ser una unique key
|
Int
*Debe ser mayor que 0 y no debe contener mas de 11 caracteres.
|
String
*Debe contener una dirección de correo válida y ser un registro único.
|
String
* Solo puede contener letras y números enteros.
|
Char
* Solo puede contener ‘m’(maculino), ‘f’(femenino) o ‘o’ (otros o no binario).
|
Profesores: La entidad profesores en esta ocación poseerá básicamente la misma disposición de atributos y restricciones que la tabla alumnos, sin embargo, podría contener otros atributos que por ejemplo hicieran referencia al nivel de formación del profesor o su historial académico.
INSTITUCIONES
|
ATRIBUTOS
|
Id_inst
|
Rif
|
Nombre
|
Acrónimo
|
Dirección
|
Tipo De Institución
|
Rector
|
RESTRICCIONES
|
Int
*Mayor que 0, Auto-
incremental y único en cada registro.
Será la primary key de esta entidad.
|
Int
* Debe ser mayor que 0, de no máximo 9 dígitos y único en cada registro ya que es una unique key.
|
String
*Solo letras.
|
String
*Solo letras.
|
String
*No debe poseer más de 50 caracteres.
|
Char
* Debe ser ‘p’(publica) o ‘a’
(privada).
|
Foreing Key de la entidad Profesores.
|
Instituciones: El atributo principal de esta entidad será id_inst siendo un entero autoincremental en cada registro y la Primary Key. Rif, es el segundo atributo y una unique key, de tipo entero y de no más de 9 dígitos, en relación a la cantidad máxima de dígitos que posee un RIF. Nombre, es de tipo de dato string y acrónimo será un char que contendrá solamente letras que representa de forma breve el nombre de la institución. Por otra parte dirección será de tipo string en la que solo se podrá registrar números y letras que son correspondientes al domicilio de la institución. Tipo de institución registrará si la institución es publica o privada siendo un string que puede ser ‘p’ en caso de ser publica o ‘a’ en caso de ser privada. Finalmente la entidad rector que es determinada por la Foreing Key correspondiente al profesor que este actualmente como rector o director de la institución.
FACULTADES
|
ATRIBUTOS
|
Id_facultades
|
Nombre
|
Acrónimo
|
Institución
|
Dirección
|
RESTRICCIONES
|
Int
* Mayor Que 0 y será autoincremental y único en cada registro. Es la Primary Key de esta entidad
|
String
*Solo Letras.
|
String
*Solo letras.
|
Foreing Key de la entidad Instituciones.
|
String
*Solo puede contener letras, números y signos.
|
Facultades: Esta entidad contiene solo tres atributos: id_facul, que será la Primary Key de la entidad y un entero autoincremental en cada registro. Nombre, el cual es de tipo string y solo se le pueden ingresar letras. Acrónimo que es un string el cual solo contendrá letras que básicamente representarán de forma breve el nombre de la facultad. Institucion, determinado por la Foreing Key que representa a la entidad Instituciones. Dirección, es de tipo string que solo puede contener letras, números y signos.
ESCUELAS
|
ATRIBUTOS
|
Id_escuelas
|
Nombre
|
Acrónimo
|
Facultad
|
RESTRICCIONES
|
Int
* Mayor que 0, autoincremental y será único en cada registro.Es la primary key de la entidad Escuelas.
|
String
*Solo Letras.
|
String
*Solo letras.
|
Foreing Key de la entidad Facultades.
|
Escuelas: El primer atributo de la entidad es el id_escuelas que actuará como Primary Key y será un entero autoincremental único en cada registro. Nombre, es un atributo de tipo string que solo admite letras. Acrónimo es de tipo string y solo admite letras que permitirán nombrar a la escuela de forma concisa. Las escuelas pertenecen a una determinada facultad es por ello que en esta entidad vamos a añadir un atributo llamado Facultad determinado por la Foreing Key que representa a la entidad Facultades pertinente en cada registro.
ASIGNATURAS
|
ATRIBUTOS
|
Id_asig
|
Nombre
|
Escuela
|
Créditos
|
Coordinador
|
Plan de estudio
|
RESTRICCIONES
|
Int
* Mayor que 0 , autoincremen-tal y único en cada registro. Será la Primary key de la entidad asignaturas.
|
String
*Solo letras.
|
Foreing Key de la entidad Escuelas.
|
Int
*Debe ser mayor que 0.
|
Foreing Key de la entidad Profesores.
|
Strig
* Solo puede contener números y letras.
|
Asignaturas: Esta entidad está compuesta por: id_asig ; que actuara como Primary Key de la entidad y será un entero autoincremental en cada registro. Nombre, será un string que puede contener solamente letras. Escuelas está determinado por la Foreing Key de la entidad Escuelas correspondiente en cada registro. Creditos, es un entero mayor que 0 que representa la cantidad de creditos que vale la asignatura. Coordinador será determinado por la Foreing Key de la entidad profesor correspondiente. Finalmente, Plan de Estudio será un string que podrá contener solamente letras y números.
CARRERAS
|
ATRIBUTOS
|
Id_carre
|
Nombre
|
Duración
|
Escuela
|
Pensum
|
RESTRICCIONES
|
Int
* Mayor que 0, autoincremen-tal y único en cada registro. Es la Primary Key de esta entidad.
|
String
*Solo letras.
|
String
*Debe ser expresado en años, semestres o trimestres..
|
Foreing Key de la entidad Escuelas.
|
Foreing Keys de la entidad Asignaturas..
|
Carreras: Esta entidad posee como primer atributo a id_carre que sera un entero autoincremental y a s vez la Primary Key de esta entidad. Nombre, es de tipo de dato string y solo puede contener letras. Duracion es un atributo que representa la duración de la carrera y puede ser expresado en años, semestres o trimestres, lo cual dependerá de la carera, escuela, facultad o universidad. Escuelas, sera determinado por la foreing key correspondiente a la entidad Escuelas Y; finalmente pensum, que puede contener una o mas Foreing Keys correspondientes a la entidad Asignaturas.
PERIODOS LECTIVOS
|
ATRIBUTOS
|
Nombre
|
Duración
|
Fecha de inicio
|
Fecha de culminación
|
RESTRICCIONES
|
String
* Debe contener números y signos y ser único en cada registro ya que sera la Primary Key de la entidad cursos.
|
String
*Puede contener letras y números.
|
String
*Solo puede contener letras, números y signos.
|
String
*Solo puede contener letras, números y signos.
|
Periodos lectivos: Esta entidad está conformada por : Nombre, que es la Primary Key de la entidad y por lo tanto es un entero autoincremental en cada registro. Duración el cual es de tipo string y puede contener tanto letras como números que expresaran la duración del periodo lectivo en semanas. Y fecha de inicio y fecha de culminación, ambos de tipo string y contendrán la fecha en la que comienza el periodo y la fecha en la que termina.
CURSOS
|
ATRIBUTOS
|
Seccion
|
Aula
|
Asignatura
|
Profesor
|
Periodo lectivo
|
RESTRICCIONES
|
String
* Solo puede contener letras y números, debe ser único en cada registro. Es la Primary Key de esta entidad.
|
Int
*Mayor que 0.
|
Foreing Key de la entidad Asignaturas.
|
Foreing Key de la entidad Profesores.
|
Foreing Key de la entidad Periodos Lectivos.
|
Cursos: El atributo principal de la entidad es sección, que es la Primary Key; en este caso a diferencia de las tablas anteriores, la Primary Key sera de tipo de dato string. Aula es el segundo atributo, de tipo entero y mayor que cero. Asignatura, estará representada por la foreing key correspondiente a la asignatura que se dicta en ese curso. Profesor, al igual que asignatura esta determinado por la foreing key correspondiente al profesor que dicta el curso y finalmente el Periodo Lectivo que también está determinado por la foreing key correspondiente al periodo en el cual transcurre el curso.
MATRíCULAS
|
ATRIBUTOS
|
Id_matricula
|
Id_curso
|
Id_alum
|
RESTRICCIONES
|
Int
*Mayor que 0 , autoincremental y único en cada registro.
|
Foreing Key de la entidad cursos.
|
Foreing Key de la entidad alumnos.
|
Matrículas: Matrículas es una entidad que desde el punto de vista de base de datos se diferencia de las demás ya que esta tabla es una tabla de transacción, en donde básicamente se relacionan las entidades cursos (id_curso) y alumnos (id_alum).
ASISTENCIAS
|
ATRIBUTOS
|
N°
|
Alumno
|
Institución
|
Facultad
|
Curso
|
Periodo Lectivo
|
RESTRICCIONES
|
Int
*Mayor que 0 y autoincre- mental.
|
Foreing Key de la entidad alumnos.
|
Foreing Key de la entidad instituciones.
|
Foreing Key de la entidad facultades.
|
Foreing Key de la entidad cursos.
|
Foreing Key
de la entidad periodos lectivos.
|
Asistencias: El primer atributo de esta entidad es n° que registrara el numero de la asistencia. Los demás atributos que conformarían la entidad son alumno, institución, facultad, curso y periodo lectivos, todas estas determinados por su foreing key correspondiente.
Todo lo explicado lo podemos ver ejemplificado en el siguiente enlace:
https://drive.google.com/file/d/1P5py_N08vLxq8Rz-6U7xGfV_FBzEIW5G/view?usp=sharing