Informe Final v2

INGENIERÍA DE SISTEMAS UNIVERSIDAD NACIONAL DE TRUJILLO BASE DE DATOS 06 / 12 / 2018 Conteni INTEGRANTES: Proyecto

Views 76 Downloads 0 File size 7MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

INGENIERÍA DE SISTEMAS

UNIVERSIDAD NACIONAL DE TRUJILLO

BASE DE DATOS 06 / 12 / 2018

Conteni

INTEGRANTES:

Proyecto Base de Datos Avanzada

ALVARADO ROJAS, ROSA MARIA DELGADO RODRIGUEZ, NILSON FREID DIAZ ARGOMEDO, CESAR ALEJANDRO GUTIERREZ CASTAÑEDA, ROBERT JOSE SABA SÁNCHEZ, JHON JAIRO

DOCENTE: DR. LUIS BOY CHAVIL

CURSO: BASE DE DATOS AVANZADA

TRUJILLO PERÚ

2019 UNIVERSIDAD NACIONAL DE TRUJILLO ESCUELA DE INGENIERIA DE SISTEMAS Proyecto Final 1

INGENIERÍA DE SISTEMAS

UNIVERSIDAD NACIONAL DE TRUJILLO

BASE DE DATOS 08 / 07 / 2019

DEDICATORIA Gracias a mis padres que me dieron la vida y me brindaron su apoyo incondicional pese a sus limitaciones. Alvarado Rojas, Rosa María

Quiero dedicarle este trabajo a mi abuelita Natividad que me cuida desde el cielo y fortaleza para terminar este proyecto de vida. A mis Padres por estar ahí cuando más los necesité; en especial a mi madre por su ayuda y constante cooperación.

Gracias a Dios por siempre ayudarme y a mi familia por el apoyo que me brindan siempre. Mi triunfo es el de ustedes ¡Los amo! Díaz Argomedo, César Alejandro

Delgado Rodríguez, Nilson Freid

Gracias a mis padres por siempre apoyarme para alcanzar todas mis metas y a Dios por siempre darme fuerzas para seguir luchando. Gutiérrez Castañeda, Robert

Proyecto Final 111

INGENIERÍA DE SISTEMAS BASE DE DATOS

UNIVERSIDAD NACIONAL DE TRUJILLO

08 / 07 / 2019

111

INTRODUCCIÓN El presente proyecto propone desarrollar un sistema de información que permita dar soporte al proceso de tesis en la escuela de postgrado de la sección de Ingeniería, de la Universidad Nacional de Trujillo, basándonos en la metodología de modelado de casos para mejorar el diseño del aplicativo, así como guiándonos de las reglas de normalización de datos para realizar un correcto modelado de base de datos. En la actualidad la escuela si cuenta con algún aplicativo para gestionar el proceso de tesis, aunque presenta deficiencias que intentaran ser suplidas.

A Dios como ser supremo y concededor de la vida y el conocimiento, porque sin él no hubiera logrado estar aquí, a punto de terminar una de las etapas más importante de mi vida, le doy gracias por haberme dado fortaleza, sabiduría, confianza y salud, lo cual me permitió continuar con mis estudios año tras año.

El

sistema

de

información

será

desarrollado con un software libre y se utilizó herramientas como: Rational Software Arquitec para elaborar tanto el modelo de análisis del negocio y el modelo de casos de uso del negocio; para realizar el modelado de la base

Saba Sánchez, Jhon Jairo

Proyecto Final 111

INGENIERÍA DE SISTEMAS

UNIVERSIDAD NACIONAL DE TRUJILLO

BASE DE DATOS 08 / 07 / 2019

de datos se utilizó CA Erwin DataModeler y la base de datos111 se desarrolló en SQL server. La interfaz del sistema es presentada en una página web que se ha desarrollado en visual studio mediante una programación por capas. Dentro de las tareas básicas estarán el registro de proyectos de tesis, la asignación de jurados, registro y visualización del cronograma de presentaciones de tesis. Se espera lograr el objetivo de contar con una herramienta informática que facilite la gestión de tesis por parte de la dirección de escuela, así como permitir a los tesistas el rápido acceso a la información sobre el avance de su proyecto de tesis. Este proyecto es elaborado en el marco de la clase de base de datos avanzado como requisito para aprobar dicha asignatura.

INDICE 1.

CAPITULO I: GENERALIDADES...............................................................................................1 1.1.

Generalidades de la Empresa.......................................................................................2

1.1.1.

Breve reseña histórica de la UNT..........................................................................2

1.1.2.

Estructura Organizacional de la UNT....................................................................3

1.1.3.

Visión, Misión y Objetivos de la UNT....................................................................3

1.2.

Generalidades del Proyecto..........................................................................................4

1.2.1.

Título del proyecto...............................................................................................4

1.2.2.

Objetivo general del proyecto..............................................................................4

1.2.2.1.

2.

Objetivos específicos....................................................................................4

1.2.3.

Limitaciones..........................................................................................................4

1.2.4.

Cronograma de actividades, periodo 2019-I.........................................................5

1.2.5.

Análisis de requerimientos funcionales y no funcionales del proyecto................6

CAPITULO II: CARACTERISTICAS DEL SISTEMA ACTUAL........................................................8 2.1.

Realidad sistemática del problema...............................................................................9

2.1.1.

Organización sincrónica del problema..................................................................9

Proyecto Final 111

INGENIERÍA DE SISTEMAS

UNIVERSIDAD NACIONAL DE TRUJILLO

BASE DE DATOS 08 / 07 / 2019

3.

2.1.2.

Organización diacrónica del problema:..............................................................10 111

2.1.3.

Árbol de Causa-Efecto........................................................................................11

2.1.4.

Descripción de la Realidad Problemática............................................................12

2.2.

Plan y diseño de entrevistas.......................................................................................13

2.3.

Modelo de Objetos del Negocio.................................................................................15

2.3.1.

Modelo de casos de uso del negocio..................................................................15

2.3.2.

Modelo de Análisis:............................................................................................18

2.3.3.

Diagramas de actividades de caso de uso del negocio:......................................22

2.3.4.

Diagrama de estado de los objetos identificados:..............................................27

CAPITULO III: SISTEMA PROPUESTO...................................................................................30 3.1.

Modelo de Objetos del Sistema..................................................................................31

3.1.1. 4.

Modelo de casos de uso del sistema(Requisitos)...............................................31

CAPITULO IV: DISEÑO DEL SISTEMA PROPUESTO...............................................................32 4.1.

Descripción de Datos:.................................................................................................33

4.1.1.

Modelo Normalizado de la base de datos; en Erwin:.........................................33

4.1.2.

Diseño de la base de datos en SQL Server:.........................................................34

4.1.3.

Integridad de datos.............................................................................................35

4.1.3.1.

Script de toda la base de datos en T-SQL:...................................................35

4.1.3.2.

Script de Dominio de atributos y valores por defecto................................39

4.1.3.3.

Script de disparadores para la integridad de datos....................................40

4.1.3.4.

Script de Procedimientos Almacenados y vistas de la base de datos.........42

4.1.3.5.

Script de Funciones escalares y de tablas de múltiples sentencias.............63

4.1.3.6.

Script de Cursores.......................................................................................65

4.1.4.

Procesamiento de transacciones........................................................................66

4.1.5.

Procesamiento de reportes................................................................................67

4.1.5.1.

Reportes Operacionales:.............................................................................67

4.1.5.2.

Reportes Tácticos:.......................................................................................68

4.1.5.3.

Reportes Estratégicos, para decisiones de largo plazo...............................69

4.1.6.

Procesamiento de reportes con KPI....................................................................70

4.1.6.1. 4.2.

Procesamiento de tableros de control con Qlik View.................................70

Administración de la Base de Datos:..........................................................................71

4.2.1.

Instalación del Servidor de la Base de datos:......................................................71

4.2.2.

Seguridad de datos:............................................................................................79

4.2.2.1.

Descripción del plan de Seguridad de datos:..............................................79

4.2.2.2.

Operaciones de Backup y Restore de la base de datos:..............................79

4.2.3.

Gestión de usuarios de la base de datos.............................................................84

Proyecto Final 111

INGENIERÍA DE SISTEMAS

UNIVERSIDAD NACIONAL DE TRUJILLO

BASE DE DATOS 08 / 07 / 2019

4.2.3.1. 4.2.4. 4.3.

5.

Creación de Usuarios; asignación de permisos; roles y derechos...............84 111

Implementación del Plan de Mantenimiento:....................................................86

Diseño de la Interface.................................................................................................87

4.3.1.

Diseño del menú de las Opciones del Sistema....................................................87

4.3.2.

Diseño de la Interfaz del Administrador.............................................................87

4.3.3.

Diseño de la Interfaz del usuario........................................................................88

CAPITULO V: IMPLEMENTACIÓN DEL SISTEMA PROPUESTO..............................................89 5.1.

Modificación del Sistema Integrado en Visual Basic NET............................................90

5.1.1.

Programación de la Clase Frontera.....................................................................90

5.1.2.

Programación de la Clase de Datos y Conectividad............................................91

5.1.3.

Programación de la Clase Entidad......................................................................96

5.1.4.

Programación de la Clase Negocios..................................................................101

5.1.5.

Codificación integral con programación por capas en VB NET.........................102

5.2.

Implementación de Reportes para decisiones en QlikView y RS..............................102

ANEXOS:...................................................................................................................................112

Proyecto Final 111

111

1. CAPITULO I: GENERALIDADES

1.1. Generalidades de la Empresa 1.1.1. Breve reseña histórica de la UNT Cuando faltaban 88 días para la batalla de Junín, en su cuartel de Huamachuco, el Libertador Simón Bolívar firmo la resolución que crea la Universidad Nacional de Trujillo, a sugerencia del ilustre huamachuquino José Faustino Sánchez Carrión, entonces secretario personal del gran venezolano. El decreto de fundación, que se guarda en esta casa de estudios, fue rubricado el 10 de mayo de 1824. La ceremonia de instalación habría de tomar unos años. Esta se cumplió el 12 de octubre de 1831, durante el primer gobierno del presidente de la República Mariscal Agustín Gamarra. El magno acto se realizó en la capilla interior del Colegio Seminario de San Carlos y San Marcelo. La ceremonia de instalación fue muy pomposa y estuvo presidida por el Prefecto del Departamento, Coronel Don Tomás Diéguez de Florencia. Asistieron todas las corporaciones civiles, militares, eclesiásticas y vecinos notables. El primer rector efectivo fue don Pedro José de Soto y Velarde, y su primer secretario el Dr. José Mercedes Vigo. La primera sesión de claustro tuvo lugar el 4 de noviembre de 1831. El acuerdo más importante fue gestionar y entregar expedito el local de la Compañía de Jesús. Unos días después se otorgó el grado a don Manuel Bringas, quien optó los grados de Licenciado y Doctor en Leyes. El 23 de noviembre de 1831 el supremo gobierno nombró como patronos de la Universidad a Santo Tomás y Santa Rosa de Lima. Los primeros ambientes donde funciono la universidad fueron dentro del colegio fundado por obispos El Salvador. En las instalaciones del colegio Seminario funciono hasta el año 1834, cuando paso luego al local ubicado en las esquinas de Almagro e Independencia, el conocido convento de la Compañía de Jesús. La galería rectoral de este periodo se encuentra engalanada por 14 probos varones, muchos de ellos fueron figuras señeras de la gesta emancipadora, y otros, brillantes parlamentarios, juristas y políticos destacados. De sus aulas egresaron el vate universal César Vallejo en 1916, el primer filósofo político Antenor Orrego en 1928 y el ingeniero industrial del siglo XX Luis Banchero Rossi en 1950. A partir de la década del 40 la UNT ingresó a una etapa de gran prestigio académico a nivel nacional. En 1941 se estableció como Día de la Universidad el 12 de octubre, y se empezó las gestiones para levantar la Ciudad Universitaria y la creación de la Escuela de Medicina. En las paredes del perímetro del campus universitario se elabora el mural hecho de pequeños mosaicos más grande de Latinoamérica, dicho mural tiene aproximadamente un kilómetro de longitud y se muestra la riqueza arqueológica, cultural y los recursos naturales del pueblo peruano a través de sus generaciones. La universidad cuenta con uno de los campus universitarios más grandes del país, en el cual además de

encontrarse los edificios de las facultades se encuentran también los laboratorios, anfiteatros, cafeterías, múltiples bibliotecas, centros de investigación, etc. Tanto el rectorado como la escuela de pesquería y la Facultad de Medicina cuentan con locales propios fuera del campus universitario.

1.1.2. Estructura Organizacional de la UNT

1.1.3. Visión, Misión y Objetivos de la UNT o Visión “Al 2024, ubicada entre las cinco primeras universidades del Perú, reconocida por su calidad, por su vocación democrática, por la formación integral del talento humano, la investigación científica, tecnológica, humanística y la innovación; con responsabilidad social satisface a los grupos de interés y contribuye al desarrollo sostenible de la región La Libertad y el país”. o Misión “Somos la primera universidad republicana del Perú, formamos profesionales y académicos competitivos, con calidad, críticos, éticos y socialmente responsables; creamos valor generando y transfiriendo conocimiento científico, tecnológico, humanístico e innovador, para el desarrollo sostenible de la región La Libertad y el País". o Objetivos  Lograr una formación integral del estudiante, basado en la calidad, la pertinencia y la ética que satisfaga a los grupos de interés.  Generar investigación científica e innovación de calidad, y pertinente con el desarrollo sostenible.  Implementar y gestionar la extensión, proyección y responsabilidad social requeridas por la demanda social.  Implementar una dirección estratégica integrada, eficaz y eficiente para el desarrollo institucional.  Priorizar la implementación de la calidad con pertinencia en todos los procesos de la universidad.  Brindar servicios de atención y prevención eficaces y eficientes que aseguren el bienestar de la comunidad universitaria.

 Lograr que los recursos y capacidades tengan un rendimiento óptimo para el aseguramiento de la calidad.

1.2. Generalidades del Proyecto 1.2.1. Título del proyecto “Sistema de gestión de bases de datos del área de Investigación de la Escuela de Postgrado de la sección de Ingeniería de la Universidad Nacional de Trujillo”

1.2.2. Objetivo general del proyecto Mejorar la gestión de proyectos de investigación científica del alumno perteneciente a la Escuela de Postgrado de la sección de Ingeniería de la Universidad Nacional de Trujillo, mediante la implementación de un Sistema. 1.2.2.1. Objetivos específicos

   

Aumentar el nivel de satisfacción del personal respecto a la gestión de proyectos de investigación. Reducir el tiempo de ejecución del proceso de registrar los proyectos de investigación. Reducir el tiempo de generación de reportes solicitados por el docente encargado. Optimizar el proceso de asignación de fechas para presentación de proyectos.

1.2.3. Limitaciones 



  

No todos los integrantes del grupo cuentan una laptop apropiada con los programas necesarios para poder avanzar con el proyecto en la Universidad. Para las reuniones con el personal que interviene en la gestión de proyectos de investigación de dirección de escuela, se dispone de horarios de trabajo. El cual es restringido para hacer las labores propias de la investigación. Impedimentos y restricciones por parte del personal del área de investigación para brindarnos la información requerida. La poca disponibilidad de tiempo de algunos miembros del grupo, por algunos cursos adicionales y horarios de trabajo. La información que nos fue brindada era apócrifa, la cual nos hizo realizar un proyecto que no se ajustaba a la realidad problemática de la escuela de ingeniería de sistemas, por el cual el grupo de trabajo se vio obligado a migrar a otro proyecto que sea más acorde a nuestro desarrollo.

1.2.4. Cronograma de actividades, periodo 2019-I.

1.2.5. Análisis de requerimientos funcionales y no funcionales del proyecto REQUERIMIENTOS FUNCIONALES N° RF RF01

RF02

Requerimiento funcional Autenticarse en el sistema

Registrar de tesis.

proyecto

RF03

Registrar docente

RF04

Registrar alumno

RF05

Asignación jurados

RF06

RF07

RF08

RF09

de

Asignar cronograma de sustentación Registrar Reuniones de asesoramiento

Registro evaluación sustentación Emitir reportes

de de

Descripción detallada El sistema debe permitir el acceso si tiene credenciales de acceso, las cuales constan de un usuario (DNI) y password, los cuales les permitirán acceder según los perfiles (Alumno, Docente encargado, Secretaria y Director) que tenga asignado. Y también pueda cambiar clave. El sistema debe permitir el registro de proyectos indicando el alumno y el asesor correspondiente. El sistema debe permitir al director de sección registrar un nuevo docente. El sistema debe permitir a la secretaria de sección registrar un nuevo alumno. El sistema debe permitir al director de sección asignar los 5 jurados seleccionando una determinada tesis. El sistema debe permitir al director asignar un cronograma seleccionando una tesis indicando la fecha, hora y lugar en donde se realizara. El sistema debe permitir al asesor registrar las reuniones de asesoramiento que tendrá con el alumno indicando el día y lugar en que se realizo y registrar las observaciones que tuvo el avance presentado. El sistema debe permitir que cada jurado registrar la evaluación de una sustentación ingresando las observaciones y la decisión de aprobarlo y desaprobarlo. El sistema debe emitir reportes los cuales muestren los datos de las tesis pendientes a sustentar, las tesis por cada asesor y jurado, así como cantidad de tesis por año, que permitan al usuario obtener información o tomar una decisión con la data obtenida.

Impacto (1…5)

4

2 4 4 4

5

5

4

4

REQUERIMIENTOS NO FUNCIONALES

1. Apariencia o Interfaz:  Las interfaces deben ser de fácil uso y contener colores e imágenes que representen al rubro de la institución. 2. Usabilidad  El lenguaje empleado en la interfaz gráfica debe ser claro y respetará los términos usados en proyectos de investigación científica. 3. Rendimiento  El sistema deberá contar con una alta velocidad y respuesta ante las solicitudes del cliente.  El sistema deberá estar disponible cuando lo requiera.  Para las opciones de ingreso o revisiones de proyecto de investigación, éste debería estar disponible según lo cronometrado por el docente responsable. 4. Soporte  La información manejada por el sistema deberá estar protegida de accesos no autorizados.  Los manuales deberán ser entendibles. 5. Confiabilidad  El sistema deberá contar con un manual de usuario detallado, en donde se dará a conocer el correcto uso del sistema.  Tolerancia a fallos correspondiente al BD. 6. Clientes  Sistema Operativo desde Windows XP en adelante.  El Sistema podrá ser visualizado en cualquier navegador.

2. CAPITULO II: CARACTERISTICAS DEL SISTEMA ACTUAL

2.1. Realidad sistemática del problema 2.1.1. Organización sincrónica del problema En la organización sincrónica se establece los elementos del sistema identificando las variables endógenas y exógenas; así como aquellas variables que generan ruido como son las que se encuentran en el ambiente. A continuación, se muestra el cuadro pictográfico de la organización sincrónica:

VARIABLES ENDÓGENAS   

Alumnos Trabajadores de la sección de ingeniería Director de sección de ingeniería

VARIABLES EXÓGENAS  

Director de Escuela de Postgrado Universidad Nacional de Trujillo

2.1.2. Organización diacrónica del problema: Se establece la relación entre los elementos y la secuencia de operaciones que describen al sistema. Veamos cuál sería el gráfico representativo:

o o

o o

o

Entrada  Investigador Procesos 1. Registro de Documentación del Investigador 2. Registro de Investigación del Investigador 3. Registro del Avances 4. Evaluación de Avances 5. Evaluación de proyecto de investigación 6. Evaluación de informe final 7. Emitir reportes Salida  Reportes y consultas atendidas Valoración  Calidad de servicio  Evaluación del documento Retroalimentación  Realizar un nuevo requerimiento

2.1.3. Árbol de Causa-Efecto Hay muchos métodos y metodologías que toman como base la analogía hacia el árbol. El árbol de problemas y el árbol de objetivos son ejemplo de ello Es una forma de representar el problema logrando de un vistazo entender qué es lo que está ocurriendo (problema principal), por qué está ocurriendo (causas) y que es lo que esto está ocasionando (los efectos o consecuencias), lo que nos permite hacer diversas cosas en la planificación del proyecto.

2.1.4. Descripción de la Realidad Problemática Dentro de la Universidad Nacional de Trujillo, la escuela de postgrado es independiente del manejo del proceso de registro de tesis, en este caso la sección de ingeniería cuenta con una gran cantidad de docentes disponibles listados por especialidad para encargase del asesoramiento y evaluación de la tesis, además existe secretarias y el director de unidades encargados de las funciones administrativas. En esta problemática están comprometidos tanto los alumnos de postgrado; siendo ellos los principales interesados en elaborar su tesis; también están implicados los trabajadores de escuela de la sección de ingeniería (docentes o secretaria), los primeros poseen roles que van desde ayudar al tesista con el avance de su proyecto (asesor) hasta la evaluación del resultado final (jurado), mientras el segundo trabajador se ocupa del registro de los proyectos de tesis y manejo de documentos; finalmente se encuentra comprometido el Director de sección quien se responsabiliza de dar la aprobación de cada avance bimensual de tesis que se presenta. Externamente, están involucrados, el Director de Postgrado y la Universidad Nacional de Trujillo, pues esta área funciona dentro de sus jurisdicciones, y son los encargados de velar por el correcto funcionamiento de la misma. Actualmente, se ha observado que los tesistas para acceder a la información referente a su tesis necesitan recurrir de manera presencial a un intermediario como es la secretaria de escuela, la cual no siempre tiene a la mano dicha información debido a los altos volúmenes de documentos físicos que maneja; lo que obliga al tesista a perder tiempo y realizar nuevamente el mismo proceso. De las indagaciones, se ha observado que hay deficiencias en el proceso de realización de tesis, debido a que existe una alta burocracia en la universidad que impide la agilización de los procesos, existiendo cargos que podrían ser remplazados por sistemas; no existen intentos de parte de los antiguos y actuales gobiernos por reducir la estructura de los organigramas, tampoco de proponer o realizar planificaciones para poder contrarrestar esto problemas; además falta contratar más personal capacitado en el área de sistemas de cómputo para la generación de software especializado para cada área. Los efectos de estas causas son lentitud en el procesamiento de información, así como generación de reportes erróneos, debido a la falta de acceso de información, como acumulación de volúmenes de información. Siendo todos estos efectos englobados en uno más grande, que es la ineficiencia en el cumplimiento de labores del área.

El problema detectado afecta a los tesistas; pues al no tener acceso a la información oportuna y tener que pasar por largos tiempos de espera, genera un atraso en la obtención de su maestría o doctorado, como una pérdida del tiempo para el mismo. Con la finalidad de hacer frente a esta problemática se plantea el desarrollo e implementación de un software, capaz de cumplir con todos los requerimientos funcionales que necesita el área de investigación de la escuela de postgrado de la sección de ingeniería.

2.2. Plan y diseño de entrevistas Referente al método para la obtención de información del presente proyecto: SISTEMA DE GESTIÓN DE BASES DE DATOS DEL ÁREA DE INVESTIGACIÓN DE LA ESCUELA DE POSTGRADO DE LA SECCIÓN DE INGENIERÍA DE LA UNIVERSIDAD NACIONAL DE TRUJILLO Consideramos idóneo la creación de un cronograma de visitas por un periodo de tiempo de 1 día a la Oficina del Ingeniero Boy, con la finalidad de extenderles cuestionarios que puedan ayudarnos a una obtención ágil de información concreta que beneficie el desarrollo del proyecto en mención. Las entrevistas se realizaron 1 vez durante 2 horas, con el ingeniero BOY CHAVIL LUIS. disponga de tiempo disponible para poder realizar las encuestas planificadas. Cuestionario de preguntas: a. ¿Qué se necesita para poder registrar un proyecto de investigación? b. ¿Cuál es el límite de asesorados que puede tener un docente? c. ¿Cómo se establece las reuniones que tendrán el asesor con el alumno? d. ¿Cuál es el formato de predictamente que presenta un jurado?, ¿Qué sucede si desaprueba? e. ¿Qué reglamento hay acerca de que si no presenta a tiempo en cada etapa de tesis? j. ¿Se pueden aplazar las fechas de presentación si en caso se soliciten? k. ¿Cuándo un asesor puede ser desplazado de su cargo? ¿Quién tiene ese poder? l. ¿Un alumno puede cambiar el tema de su proyecto de investigación, si es así que procedimientos deberá hacer?

m. ¿Cuántos días se dan como plazo desde el inicio de la asignación de tesis para que se dé una presentación final? n. ¿Puede haber más de un alumno en un grupo de investigación? o. ¿Qué sucede luego de ser aprobado el proyecto de investigación, cual es el proceso que sigue y qué personas se ven involucradas? p. ¿Qué elementos serian indispensables dentro de un sistema enfocada al área, que pueda cumplir con todas las necesidades? q. Le

gustaría

que

el

sistema

cuente

con

los

requerimientos: i. Autenticarse en el sistema. ii. Registrar proyecto de investigación científica. iii. Habilitar fechas de ejecución. iv. Evaluar proyectos de investigación científica. v. Registrar avances. vi. Evaluar avances. vii. Registrar informe final. viii. Evaluar informe final. ix. Levantar observaciones. x. Emitir reportes.

siguientes

2.3. Modelo de Objetos del Negocio 2.3.1. Modelo de casos de uso del negocio Actores del negocio: Actor:

Empresa: Escuela de Ingeniería de Sistemas Sistema: Pagina Web Elaborado por: Alumnos de Ingeniería de Sistemas Fecha: 12/07/2019

Representa: Individuo que colabora de manera económica o a través de materiales al alumno para la realización de su tesis.

Actor:

Empresa: Escuela de Ingeniería de Sistemas Sistema: Pagina Web Elaborado por: Alumnos de Ingeniería de Sistemas Fecha: 12/07/2019

Representa: Individuo que se inscribe a la escuela de postgrado para realizar su tesis.

Casos de Uso del Negocio Casos de Uso

Empresa: Universidad Nacional de Trujillo Sistema: Pagina Web Elaborado por: Alumnos de Ingeniería de Sistemas Fecha: 12/07/2019 Objetivo: Aumentar la satisfacción del personal y reducir el tiempo de generación de los reportes solicitados Precondiciones: -Para que proceda dicha matrícula (solicitud de tesis), es requisito la presentación de la copia autenticada del grado de bachiller expedido por la universidad. Flujo Principal: 1. El alumno debe realizar matricula en el ciclo correspondiente 2. Seleccionar tema de investigación y seleccionar asesor (AE1) 3. El alumno debe elaborar cronograma de reuniones junto con el asesor. 4. El director de Sección genera documento de aceptación de asesor. Flujo Alternativo: AE1. Si el asesor escogido tiene más de 5 alumnos para asesorar, el alumno deberá escoger otro profesor. Excepciones: Post Condiciones: Aprobar el ciclo correspondiente.

Casos de Uso

Empresa: Universidad Nacional de Trujillo Sistema: Pagina Web Elaborado por: Alumnos de Ingeniería de Sistemas Fecha: 08/07/2019 Objetivo: Aumentar la satisfacción del personal y reducir el tiempo de generación de los reportes solicitados Precondiciones: -El alumno debe tener un asesor asignado. Flujo Principal: 1. El Alumno debe pasar el ciclo II (Elaboración de proyecto de tesis). 2. El alumno debe pasar el ciclo III (Ejecución de proyecto de tesis). 3. El alumno debe pasar el ciclo IV (Ejecución y redacción del informe de tesis). 4. En medio del cuarto ciclo el jurado evalúa el borrador de tesis y emite un predictamen.(F1) Flujo Alternativo: F1. Si el predictamen es aprobatorio, el tesista prepara el informe final de la tesis, tomando en cuenta las observaciones y sugerencias del jurado. Si es desaprobatorio, el tesista puede mejorar la tesis en un plazo no menor de seis meses o elaborar un nuevo proyecto de tesis que lo devolverá a tener que presentar su solicitud de tesis. Excepciones: Post Condiciones: Casos de Uso

Empresa: Universidad Nacional de Trujillo Sistema: Pagina Web Elaborado por: Alumnos de Ingeniería de Sistemas Fecha: 08/07/2019 Objetivo: Aumentar la satisfacción del personal , reducir el tiempo de generación de los reportes solicitados y Reducir tiempos de procesos de registro proyectos de investigación Precondiciones: - Tener un predictamente de aprobación. Flujo Principal: 1. El director de Sección genera el cronograma de sustentación 2. La secretaria de Sección publica el cronograma 3. El alumno asiste a sustentar su tesis (F1). 4. A los jurados se les reparte una hoja de evaluación de la sustentación(F2). 5. El alumno realiza la sustentación y los jurados la califican. 6. La secretaria recoge los resultados de evaluación y son recepcionados por el director de escuela de posgrado. 7.El director de escuela, expone los resultados públicamente.(F3) Flujo Alternativo: F1. Si el alumno no asiste a sustentar su tesis, el jurado elabora un dictamen desaprobatorio. F2. En caso faltase un jurado, los jurados accesitarios tomaran su lugar, y caso contrario aun así siguiese faltando jurados, el director de sección tomara ese lugar, con previo dialogo con el director de escuela. F3. Si el resultado es aprobatorio, se genera una resolución de aprobación, caso contrario, el alumno posee seis meses para arreglar el proyecto y volver a sustentarlo. Excepciones:

Post Condiciones:

Caso de Usos del Negocio vs Objetivos del Negocio

Objetivos del negocio

Diagrama General de Casos de Uso del Negocio

2.3.2. Modelo de Análisis: Trabajadores del negocio: Trabajador:

Empresa: Escuela de Ingeniería de Sistemas Sistema: Pagina Web Elaborado por: Alumnos de Ingeniería de Sistemas Fecha: 08/07/2019

Representa: Individuo encargado de asignar los jurados, formalizar las tesis aprobadas y firmar el formato de asignación de asesor de tesis. Trabajador:

Empresa: Escuela de Ingeniería de Sistemas Sistema: Pagina Web Elaborado por: Alumnos de Ingeniería de Sistemas Fecha: 08/07/2019

Representa: Individuo que se encarga de todo el registro de información de tesis y proyecto de tesis. Trabajador:

Empresa: Escuela de Ingeniería de Sistemas Sistema: Pagina Web Elaborado por: Alumnos de Ingeniería de Sistemas Fecha: 08/07/2019

Representa: Individuo encargado de informar públicamente el resultado de la evolución de la sustentación de tesis Trabajador:

Empresa: Escuela de Ingeniería de Sistemas Sistema: Pagina Web Elaborado por: Alumnos de Ingeniería de Sistemas Fecha: 08/07/2019

Representa: Docente especialista en el área de la tesis que se encarga de evaluar el avance final, además genera sus observaciones. Trabajador:

Empresa: Escuela de Ingeniería de Sistemas Sistema: Pagina Web Elaborado por: Alumnos de Ingeniería de Sistemas Fecha: 08/07/2019

Representa: Docente que guía al tesista en el proceso de desarrollo de proyecto de tesis.

Realizaciones del negocio:

Entidades del negocio:

Es la entidad general que abarca a los docentes, tesistas y administrativos. En esta entidad se colocan sus datos personales. Entidad que tiene los datos de los docentes referentes al ámbito profesional. Entidad que abarca los datos profesionales y datos laborales de los administrativos. Entidad que tiene los datos necesarios para que una persona pueda ingresar al sistema. Entidad que tiene los datos de los diferentes reglamentos que son usados en los diferentes procesos abarcados. Entidad que contiene datos relacionados con el jurado, como el cargo que ocupa en la sustentación de tesis. Es la entidad que contiene a las diferentes penalidades causadas por el incumplimiento del reglamento. Entidad que tiene los datos de los diferentes tipos de especialidades de la carrera de ingeniería de sistemas. Entidad que se produce por la unión de la entidad JURADO y PROYECTO_TESIS debido a la relación de muchos a muchos que existe. Entidad que tiene de los diferentes reglamentos que son usados en los diferentes procesos abarcados. Entidad que almacena la calificación de la tesis realizada al final de la sustentación. Entidad que surge para romper la relación de muchos a muchos entre la entidad alumno y penalidad Entidad que almacena toda la información relacionada con tesis. Entidad que tiene la información referente a todas las líneas de investigación de la escuela de postgrado.

Entidad que tiene los datos de la empresa que patrocina el desarrollo de un proyecto de tesis. Entidad que rompe la relación de muchos a muchos de patrocinado con tesis. Entidad que contiene el código del alumno. Entidad que contiene las fecha, lugar en que la tesis será presentada. Entidad que graba los datos de la url donde se encuentra la tesis. Entidad que contiene el cronograma de reuniones que tendrá el alumno con el asesor a lo largo del ciclo. Entidad que establece la asignación de un jurado a un proyecto de tesis. Entidad que guarda el estado de una tesis , a través de un documento llamado pre dictamen Entidad que representa a un documento que graba los sucesos ocurridos en una reunión Entidad que representa a un documento que realiza el asesor , en el cual se compromete, con el alumno, a ser su asesor. Entidad que representa a un documento formal, realizado por la dirección de sección , en el que se formaliza a un asesor Entidad que representa a un documento que sirve de guía para redactar un proyecto de tesis. Entidad que representa a un documento que contiene la evaluación de un proyecto de tesis, por los jurados.

2.3.3. Diagramas de actividades de caso de uso del negocio: DA Solicitud de tesis estudiante

DA Proceso de Elaboración de Tesis

DA_Secundario 1

DA_Secundario 2

DA_Secundario 3

Da Sustentación de Tesis

2.3.4. Diagrama de estado de los objetos identificados: DMA_Acta_ Reunión de asesoramiento

DMA_Carta compromiso

DMA_ Cronograma de sustentación

DMA_Formato aceptación asesor

DMA_Formato de evaluación de tesis

DMA_Guia de redacción proyecto

DMA_Lineas investigación

DMA_Observacion

DMA_Predictamen aprobación

DMA_Reuniones asesor

DMA_Tesis

3. CAPITULO III: SISTEMA PROPUESTO

3.1. Modelo de Objetos del Sistema 3.1.1. Modelo de casos de uso del sistema(Requisitos)

4. CAPITULO IV: DISEÑO DEL SISTEMA PROPUESTO

4.1. Descripción de Datos: 4.1.1. Modelo Normalizado de la base de datos; en Erwin:

4.1.2. Diseño de la base de datos en SQL Server:

4.1.3. Integridad de datos 4.1.3.1. Script de toda la base de datos en T-SQL: use master go drop database if exists BD_SGATesis; create database BD_SGATesis go use BD_SGATesis go CREATE TABLE Acta_aprobacion ( codigoActa int IDENTITY ( 1,1 ) primary key, descripcion text NULL ) go CREATE TABLE Administrativo ( tiempoLaborando varchar(50) NULL , cargo varchar(50) NULL , Adm_dni char(8) NOT NULL primary key check sNumeric(Adm_dni) = 1), Codigo char(4) not null ) go CREATE TABLE Lineas_investigacion ( idLineas_investigacion int IDENTITY ( 1,1 ) primary key, titulo varchar(50) NOT NULL , descripcion text NOT NULL , prioridad varchar(20) NULL ) go CREATE TABLE Persona ( dni nombre apellido_materno apellido_paterno Fecha_nacimiento ) go CREATE TABLE Especialidad ( idEspecialidad titulo descripcion ) go

char(8)NOT NULL primary key check (isNumeric(dni) = 1), varchar(50) NULL , varchar(50) NULL , varchar(50) NULL , date NULL check (Fecha_nacimiento=0 or nota=0), CONSTRAINT XPKProyecto_Patrocinador PRIMARY KEY CLUSTERED (id_Tesis ASC,idPatrocinador ASC) ) go CREATE TABLE Reglamento ( fechaPublicacion NroReglamento ) go CREATE TABLE Penalidad ( idPenalidad descripcion NroReglamento Reglamento(NroReglamento) ) go CREATE TABLE Resolucion ( idResolucion Adm_dni Administrativo(Adm_dni) ) go

date NULL , int IDENTITY ( 1,1 ) primary key

int IDENTITY ( 1,1 ) primary key, text NOT NULL , int NOT NULL FOREIGN KEY REFERENCES

int NOT NULL primary key, char(8) NULL FOREIGN KEY REFERENCES

CREATE TABLE Alumno_penalidad ( idPenalidad int NULL FOREIGN KEY REFERENCES Penalidad(idPenalidad), dni char(8) null, Codigo char(10) NULL REFERENCES Alumno(Codigo) ) go CREATE TABLE Usuario ( idUsuario int IDENTITY ( 1,1 ) primary key, Login varchar(30) NOT NULL , Contraseña varchar(10) NOT NULL ) go

ALTER TABLE Administrativo ADD FOREIGN KEY (Adm_dni) REFERENCES Persona(dni) Go

4.1.3.2. Script de Dominio de atributos y valores por defecto El check nos ayuda para especificar que el char que se ingresara es numérico como por ejemplo el DNI es numérico, al igual que el Ruc. Adm_dni

char(8)

NOT NULL primary key check (isNumeric(Adm_dni) = 1)

dni

char(8)

NOT NULL primary key check (isNumeric(dni) = 1)

Doc_dni char(8) NOT NULL primary key FOREIGN KEY REFERENCES Persona(dni) check (isNumeric(Doc_dni) = 1) ruc

varchar(10)

NULL check (isNumeric(ruc) = 1)

El check se utilizó para especificar que la fecha de nacimiento tiene que ser menor a la actual. Fecha_nacimiento

date

NULL check (Fecha_nacimiento=0 or nota=0)

El formato por defecto de un ejemplar de una tesis es en formato pdf. formato

varchar(10)

NULL default 'pdf'

4.1.3.3. Script de disparadores para la integridad de datos Descripción: Trigger para asignar el cargo de vocal al asesor después de haber insertado una tesis. create or alter trigger tr_AsesorAJurado on Tesis for insert as declare @dni char(08) declare @id_Tesis int declare @contador int select @id_Tesis=id_Tesis, @dni=Doc_dni from inserted select @contador=count(*) from Jurado_Tesis JP where JP.Jur_dni=@dni and JP.id_Tesis=@id_Tesis if(@contador=0) insert into Jurado_Tesis(Jur_dni,id_Tesis,cargo) values (@dni,@id_Tesis,'Vocal') go

Resultado:

Descripción: Trigger para crear un usuario docente con login y contraseña igual al código del docente, este trigger se dispara luego de insertarse un docente. create or alter trigger TR_insert_userDocente on Docente after insert as begin declare @IdTesista char(4) select @IdTesista=Doc_Codigo from inserted ORDER BY Doc_Codigo DESC insert into Usuario(Login,Contraseña) values(@IdTesista,@IdTesista) end go

Resultado:

Descripción: Trigger para actualizar el estado de las tesis que han sido calificadas, si su promedio es mayor o igual a 14 pasaran a estado aprobado, sino pasara a estar desaprobado. create or alter trigger tr_calificacionAestado on evaluacion after insert as declare @id_Tesis int declare @idCalificacion int select @idCalificacion=idCalificacion,@id_Tesis=i.id_Tesis from inserted i declare @cantidad int declare @promedio int select @cantidad=count(*),@promedio=avg(nota) from Evaluacion where id_Tesis=@id_Tesis group by id_Tesis if(@cantidad=3) begin if(@promedio>=14) update Tesis set estado='Aprobado' where id_Tesis=@id_Tesis else update Tesis set estado='Desaprobado' where id_Tesis=@id_Tesis end go

Resultado:

Descripción: Trigger para crear un usuario después de haberse insertado un alumno, en donde su login y contraseña serán iguales a su código de alumno. create or alter trigger TR_insert_userTesista on Alumno after insert as begin declare @IdTesista varchar(10) select @IdTesista=codigo from inserted ORDER BY Codigo DESC insert into Usuario(Login,Contraseña) values(@IdTesista,@IdTesista) end go

Resultado:

4.1.3.4. Script de Procedimientos Almacenados y vistas de la base de datos Descripción: Este procedimiento almacenado nos ayuda a insertar una persona, validando que la persona aun no este registrada. create procedure sp_InsertarPersona @dni char(8), @nombre varchar(50), @apellido_materno varchar(50), @apellido_paterno varchar(50), @Fecha_nacimiento date as begin declare @contador int select @contador=count(*) from Persona where dni=@dni if(@contador>0) print('La persona ya está registrada') else begin insert into Persona values(@dni,@nombre,@apellido_materno,@apellido_paterno,@Fecha_nacimiento) print ('Insercion hecha') end end go

Resultado:

create procedure sp_Cronograma @id_Tesis int, @fecha date, @hora time, @lugar varchar(50) as begin declare @contador int declare @hora2 time if(@fecha>getdate()) begin select @hora2=convert(time,@hora) insert into Cronograma_Sustentacion(id_Tesis,fecha,hora,lugar) values(@id_Tesis,@fecha,@hora2,@lugar) end else print('fecha no valida') end

Descripción: Este procedimiento almacenado nos ayuda a insertar un cronograma, validando de antemano que la fecha ingresada sea mayor a la actual.

Resultado:

Descripción: Este procedimiento almacenado nos ayuda a insertar una tesis; primero verifica que exista la línea de investigación para después insertar

create procedure sp_RegistrarPT @idLineas_investigacion int, @codigo char(10), @titulo varchar(300), @Doc_dni char(8), @estado varchar(50) as begin declare @contador int select @contador=count(*) from Lineas_investigacion where @idLineas_investigacion=idLineas_investigacion select @estado='Proyecto' if(@contador>0) insert into Tesis(idLineas_investigacion,codigo,estado,titulo,Doc_dni) values (@idLineas_investigacion,@codigo,@estado,@titulo,@Doc_dni) else print('error en los datos ingresados') end go

valores a la tesis.

Resultado: Descripción: Este procedimiento almacenado nos ayuda a buscar si existe un usuario en la base de datos dados como parámetros el usuario y la contraseña.

Resultado:

Descripción: Este procedimiento almacenado lista el título del proyecto de tesis, el estado y el asesor de un tesista. create procedure sp_ListarTesisTesista @codigo char(10) as begin select p.titulo,p.estado,concat(per.nombre,' ',per.apellido_paterno,' ',per.apellido_materno) as asesor from Tesis P inner join Docente d on d.Doc_dni=p.Doc_dni inner join Persona per on p.Doc_dni=per.dni where P.Codigo=@codigo and (p.estado not like 'Aprobado' or p.estado not like 'Desaprobado') end go

Resultado: Descripción: Este procedimiento almacenado nos lista los jurados de un proyecto de tesis con su respectivo cargo.

Resultado:

create procedure sp_ListarJuradosDeTesis(@id_Tesis int) as begin select j.Jur_dni as dni, concat( p.nombre,' ',p.apellido_paterno,' ',p.apellido_paterno) as [Nombrecompleto],j.cargo from Jurado_Tesis J inner join Persona p on p.dni=j.Jur_dni where id_Tesis=@id_Tesis end go

Descripción: Este procedimiento almacenado nos lista los docentes con su respectiva especialidad y su número de DNI. create procedure sp_ListadoDocentes as begin select concat(p.nombre,' ',p.apellido_paterno,' ',p.apellido_materno)as nombre,d.Doc_dni as dni, e.titulo as especialidad from Docente d INNER JOIN especialidad e on e.idEspecialidad=d.idEspecialidad inner join Persona p on p.dni=d.Doc_dni end go

Resultado:

Descripción: Este procedimiento almacenado nos lista todas las tesis con su respectivo promedio y al área de investigación que perteneció. create procedure sp_ListadoTesisPorPromedio as begin select p.titulo as Titulo,avg(e.nota) as promedio, a.titulo as [Area de Investigacion] from Tesis p inner join evaluacion e on e.id_Tesis=p.id_Tesis inner join Lineas_investigacion a on a.idLineas_investigacion=p.idLineas_investigacion group by p.titulo,a.titulo end go

Resultado:

Descripción: Este procedimiento almacenado nos lista todas las tesis que create procedure sp_ListadoTesisPorFecha as begin select p.id_Tesis,p.titulo as Titulo,e.fecha,e.lugar from Tesis p inner join Cronograma_Sustentacion e on e.id_Tesis=p.id_Tesis where Year(e.fecha)=Year(getdate()) end go

están por sustentar.

Resultado:

Descripción: Este procedimiento almacenado nos lista el lugar y la fecha en donde se realizará la sustentación de la tesis. create procedure sp_ListarCronogramaDePT @id_Tesis int as begin --faltan poner mas detalles select e.fecha,e.lugar from Tesis p inner join Cronograma_Sustentacion e on e.id_Tesis=p.id_Tesis where p.id_Tesis=@id_Tesis and (p.estado not like 'Desaprobado' or p.estado not like 'Aprobado') order by e.fecha end go

Resultado:

Descripción: Este procedimiento almacenado nos lista el nombre completo del tesista y su código, dando como parámetro el id de la tesis. create procedure sp_ListarTesistasDePT @id_Tesis int as select concat(per.nombre,' ',per.apellido_paterno,' ',per.apellido_materno) as 'NombreCompleto',p.codigo as Codigo from Tesis p inner join Alumno a on a.Codigo=p.Codigo inner join Persona per on per.dni=a.dni where p.id_Tesis=@id_Tesis go

Resultado:

Descripción: Este procedimiento almacenado nos lista el id de la tesis, el nombre completo del tesista y su código dado el código del tesista. create procedure sp_ListarTesistaPorCodigo @Codigo char(10) as select t.id_Tesis,CONCAT(p.apellido_paterno,' ',p.apellido_materno,' ',p.nombre) as NombreCompleto, t.Codigo from Alumno e inner join Tesis t on t.Codigo= e.Codigo inner join Persona p on e.dni=p.dni inner join Tesis pt on pt.id_Tesis=t.id_Tesis where e.Codigo=@Codigo go

Resultado:

Descripción: Este procedimiento almacenado nos lista todas las líneas de investigación con su información respectiva. create procedure sp_ListadoAreaInvestigacion as begin select AI.idLineas_investigacion as IdAreaInvestigacion,AI.titulo as Titulo , AI.descripcion as Descripcion, AI.prioridad as Prioridad from Lineas_investigacion AI end go

Resultado:

Descripción: Este procedimiento almacenado te lista los detalles del docente dado su código. create procedure sp_ListarDetallesDocente @Codigo char(04) as select CONCAT(p.apellido_paterno,' ',p.apellido_materno,' ',p.nombre) as NombreCompleto,e.titulo as especialidad, t.tipo from Docente t inner join Persona p on t.Doc_dni=p.dni inner join Especialidad e on e.idEspecialidad=t.idEspecialidad where Doc_codigo=@codigo go

Resultado:

Descripción: Este procedimiento almacenado te lista las tesis sin asignación de cronograma. create procedure sp_ListarPTSinAsignacionDeCronograma as begin select T.titulo as 'Titulo', T.id_Tesis as 'id_Tesis' from Tesis T left join Cronograma_Sustentacion C on T.id_Tesis=C.id_Tesis where C.id_Tesis is null end go

Resultado:

Descripción: Este procedimiento almacenado se utiliza para asignar a los jurados en una tesis. create procedure sp_AsignarJurado @idProyecto int,@Jur_dni char(8), @Jur_dni2 char(8),@Jur_dni3 char(8),@Jur_dni4 char(8) as declare @contador1 int, @contador2 int, @contador3 int, @contador4 int begin

select select select select

insert insert insert insert

go

if(@idProyecto=0) print 'Error, el proyecto de Tesis aun no ha sido insertado' else begin if(@Jur_dni=0) print 'Error, el jurado presidente no esta registrado en la entidad persona' else begin if(@Jur_dni2=0) print 'Error, el jurado secretario no esta registrado en la entidad persona' else begin @contador1=count(*) from Jurado_Tesis JP where JP.Jur_dni=@Jur_dni and JP.id_Tesis=@idProyecto @contador2=count(*) from Jurado_Tesis JP where JP.Jur_dni=@Jur_dni2 and JP.id_Tesis=@idProyecto @contador3=count(*) from Jurado_Tesis JP where JP.Jur_dni=@Jur_dni3 and JP.id_Tesis=@idProyecto @contador4=count(*) from Jurado_Tesis JP where JP.Jur_dni=@Jur_dni4 and JP.id_Tesis=@idProyecto if(@contador1=1) print 'Error el jurado presidente ya ha sido registrado' else begin if(@contador2=1) print 'Error el jurado secretario ya ha sido registrado' else begin IF(@contador3=1) print 'Error el jurado accesitario ya ha sido registrado' else begin if(@contador4=1) print 'Error el jurado accesitario 2 ya ha sido registrado' else begin into Jurado_Tesis(Jur_dni,id_Tesis,cargo)values(@Jur_dni,@idProyecto,'presidente') into Jurado_Tesis(Jur_dni,id_Tesis,cargo)values(@Jur_dni2,@idProyecto,'secretario') into Jurado_Tesis(Jur_dni,id_Tesis,cargo)values(@Jur_dni3,@idProyecto,'Accesitario 1') into Jurado_Tesis(Jur_dni,id_Tesis,cargo)values(@Jur_dni4,@idProyecto,'Accesitario 2') end end end end end end end end

Resultado:

Descripción: Este procedimiento te detalla todos los datos relacionados con una determinada tesis. create procedure sp_ListarDetallesDeUnaTesis @id_Tesis int as select distinct Pt.id_Tesis as IdProyecto,Pt.titulo as TituloProyecto,Pt.estado as Estado,Pt.Doc_dni, P.apellido_paterno+' '+P.apellido_materno+' '+P.nombre as Asesor,CP.fecha as Fecha, pt.Codigo as Alumno from Tesis Pt inner join Docente D on D.Doc_dni=Pt.Doc_dni inner join Persona P on P.dni=D.Doc_dni inner join Cronograma_Sustentacion CP on CP.id_Tesis=Pt.id_Tesis where @id_Tesis=pt.id_Tesis go

Resultado:

Descripción: Este procedimiento almacenado nos lista el título, el estado, el área de investigación, los tesistas y la fecha de presentación de los proyectos de investigación que el asesor tiene a cargo. create procedure sp_ListarTesisDeUnJurado (@dni char(8)) as begin select P.titulo as Titulo,A.titulo as Area ,P.estado as Estado,J.cargo as Cargo, Pr.fecha as Fecha, Pr.lugar as Lugar from Jurado_Proyecto J inner join Proyecto_tesis P on J.id_Proyecto=P.id_Proyecto inner join Cronograma_Presentacion CP on CP.idCronograma=P.idCronograma inner join Presentacion Pr on Pr.idCronograma=CP.idCronograma inner join Areas_investigacion A on A.idAreas_investigacion=P.idAreas_investigacion where J.Jur_dni=@dni end go

Resultado:

Descripción: Este procedimiento almacenado nos lista el título, el área de investigación, el estado, la fecha y el lugar de un proyecto de tesis; además nos muestra el cargo que ocupara el jurado, dando como parámetro el DNI del jurado. create procedure sp_ListarTesisAsesor(@dni char(8)) as begin select P.titulo as [Titulo],P.estado as Estado,a.titulo as AreaInvestigacion, STUFF((select ' y '+T.Codigo from Tesista T where T.id_Proyecto=P.id_Proyecto for XML Path('')),1,2,'') as Alumno, Pr.fecha as FechaPresentacion,Pr.lugar as Lugar, substring(Av.Observaciones,5000,1) as Observaciones from Proyecto_tesis P inner join Areas_investigacion a on a.idAreas_investigacion=p.idAreas_investigacion inner join Tesista T on T.id_Proyecto=P.id_Proyecto inner join Cronograma_Presentacion CP on CP.idCronograma=P.idCronograma inner join Presentacion Pr on Pr.idCronograma=CP.idCronograma inner join Avance Av on Av.id_Proyecto=P.id_Proyecto where P.Doc_dni=@dni group by P.titulo,P.estado,a.titulo,P.id_Proyecto,Pr.fecha,Pr.lugar,substring(Av.Observaciones,500 0,1) end go

Resultado:

create procedure sp_ListarTodosTesisAsesor as begin select P.titulo as [Titulo],P.estado as Estado,a.titulo as [AreadeInvestigacion], P.Codigo as Alumno, CP.fecha as FechaPresentacion,CP.lugar, substring(Av.Observaciones,5000,1) as observacion from Tesis P inner join Lineas_investigacion a on a.idLineas_investigacion=p.idLineas_investigacion inner join Cronograma_Sustentacion CP on CP.id_Tesis=P.id_Tesis inner join Horario_Reunion h on h.id_Tesis=P.id_Tesis inner join Reuniones_Asesoramiento Av on Av.id_Horario_Reunion=h.id_Horario_Reunion group by P.titulo,P.estado,a.titulo,P.Codigo ,P.id_Tesis,CP.fecha,CP.lugar,substring(Av.Observaciones,5000,1)

Descripción: Este procedimiento te lista todas las tesis de un asesor con sus respectivos detalles.

Resultado:

Descripción: Este procedimiento te lista todas las especialidades con sus respectivos detalles. create procedure sp_ListarEspecialidades as begin select * from Especialidad end go

Resultado:

Descripción: Este procedimiento cambia la contraseña de un usuario. create procedure sp_CambiarContraseña @Login varchar(30),@Contraseña varchar(10),@ContraseñaCambio varchar(10) as begin declare @existencia int declare @ContraReal varchar(10) select @existencia=count(Login),@ContraReal=Contraseña from Usuario where @Login=Login group by Login,Contraseña if(@ContraReal=@Contraseña) update Usuario set Contraseña=@ContraseñaCambio where Login=@Login else print 'Contraseñas diferentes' end go

Resultado:

Descripción: Este te permite registrar a los docentes dando su número de DNI, nombres, apellido paterno, apellido materno, la fecha de nacimiento, el tipo de docente, horas semanales, el id de la especialidad y el código docente. create procedure sp_RegistrarDocente ( @dni char(8), @nombre varchar(50), @apellidoP varchar(50), @apellidoM varchar(50), @fechaNac date, @tipoDocente varchar(50), @horasSemanales int, @idEspecialidad int, @CodigoDocente char(4)) as declare @contador int declare @contador2 int begin select @contador=count(*) from Persona where @dni=dni select @contador2=count(*) from Especialidad where idEspecialidad=@idEspecialidad if(@contador>0 and @contador2>0 ) print 'Docente ya registrada' else begin insert into Persona(dni,nombre,apellido_paterno,apellido_materno,Fecha_nacimiento)values(@dn i,@nombre,@apellidoP,@apellidoM,@fechaNac) insert into Docente(Doc_dni,tipo,horasSemanales,idEspecialidad,Doc_Codigo)values(@dni,@tipoD ocente,@horasSemanales,@idEspecialidad,@CodigoDocente) end end go

Resultado:

Descripción: Este procedimiento te lista todos los docentes menos el que está enviando como parámetro su DNI. create procedure sp_ListarDocentesMenosTu (@dni char(8)) as begin select D.Doc_dni as DNI,P.apellido_paterno+' '+P.apellido_materno+' '+P.nombre as NombreCompleto, E.titulo as Especialidad from Docente D inner join Persona P on P.dni=D.Doc_dni inner join Especialidad E on E.idEspecialidad=D.idEspecialidad where D.Doc_dni@dni end go

Resultado:

Descripción: Este procedimiento te lista los proyectos que están sin jurados. create procedure sp_ListarPTSinAsignacionJurado as begin select p.id_Tesis,p.titulo from Tesis P inner join Jurado_Tesis J on P.id_Tesis=J.id_Tesis where J.cargo='Vocal' EXCEPT select p.id_Tesis,p.titulo from Tesis P inner join Jurado_Tesis J on P.id_Tesis=J.id_Tesis where J.cargo='Secretario' or J.cargo = 'Presidente' end go

Resultado:

Descripción: Este procedimiento te registra un alumno dando como parámetros el DNI, nombre, apellido paterno, apellido materno, fecha de nacimiento y el código del alumno. create procedure sp_RegistrarAlumno ( @dni char(8), @nombre varchar(50), @apellidoP varchar(50), @apellidoM varchar(50), @fechaNac date, @CodigoAlumno char(10)) as declare @contador int begin select @contador=count(*) from Persona where @dni=dni if(@contador>0 ) print 'Alumno ya registrado' else begin insert into Persona(dni,nombre,apellido_paterno,apellido_materno,Fecha_nacimiento)values(@dni,@nombre,@ apellidoP,@apellidoM,@fechaNac) insert into Alumno(dni,Codigo)values(@dni,@CodigoAlumno) end end go

Resultado:

Descripción: Este procedimiento te lista todas las observaciones que tiene una tesis. create procedure sp_ListarObservaciones (@idTesis int) as begin select R.observaciones as Observaciones, R.Reu_fecha, R.Reu_lugar from Reuniones_Asesoramiento R inner join Horario_Reunion HR on HR.id_Horario_Reunion=R.id_Horario_Reunion inner join Tesis T on T.id_Tesis = HR.id_Tesis where T.id_Tesis=@idTesis end

Resultado:

Descripción: Este procedimiento almacenado te lista todas las evaluaciones que tuvo una tesis. create procedure sp_ListarEvaluaciones(@idTesis int) as begin select j.Jur_dni,t.titulo, E.Decision,SUBSTRING(E.Observacion,1,5000) as Observacion,E.nota from Evaluacion E inner join Tesis T on E.id_Tesis=T.id_Tesis inner join Jurado_Tesis j on j.Jur_dni=e.Jur_dni where T.id_Tesis= @idTesis group by j.Jur_dni,t.titulo, E.Decision,SUBSTRING(E.Observacion,1,5000),E.nota end go

Resultado: Descripción:

Este procedimiento almacenado observaciones que el asesor realiza a una tesis.

te

permite

registrar

create procedure sp_RegistrarObservaciones (@id_Tesis int,@Reu_fecha date,@Reu_lugar varchar(50),@observaciones text) as begin declare @id_Horario_Reunion int select @id_Horario_Reunion=H.id_Horario_Reunion from Horario_Reunion H inner join Tesis T on T.id_Tesis= H.id_Tesis where T.id_Tesis=@id_Tesis insert into Reuniones_Asesoramiento(id_Horario_Reunion,Reu_fecha,Reu_lugar,observaciones) values (@id_Horario_Reunion,@Reu_fecha,@Reu_lugar,@observaciones) end go

Resultado: Descripción: Este procedimiento almacenado te permite registrar una evaluación a un proyecto de tesis, cabe aclarar que esta evaluación la realizan los jurados. create procedure sp_RegistrarEvaluacion (@Decision varchar(30) ,@nota int ,@Observacion text,@id_Tesis int ,@Jur_dni char(8)) as begin insert into Evaluacion(Decision,nota,Observacion,id_Tesis,Jur_dni) values(@Decision,@nota,@Observacion,@id_Tesis,@Jur_dni) end go

create procedure sp_ListarEvaluacionesTotal as begin select T.titulo, E.Decision,E.Observacion,E.nota from Evaluacion E inner join Tesis T on E.id_Tesis=T.id_Tesis end go

Descripción: Este procedimiento almacenado te lista las evaluaciones de todas las tesis.

Resultado:

Descripción: Este procedimiento almacenado te lista las observaciones de todas las tesis. create procedure ListarObservacionesTotales as begin select R.observaciones as Observaciones, R.Reu_fecha, R.Reu_lugar from Reuniones_Asesoramiento R inner join Horario_Reunion HR on HR.id_Horario_Reunion=R.id_Horario_Reunion inner join Tesis T on T.id_Tesis = HR.id_Tesis end go

Resultado:

4.1.3.5. Script de Funciones escalares y de tablas de múltiples sentencias Descripción: Esta función escalar te devuelve el código de una tesis dando como parámetro el título de la misma. create function dbo.BuscarTesis_Titulo (@titulo varchar(300)) returns int as begin declare @IDProyecto int declare auxiliar cursor for select id_Tesis from Tesis where titulo=@titulo open auxiliar FETCH NEXT FROM auxiliar INTO @IDProyecto close auxiliar deallocate auxiliar IF(ISNUMERIC(@IDProyecto)=0) SET @IDProyecto=0; return @IDProyecto end go

Resultado: Descripción: Esta función escalar te permite devolver el DNI de una persona enviando como parámetro el nombre completo de la persona. create function dbo.fnDevolverDNI(@NombreCompleto varchar(150)) returns char(8) as begin declare @DNI char(8) declare @contador1 int select @DNI=P.dni from Persona P where P.apellido_paterno+' '+P.apellido_materno+' '+P.nombre=@NombreCompleto select @contador1=count(*) from Persona P where P.dni=@DNI if(@contador1GETDATE(); select @CantJurados=count(distinct J.Jur_dni) from Jurado_Tesis J inner join Cronograma_Sustentacion C on J.id_Tesis=C.id_Tesis where C.fecha>GETDATE(); insert into @Lista_DatosDash(Tesistas, Jurados, Tesis,Presentaciones) select @CantTesistas, @CantJurados, @CantTesis, @CantPresentaciones return end go

4.1.4. Procesamiento de transacciones Descripción: Esta transacción se utilizó para comprobar que un asesor no tengas más de 5 proyectos en desarrollo o en proyecto. create trigger tr_ComprobarAsesor on Tesis for insert as declare @Doc_dni char(8) declare @idLineas int declare @Codigo char(10) declare @estado varchar(50) declare @titulo varchar(300) declare @cant int select @Doc_dni=Doc_dni, @idLineas=idLineas_investigacion, @Codigo=Codigo, @estado=estado, @titulo=titulo from inserted select @cant=count(*) from Tesis where Doc_dni=@Doc_dni and (estado='Desarrollo' or estado='en Proyecto') if(@cant