[Php-avanzado] Nomalizacion
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Mie Nov 23 14:01:03 ART 2011
Hola Pablo,
te hago unos comentarios abajo sobre la normalización:
El lun, 21-11-2011 a las 17:14 -0300, pablo beroiza escribió:
> Control de entrada y salida
>
>
> Este sistema se realiza con el fin de optimizar el proceso de
> recoleccion, actualizacion y administracion de los datos de hora de
> entrada y hora de salida de cada taller.
> La realizacion de este sitema se basa en la creciente necesidad de
> gestionar la informacion desde cualquier pc en la intranet.
> Los usuarios finales obtendran al usar este producto la ventaja de
> tener la informacion de las horas trabajadas en el momento y lugar que
> se requiera por intermedio
>
>
> de una aplicacion web.
>
>
> Requerimientos funcionales
>
>
> 1 - El sistema debe gestionar jefes.
> 2 - El sistema debe gestionar talleres con su jefe[1].
> 3 - El sistema debe gestionar planes.
> 4 - El sistema debe gestionar cursos.
> 5 - El sistema debe gestionar alumnos con sus talleres[2] , su
> plan[3], su curso[4].
> 6 - El sistema debe gestionar dias no laborables.
> 7 - El sistema debe gestionar periodos de tiempo.
> 8 - El sistema debe registrar asistencia de los alumnos.
> 9 - El sistema debe mostrar las horas trabajadas por alumno.
> 10 - El sistema debe gestionar eventos.
> 11 - El sistema debe registrar las faltas justificadas con su
> evento[10], por alumno.
> 12 - El sistema debe manejar promocion de un curso.
>
>
> Requerimientos no funcionales
>
>
> 1 - El ingreso al sistema estara restringido por usuario y contraseña.
>
>
> Diccionario
>
>
> JEFESTALLERES(nombre, apellido, fecha_nac)
> TALLERES(nombre, jefe)
> CURSOS(nombre) Nivel de secundario (Ej.1º,2º, etc)
> PLANES(nombre, hora_por_dia) Los alumnos cumplen horas independiente
> de los talleres que asisten.
> PERIODOS(fecha_inc, fecha_fin) Fecha predefinida para una consulta
> (Ej. 01/02/211 - 30/05/2011)
> FERIADOS(fecha,nombre) Dias que no se sumarian
> ALUMNOS(nombre, apellido, fecha_nac, taller, fecha_ingreso, plan,
> curso, alumno_activo)
> ASISTENCIAS(alumno, taller, plan, hora_entrada, hora_salida,
> comentario)
> EVENTOS (nombre) Nombre de la falta (Ej. campamento, salida coro, etc)
> FALTAS_JUSTIFICADAS (alumno, fecha, evento)
>
>
>
>
> Cardinalidad
> TALLERES 1------1 JEFESTALLERES
> TALLERES N------M ALUMNOS
> CURSOS 1--------N ALUMNOS
> PLANES 1--------N ALUMNOS
> EVENTOS 1------1 FALTAS_JUSTIFICADAS
>
>
> Normalizacion:
>
>
> EVENTOS (id_evento, nombre) FALTAS_JUSTIFICADAS (id_falta_just,
> id_evento, alumno, fecha )
Para respetar tu propia nomenclatura, el campo "alumno" debería
llamarse "id_alumno".
>
> PERIODOS (id_periodo, fecha_inc, fecha_fin) FERIADOS (id_feriado,
> fecha, nombre)
>
>
> JEFESTALLERES (id_jefe_taller, nombre, apellido, fecha_nac) TALLERES
> (id_taller, id_jefe_taller, nombre )
>
>
> CURSOS (id_curso, nombre) PLANES (id_plan, nombre, hora_por_dia)
>
>
> TALLER_ALUMNO (id_taller_alumno, id_taller, id_alumno)
>
>
> ALUMNOS (id_alumno, nombre, apellido, fecha_nac, id_taller,
> fecha_ingreso, id_plan, id_curso, alumno_activo)
Las relaciones N-M necesitan otra tabla para almacenarse.
Si Alumnos tiene id_taller, podrá estar inscripto solo en un taller...
> ASISTENCIAS(id_asistencia, alumno, taller, plan, hora_entrada,
> hora_salida, comentario)
También por consistencia, quedaría mejor ponerle id_ adelante de
alumno, taller y plan.
> Hola Leo: Aca esta la normalizacion. Pero tengo dudas con la entidad
> "ASISTENCIAS" Cuando listo los atributos no se si tengo que ponerles
> el id_alumno, id_taller, etc. ya que estos no se borraran ni se
> actualizan. ¿Cómo doy a entender que son datos que no se borran?.
Esto no hay como darlo a entender solo con los nombres de los campos.
Sin embargo, queda clarísimo en la SRS que una asistencia no se borra,
porque especificás "8 - El sistema debe registrar asistencia de los
alumnos."
> Tambien no se como representar la cardinalidad de "ASISTENCIAS", si
> es que se representa.
Es una cardinalidad 1-1, pero queda claro por la SRS.
Acordate que al agregarle como atributo al Alumno si está activo o no,
ahora tenés que cambiar la SRS para que o de a entender que se puede
borrar un Alumno, porque si se puede borrar, la tabla Asistencias te
queda inconsistente...
Seguimos!
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
Blog: http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado