+ All Categories
Home > Documents > Sistema Gestor de Eventos

Sistema Gestor de Eventos

Date post: 10-Nov-2015
Category:
Upload: henrry-portilla
View: 5 times
Download: 0 times
Share this document with a friend
Description:
Base de datos de un sist gestor de eventos
39
Universidad Católica Santa María Ingenierías físicas y formales Ingeniería de Sistemas Nombres: Alarcón García Rodrigo Bellido Cahuana Edgar Portilla Paredes Henrry Curso: Administración de los datos y la información Tema: Sistema Gestor de Eventos
Transcript

Universidad Catlica Santa MaraIngenieras fsicas y formalesIngeniera de Sistemas

Nombres: Alarcn Garca RodrigoBellido Cahuana EdgarPortilla Paredes Henrry

Curso: Administracin de los datos y la informacin

Tema: Sistema Gestor de Eventos

Arequipa PerContenidoRESUMEN3INTRODUCCIN4OBJETIVOS5CAPTIULO 1. FUNDAMENTO TERICO51.1.Diagrama entidad Relacin51.2.DIA (Programa).-51.3.MICROSOFT SQL SERVER 2008 R261.4.NORMALIZACIN61.5.PROCEDIMIENTOS ALMACENADOS7CAPITULO 2. DESARROLLO72.1.DIAGRAMA ENTIDAD-RELACIN72.2. DESCRIPCIN DE VNCULOS92.3.NORMALIZACIN92.4.MODELO ENTIDAD RELACIN102.5.DICCIONARIO DE DATOS112.6.CONSULTAS152.7.PROCEDIMIENTOS ALMACENADOS202.8. APLICACIN WEB24CONCLUSIONES30REFERENCIAS30

RESUMEN

Un sistema gestor de eventos es una plataforma para administrar eventos por medio de usuarios, para su realizacin se necesita una base de datos, para luego crear una interfaz, para ello, primero se realiz el desarrollo del diagrama entidad-relacin del sistema gestor de eventos junto con su descripcin de cada vnculo. Luego se muestra la normalizacin que fue realizada hasta la tercera forma normal. Tambin se construy el modelo entidad relacin con ayuda del sistema gestor de base de datos Microsoft SQL Server 2008 R2, este consta de tablas, claves y restricciones. Posteriormente se ingres los eventos que se podrn realizar en el sistema, junto con todos sus participantes, ponencias, expositores, etc. Para solucionar algunas necesidades de los usuarios como el conocimiento de sus ingresos, egresos, fechas, etc., se realizaron consultas a la base de datos. Luego se busc una forma de reducir la carga de procesamiento en la aplicacin, y se opt por usar procedimientos almacenados donde se hizo que el gestor de base de datos realice algunas operaciones en vez de que la aplicacin la haga.

INTRODUCCIN

El negocio de los eventos siempre ha sido muy abundante, una manera de lograr esta rapidez es mediante esta aplicacin web que facilitara la administracin de un evento al trabajar con ms orden y rapidez sus diferentes mdulos (pre-inscripcin, inscripcin, pagos, materiales)

Para realizar este proyecto se requiere empezar con un buen anlisis de todo lo que se har, una buena opcin es empezar con un diagrama entidad-relacin consistente. En este caso se us el programa DIA (Diagram editor) para ayudar a realizar el diagrama E-R (entidad-relacin) inicial para luego continuar realizando el modelo E-R.

Completado el diagrama E-R se aplic el proceso de normalizacin hasta la 3ra forma normal para luego implementar el esquema final que consta de sus tablas, claves y restricciones; todo con su respectivo diccionario de datos donde se explica los diferentes atributos con su tipo de dato y significado.La herramienta que se utiliz para lograr todo el proceso descrito en el anterior prrafo ser SQL SERVER 2008 R2, donde se desarroll los correspondientes scripts de todas las tablas y los INSERTS para su ejecucin en cualquier ordenador.Este informe muestra detalladamente el de desarrollo de 2 captulos. En el captulo 1 se dar a conocer diferentes conceptos necesarios para entender los mtodos y herramientas usados al realizar este proyecto (Diagrama E-R, DIA, SQL SERVER 2008 R2, NORMALIZACION, PROCEDIMIENTOS ALMACENADOS). En el captulo 2 se usan ve los resultados del uso de los mtodos y herramientas explicadas en el anterior capitulo; se observa el diagrama E-R, la normalizacin, el modelo E-R, las consultas a la base de datos creada y los procedimientos almacenados.

OBJETIVOS

1. Realizar una investigacin preliminar para el desarrollo del sistema gestor de eventos y la cardinalidad de un diagrama entidad relacin2. Realizar el modelo entidad-relacin (tablas, claves, restricciones), se observ el funcionamiento y ventajas de realizar consultas y procedimientos almacenados con ayuda de la herramienta SQL SERVER 2008 R2.3. Implementar un sistema efectivo para la gestin de eventos (Congresos de ingenieras) que permita la disponibilidad y manipulacin de la informacin en forma rpida.

1. FUNDAMENTO TERICO1.1. Diagrama entidad RelacinEs una herramienta utilizada para organizar datos, con ello permitir representar las entidades principales de un sistema, as como sus relaciones y propiedades. Se divide en: entidades, atributos y relaciones Entidad: Objeto distinguible de otros objetos. Se describen con sus atributos. Atributos: Es de lo que se encuentran compuestas las entidades Relacin: Asociacin entre dos o ms entidades. [1]

1.2. DIA (Programa).- Es un software libre con el propsito de generar diagramas, fue realizada como parte del proyecto GNOME. Realizado de forma modular, con diferentes paquetes para diferentes necesidades. El formato que utiliza para poder leer y almacenar grficos es XML. [2]

Proyecto Gnome.- Entorno de escritorio e infraestructura de desarrollo para sistemas operativos como LINUX y UNIX.

XML.- Extensible MarkupLanguage, es un lenguaje de programacin que define un conjunto de reglas para realizar cdigo legible por la mquina. [3]

1.3. MICROSOFT SQL SERVER 2008 R2Microsoft SQL Server 2008 R2 Express con Service Pack 2 es una edicin gratuita y con muchas caractersticas de SQL Server que resulta idnea para aprender, desarrollar y activar pequeas aplicaciones de servidor, web y de escritorio, as como para su redistribucin a travs de ISV(Independent Software Vendor). [4]Microsoft SQL Server 2008 Express es un sistema de administracin de datos eficaz y confiable que ofrece un variado conjunto de caractersticas, proteccin de datos y rendimiento para clientes de aplicaciones incrustadas, aplicaciones web ligeras y almacenes de datos locales. SQL Server 2008 Express, que est diseado para una implementacin sencilla y una creacin de prototipos rpida, est disponible de forma gratuita y su redistribucin con aplicaciones tambin es gratuita. Est diseado para integrarse a la perfeccin con otras inversiones de infraestructura de servidor. [5]Para realizar la creacin de una base de datos se utiliza la sentencia Create Database, y para llamar a la base de datos ya creada se utiliza la sentencia USE [9]Las tablas permiten almacenar y reenviar un conjunto de valores con vistas a una utilizacin futura, se pueden crear hasta 2 millardos de tablas por base de datos, para su creacin escribir Create Table y para su modificacin Alter Table [10]Al realizar la unin de las tablas y visualizarlo se obtendr el modelo entidad relacin de la base de datos, del cual su objetivo principal es funcionar como un marco de trabajo para el desarrollo de sistemas nuevos o mejorarlos [11]

1.4. NORMALIZACINLa normalizacin es el proceso mediante el cual se transforman datos complejos a un conjunto de estructuras de datos ms pequeas, que adems de ser ms simples y ms estables, son ms fciles de mantener. Tambin se puede entender la normalizacin como una serie de reglas que sirven para ayudar a los diseadores de bases de datos a desarrollar un esquema que minimice los problemas de lgica. [6]

TABLA 1: 3 PRIMERAS FORMAS NORMALES [7]

1.5. PROCEDIMIENTOS ALMACENADOSEs un programa escrito en Transact-SQL y que se almacena junto con la base de datos. La ventaja de tener estos programas almacenados en la base de datos es que cuando son invocados, se ejecutan en el mismo motor de la base de datos. [8]

2. DESARROLLO2.1. DIAGRAMA ENTIDAD-RELACIN

2.2DESCRIPCIN DE VNCULOS- Un actor (administrador) crea varios usuarios porque el administrador es el encargado de crear diferentes cuentas para el manejo de la pgina de eventos.- Un actor inscribe a todos los participantes que van a asistir al evento determinado- Un actor inscribe su pago de todos los participantes en caja.- Un actor participante asiste a varios turnos de diferentes actividades del evento.- Un actor participante se puede preinscribir en varios eventos, en el caso que el participante desee asistir a ms de un evento.- Un actor administrador gestiona varias promociones que se pueden agregar a los diferentes eventos que requieran el usuario.- Un actor administrador crea varios eventos, en el caso de un usuario necesite ms de un evento, el sistema proporcionara esta opcin.- Una caja compra varios materiales, se refiere a todos los gastos del evento - Un actor trabajador (ejemplo: ponente, msicos, etc.) puede trabajar en varios eventos- Un actor se puede dividir en varias actividades, as mismo una actividad se puede realizar en varios turnos del evento-Un actor (usuario) administra varios materiales, a la vez varias materiales son recibidos por un actor (participante)- En un turno se pueden realizar varias actividades y un evento gestiona varios turnos-Un paquete contiene varios eventos y un actor (usuario) puede marcar varios paquetes NORMALIZACIN

2.4. MODELO ENTIDAD RELACIN

2.5. DICCIONARIO DE DATOS3. Tabla Persona

CampoTamaoTipo de datoDescripcin

ID Persona8CharClave Primaria de la tabla Persona

Nombre20CharNombre del Persona

Apellido Paterno20CharPrimer apellido del Persona

Apellido Materno20CharSegundo apellido del Persona

Correo20CharCorreo electrnico del Persona

DNI-IntDocumento del Persona

TipoPersona4CharTipo de Persona

Tabla Trabajador

CampoTamaoTipo de datoDescripcin

IDTrabajador8CharClave Primaria de la tabla Trabajador

Cargo20CharCargo del Trabajador

Salario8,2DecimalSalario del Trabajador

Nacionalidad20CharNacionalidad del Trabajador

CodigoHojadeVida10CharHoja de Vida

Tabla Usuario

CampoTamaoTipo de datoDescripcin

ID Usuario8CharClave Primaria de tabla Usuario

Login20CharLogin del Usuario

Password20CharContrasea del Usuario

TipoUsuario20CharTipo del Usuario

Tipo Evento20CharTipo del Evento contratado

Tabla Recibo

CampoTamaoTipo de datoDescripcin

IDRecibo8CharClave Primaria de la tabla Recibo

IDUsuario8CharClave fornea de la tabla Usuario

IDParticipante8CharClave fornea de la tabla Participante

IDAdministrador8CharClave fornea de la tabla Usuario

Operacin-bitTipo de Operacin

Fecha-DateFecha del movimiento

Total8,2DecimalCantidad del movimiento

Tabla Evento

CampoTamaoTipo de datoDescripcin

IDEvento8CharClave Primaria de la tabla DatosEvento

IDUsuario8CharClave fornea de la tabla Usuario

FechaIni-DateInicio del Evento

FechaFin-DateFin del Evento

NroVecesContratado-IntNmero de veces que se contrata el evento

Descripcin50CharDescripcin del Evento

Tabla Actividad

CampoTamaoTipo de datoDescripcin

IDActividad8CharClave Primaria de la tabla Actividad

IDEvento8CharClave fornea de la tabla Evento

Nombre20CharNombre del Evento

Tema20CharTema a tratar en la actividad

Descripcin 50CharDescripcin de la actividad

Tabla Lugar

CampoTamaoTipo de datoDescripcin

IDLugar8CharClave Primaria de la tabla Lugar

Nombre20CharNombre del lugar

Descripcion150CharDetalles del Lugar

Capacidad-IntCapacidad de personas del lugar

Tabla Actividad_Lugar

CampoTamaoTipo de datoDescripcin

IDActividad8CharClave Fornea de la tabla Actividad

IDLugar8CharClave Fornea de la tabla Lugar

Tabla DetalleActividad

CampoTamaoTipo de datoDescripcin

IDActividad8CharClave Fornea de la tabla Actividad

Fecha-DateFecha de la Actividad

Horario30CharHorarios disponibles de la Actividad

Tabla ActividadTrabajador

CampoTamaoTipo de datoDescripcin

IDActividad8CharClave Fornea de la tabla Actividad

IDTrabajador8CharClave Fornea de la tabla Trabajador

Tabla Paquete

CampoTamaoTipo de datoDescripcin

IDPaquete8CharClave Primaria de la tabla Paquete

IDEvento8CharClave fornea de la tabla Evento

Nombre 20CharNombre del paquete

Descripcion50CharDetalles del paquete

Precio8.2decimalValor del paquete

Tabla Promocin

CampoTamaoTipo de datoDescripcin

IDPromocion8CharClave Fornea de la tabla Promocin

PorcentajeDescuento-IntPorcentaje de Descuento de la Promocin

FechaInicio-DateFecha de inicio de la Promocin

FechaFin-DateFecha de fin de la Promocin

Descripcin50CharDetalle de que consta la Promocin

Tabla DetalleRecibo

CampoTamaoTipo de datoDescripcin

IDRecibo8CharClave fornea de la tabla Recibo

IDPaquete8CharClave fornea de la tabla Paquete

IDPromocion8CharClave fornea de la tabla Promocin

ValorUnitario8.2DecimalValor por unidad

Cantidad8.2DecimalCantidad total

Concepto50CharDetalle del recibo

Tabla Turno

CampoTamaoTipo de datoDescripcin

IDTurno8CharClave Primaria de la tabla Turno

Descripcin50CharDetalles del turno

TipoTurno10CharTipo de turno

Horario50CharHorario del Turno

Tabla TurnoActividad

CampoTamaoTipo de datoDescripcin

IDTurno8CharClave Fornea de la tabla Turno

IDActividad8CharClave Fornea de la tabla Actividad

Fecha-DateFecha del turno de la actividad

Tabla AsistenciaTurno

CampoTamaoTipo de datoDescripcin

IDParticipante8CharClave Fornea de la tabla Participante

IDTurno8CharClave Fornea de la tabla Turno

Asistencia-IntAsistencia al Turno

Fecha-DateFecha de la Asistencia al Turno

Tabla Promocion_Evento

CampoTamaoTipo de datoDescripcin

IDPromocion8CharClave Fornea de la tabla Promocin

IDEvento8CharClave Fornea de la tabla Evento

Tabla Material

CampoTamaoTipo de datoDescripcin

IDMaterial8CharClave Primaria de la tabla Material

Descripcin50CharInformacin del material

TipoMaterial2CharTipo del Material

Nombre255VarcharNombre del material

CantidadTotal-IntStock del material

Tabla OperacinMaterial

CampoTamaoTipo de datoDescripcin

IDMaterial8CharClave Fornea de la tabla Material

Operacion1CharTipo de operacin del material

ValorUnitario8.2DecimalValor por unidad

Cantidad-IntCantidad

Fecha-DateFecha

Tabla RecojoMaterial

CampoTamaoTipo de datoDescripcin

Recojo-Bit Recogi o no

Fecha-DateFecha del recojo

Cantidad-IntCantidad del Material

IDTurno8CharClave Fornea de Turno

IDParticipante8CharClave Fornea de Participante

IDMaterial8CharClave Fornea de Material

Tabla Preinscripcin

CampoTamaoTipo de datoDescripcin

IDPreInscripcion8CharClave Primaria de la tabla Preinscripcin

IDPaquete8CharClave Fornea de la tabla Paquete

IDParticipante8CharClave Fornea de la tabla Participante

Tabla Inscripcin

CampoTamaoTipo de datoDescripcin

IDInscripcion8CharClave Primaria de la tabla Inscripcin

IDRecibo8CharClave Fornea de la tabla Recibo

IDParticipante8CharClave Fornea de la tabla Participante

PreInscripcion8CharClave Fornea de la tabla Preinscripcin

Tabla Solicitud

CampoTamaoTipo de datoDescripcin

IDSolicitud8CharClave Primaria de la tabla Solicitud

Descripcin50CharDetalle de la Solicitud

Tabla Contrato

CampoTamaoTipo de datoDescripcin

IDSolicitud8CharClave Fornea de la tabla Solicitud

IDRecibo8CharClave Fornea de la tabla Recibo

Fecha-DateFecha del Contrato

2.6 CONSULTAS4. USE GESTOR_EVENTOS;5. --CONSULTA 1: Listado de eventos contratados, con los datos completos de los6. --contratantes. En caso que un contratante tenga ms de un evento7. --contratado, deber mostrarse el resultado agrupado por contratante.8. SELECT U.IDUsuario AS 'CODIGO USUARIO',(P.Nombre+ P.ApellidoPaterno+ P.ApellidoMaterno)AS 'NOMBRE COMPLETO',9. P.DNI , E.Descripcion AS 'EVENTO'10. FROM Usuario AS U 11. INNER JOIN Persona AS P 12. ON U.IDUsuario = P.IDPersona13. INNER JOIN Evento AS E14. ON U.IDUsuario = E.IDUsuario15. GROUP BY U.IDUsuario,(P.Nombre+ P.ApellidoPaterno+ P.ApellidoMaterno),P.DNI, E.Descripcion16. 17. --CONSULTA 2: Nmero de participantes en un evento. Se debe mostrar el total de18. --participantes y el total de participantes en los diferentes paquetes del evento.19. SELECT E.Descripcion AS 'EVENTO',(SELECT COUNT(INS.IDInscripcion) AS TOTAL FROM Inscripcion AS INS)AS 'TOTAL EVENTO',20. P.Nombre AS 'PAQUETE', COUNT(DR.IDPaquete) AS'TOTAL PAQUETE' 21. FROM Inscripcion AS INS 22. INNER JOIN Recibo AS R 23. ON INS.IDRecibo = R.IDRecibo24. INNER JOIN DetalleRecibo AS DR25. ON R.IDRecibo = DR.IDRecibo26. INNER JOIN Paquete AS P27. ON DR.IDPaquete = P.IDPaquete28. INNER JOIN Evento AS E29. ON P.IDEvento = E.IDEvento30. GROUP BY E.Descripcion, P.Nombre

31. --CONSULTA 3: Seleccionando un da del evento, debe mostrar el detalle del mismo.32. --Esto es, las ponencias (con todos sus datos), breaks, sesiones, etc.33. SELECT E.Descripcion,AC.Nombre AS 'ACTIVIDAD',AC.Tema, DA.Fecha, DA.Horario, L.Nombre,T.Descripcion, L.Descripcion, L.Capacidad 34. FROM Evento AS E 35. INNER JOIN Actividad AS AC 36. ON E.IDEvento = AC.IDEvento37. INNER JOIN ActividadLugar AS AL38. ON AC.IDActividad = AL.IDActividad39. INNER JOIN Lugar AS L40. ON AL.IDLugar = L.IDLugar41. INNER JOIN DetalleActividad DA42. ON AC.IDActividad = DA.IDActividad43. INNER JOIN TurnoActividad AS TA44. ON AC.IDActividad = TA.IDActividad45. INNER JOIN Turno AS T 46. ON TA.IDTurno = T.IDTurno47. WHERE DA.Fecha = '2010-08-12' AND TA.Fecha = '2010-08-12'48. 49. 50. --CONSULTA 4: Listar los auditorios y las ponencias que se darn en cada uno de ellos.51. SELECT E.Descripcion AS 'EVENTO', L.Nombre AS 'AUDITORIO',AC.Nombre AS 'PONENCIAS',AC.Tema AS 'TEMA', DA.Fecha, DA.Horario, L.Capacidad 52. FROM Evento AS E 53. INNER JOIN Actividad AS AC 54. ON E.IDEvento = AC.IDEvento55. INNER JOIN ActividadLugar AS AL56. ON AC.IDActividad = AL.IDActividad57. INNER JOIN Lugar AS L58. ON AL.IDLugar = L.IDLugar59. INNER JOIN DetalleActividad DA60. ON AC.IDActividad = DA.IDActividad61. ORDER BY L.IDLugar ASC62. 63. --CONSULTA 5:Listar la cantidad de asistentes por evento. Por ejemplo, 87/9064. --(asistieron 87 de 90 inscritos).65. SELECT E.Descripcion AS 'EVENTO', AT.Fecha AS 'FECHA', A.Tema AS 'ACTIVIDAD' ,T.Descripcion AS 'TURNO' , 66. SUM(CONVERT(INT,Asistencia)) AS 'ASISTENCIA' ,(SELECT COUNT(I.IDInscripcion) AS TOTAL FROM Inscripcion AS I)AS 'INSCRITOS' 67. FROM AsistenciaTurno AS AT68. INNER JOIN Turno AS T69. ON AT.IDturno = T.IDTurno70. INNER JOIN TurnoActividad AS TA71. ON T.IDTurno = TA.IDTurno72. INNER JOIN Actividad AS A73. ON TA.IDActividad = A.IDActividad74. INNER JOIN Evento AS E75. ON A.IDEvento = E.IDEvento76. GROUP BY E.Descripcion, A.Tema, T.Descripcion, AT.IDturno , AT.Fecha77. 78. --CONSULTA 6: Listar los ingresos y egresos por una fecha dada.79. SELECT R.IDAdministrador , VAR='2010-08-17' ,80. sum(case when R.Operacion ='I' then (R.Total) end) as Ingreso,81. sum(case when R.Operacion ='E' then (R.Total) end) as Egreso82. FROM Usuario AS U83. INNER JOIN Recibo AS R84. ON U.IDUsuario = R.IDAdministrador 85. WHERE R.Fecha='2010-06-15' 86. GROUP BY R.IDAdministrador87. 88. 89. 90. --CONSULTA 7: Mostrar el balance por un rango de fechas.91. SELECT R.IDAdministrador ,92. sum(case when R.Operacion ='I' then (R.Total) end) as 'INGRESO', 93. sum(case when R.Operacion ='E' then (R.Total) end) as 'EGRESO' ,94. (sum(case when R.Operacion ='I' then (R.Total) end) -95. sum(case when R.Operacion ='E' then (R.Total) end) ) AS 'BALANCE'96. FROM Usuario AS U97. INNER JOIN Recibo AS R98. ON U.IDUsuario = R.IDAdministrador 99. WHERE R.Fecha BETWEEN '2010-06-12' AND '2010-08-17'100. GROUP BY R.IDAdministrador101. 102. --CONSULTA 8: Listar los 5 gastos ms altos y los 5 gastos ms bajos, por una fecha o rango de fechas.103. SELECT TOP 5 DR.Cantidad*DR.ValorUnitario AS 'EGRESOS MINIMOS', P.Nombre , DR.Concepto FROM Recibo AS R 104. INNER JOIN Persona AS P105. ON R.IDParticipante = P.IDPersona106. INNER JOIN DetalleRecibo DR107. ON R.IDRecibo = DR.IDRecibo108. WHERE R.Operacion='E'109. ORDER BY DR.Cantidad*DR.ValorUnitario ASC110. 111. SELECT TOP 5 DR.Cantidad*DR.ValorUnitario AS 'EGRESOS MINIMOS', P.Nombre , DR.Concepto FROM Recibo AS R 112. INNER JOIN Persona AS P113. ON R.IDParticipante = P.IDPersona114. INNER JOIN DetalleRecibo DR115. ON R.IDRecibo = DR.IDRecibo116. WHERE R.Operacion='E'117. ORDER BY DR.Cantidad*DR.ValorUnitario DESC118. 119. --CONSULTA 9: Listar los 5 ingresos ms altos y los 5 ingresos ms bajos, por una fecha o rango de fechas.120. SELECT TOP 5 DR.Cantidad*DR.ValorUnitario AS 'INGRESOS MINIMOS', P.Nombre , DR.Concepto FROM Recibo AS R 121. INNER JOIN Persona AS P122. ON R.IDParticipante = P.IDPersona123. INNER JOIN DetalleRecibo DR124. ON R.IDRecibo = DR.IDRecibo125. WHERE R.Operacion='I'126. ORDER BY DR.Cantidad*DR.ValorUnitario ASC127. 128. SELECT TOP 5 DR.Cantidad*DR.ValorUnitario AS 'INGRESOS MAXIMOS', P.Nombre , DR.Concepto FROM Recibo AS R 129. INNER JOIN Persona AS P130. ON R.IDParticipante = P.IDPersona131. INNER JOIN DetalleRecibo DR132. ON R.IDRecibo = DR.IDRecibo133. WHERE R.Operacion='I'134. ORDER BY DR.Cantidad*DR.ValorUnitario DESC135. 136. 137. --CONSULTA 10: Listar todos los participantes que si recogieron material y aquellos que no recogieron material. 138. SELECT E.Descripcion AS 'EVENTO', P.IDPersona,(P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno) AS 'PARTICIPANTE', RM.Recojo 139. FROM RecojoMaterial AS RM140. INNER JOIN Persona AS P141. ON RM.IDParticipante = P.IDPersona142. INNER JOIN Material AS M143. ON RM.IDMaterial = M.IDMaterial144. INNER JOIN AsistenciaTurno AS AT145. ON P.IDPersona = AT.IDParticipante146. INNER JOIN Turno AS T147. ON AT.IDturno = T.IDTurno148. INNER JOIN TurnoActividad AS TA149. ON T.IDTurno = TA.IDTurno150. INNER JOIN Actividad AS A151. ON TA.IDActividad = A.IDActividad152. INNER JOIN Evento AS E153. ON A.IDEvento = E.IDEvento154. WHERE M.TipoMaterial = 'MU'155. GROUP BY E.Descripcion, P.IDPersona,(P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno),RM.Recojo156. ORDER BY P.IDPersona157. 158. --CONSULTA 11: Listar los participantes que no recogieron break en una fecha dada.159. SELECT E.Descripcion AS 'EVENTO',TA.Fecha AS 'FECHA', P.IDPersona,(P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno) AS 'PARTICIPANTE',M.Descripcion , T.Descripcion AS 'TURNO', RM.Recojo 160. FROM RecojoMaterial AS RM161. INNER JOIN Persona AS P162. ON RM.IDParticipante = P.IDPersona163. INNER JOIN Material AS M164. ON RM.IDMaterial = M.IDMaterial165. INNER JOIN Turno AS T166. ON RM.IDTurno = T.IDTurno167. INNER JOIN TurnoActividad AS TA168. ON T.IDTurno = TA.IDTurno169. INNER JOIN Actividad AS A170. ON TA.IDActividad = A.IDActividad171. INNER JOIN Evento AS E172. ON A.IDEvento = E.IDEvento173. WHERE RM.Fecha='2010-08-14' AND M.TipoMaterial='MC' AND TA.Fecha='2010-08-12' AND RM.Recojo= 0174. 175. --CONSULTA 12: Listar todos los participantes, identificando si se pre-inscribi o no.176. SELECT I.IDInscripcion, P.IDPersona,(P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno) AS 'PARTICIPANTE', I.PreInscripcion177. FROM Persona AS P 178. INNER JOIN Inscripcion AS I 179. ON P.IDPersona = I.IDParticipante180. WHERE P.TipoPersona ='P'181. 182. 183. --CONSULTA 13:Mostrar el evento ms vendido y el menos vendido.184. SELECT E.Descripcion ,E.NroVecesContratado AS 'MAS/MENOS VENDIDO '185. FROM Evento AS E186. GROUP BY E.Descripcion,E.NroVecesContratado187. HAVING E.NroVecesContratado= MAX(E.NroVecesContratado) OR E.NroVecesContratado=MIN(E.NroVecesContratado)188. 189. --CONSULTA 14: Listar todos los participantes que hayan participado en ms de un evento.190. SELECT (P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno)AS 'NOMBRE COMPLETO', COUNT(I.IDParticipante) AS 'NRO DE EVENTOS'191. FROM Persona AS P 192. INNER JOIN Inscripcion as I193. ON P.IDPersona = I.IDParticipante194. GROUP BY (P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno)195. HAVING COUNT(I.IDParticipante) > 1196. 197. --CONSULTA 15: Listar todos los ponentes que hayan participado en ms de un evento.198. SELECT (P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno)AS 'NOMBRE COMPLETO', COUNT(P.IDPersona) AS 'NRO DE EVENTOS'199. FROM Persona AS P 200. INNER JOIN ActividadTrabajador AT201. ON P.IDPersona = AT.IDTrabajador202. INNER JOIN Actividad AS A203. ON AT.IDActividad = A.IDActividad 204. INNER JOIN Evento AS E205. ON A.IDEvento = E.IDEvento206. GROUP BY (P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno)207. HAVING COUNT(P.IDPersona) > 1208. 209. 210. --CONSULTA 16: Listar los turnos con mayor/menor cantidad de asistentes.211. SELECT E.Descripcion AS 'EVENTO', AT.Fecha AS 'FECHA', A.Tema AS 'ACTIVIDAD' ,T.Descripcion AS 'TURNO' , 212. SUM(CONVERT(INT,AT.Asistencia)) AS 'ASISTENCIA' 213. FROM AsistenciaTurno AS AT214. INNER JOIN Turno AS T215. ON AT.IDturno = T.IDTurno216. INNER JOIN TurnoActividad AS TA217. ON T.IDTurno = TA.IDTurno218. INNER JOIN Actividad AS A219. ON TA.IDActividad = A.IDActividad220. INNER JOIN Evento AS E221. ON A.IDEvento = E.IDEvento222. GROUP BY E.Descripcion, A.Tema, T.Descripcion, AT.IDturno , AT.Fecha223. HAVING SUM(CONVERT(INT,AT.Asistencia)) > 100

2.7 PROCEDIMIENTOS ALMACENADOS3 CrearCuenta 4 El administrador crea la cuenta de un nuevo usuario. CREATE PROCEDURE CREAR_CUENTA5 @IDPersona char(8), @Nombre char(20), @ApellidoPaterno char(20) , @ApellidoMaterno char(20),@DNI int, @Correo char(40),6 @Login char(20),@Password char(20),@TipoEvento char(20)7 AS8 begin try9 INSERT INTO Persona VALUES(@IDPersona,@Nombre,@ApellidoPaterno,@ApellidoMaterno,@DNI,@Correo,'U')10 end try11 begin catch12 PRINT 13 ERROR_MESSAGE();14 end catch15 begin try16 INSERT INTO Usuario VALUES(@IDPersona,@Login,@Password,'U',@TipoEvento)17 end try18 begin catch19 PRINT 20 ERROR_MESSAGE();21 end catch22 REALIZAR PREINSCRIPCION23 Un participante se preinscribe al evento24 CREATE PROCEDURE RealizarPreInscripcin25 @PK CHAR (8), @IDEvento char (8),@IDUsuario char (8)26 AS27 begin try28 INSERT INTO PreInscripcion VALUES(@PK,@IDEvento,@IDUsuario)29 end try30 begin catch31 PRINT 32 ERROR_MESSAGE();33 end catch34 35 EXEC RealizarPreInscripcin 'PI0021','PQ0003','P00021'36 CREAR EVENTO37 El administrador crea un nuevo evento38 CREATE PROCEDURE CREAR_EVENTO39 @IDEvento char (8), @IDUsuario char, @FechaInicio date, @FechaFin date,@NroVecesContratado int, @Descripcion char(50)40 AS41 begin try42 INSERT INTO Evento VALUES(@IDEvento,@IDUsuario,@FechaInicio,@FechaFin,@NroVecesContratado,@Descripcion)43 end try44 begin catch45 PRINT 46 ERROR_MESSAGE();47 end catch48 49 EXEC CREAR_EVENTO 'E00003','U00001','2010-08-12','2010-08-16',1,'ESPECIALIDAD'50 51 CREAR SALA/AUDITORIO52 El administrador crea una sala o auditorio, con todas las caractersticas 53 necesarias.

CREATE PROCEDURE CREAR_SALA54 @IDlugar char (8), @nombre char (8), @Descripcion char(50), @capacidad int55 AS56 begin try57 INSERT INTO Lugar VALUES(@IDlugar,@nombre,@Descripcion,@capacidad)58 end try59 begin catch60 PRINT 61 ERROR_MESSAGE();62 end catch63 64 EXEC CREAR_SALA 'LU0004','Salon 3','Salon',20065 CIERRE DIARIO66 Tomando la fecha del sistema, debe entregar el saldo del da: Ingresos, Egresos 67 y Saldo. En caso no se tengan datos, mostrar el mensaje Aun no se tienen 68 datos69 CREATE PROCEDURE CierreDiario @fecha date70 AS71 begin try72 declare @cont int;73 declare @egresos int;74 declare @ingresos int;75 declare @total int;76 set @cont = (select COUNT(*) from Recibo where Fecha = @fecha) ;77 print getdate();78 if @cont < 1 79 print 'no se tienen datos';80 else81 begin 82 set @egresos = (select SUM(Total) as egresos from Recibo where Operacion = 'e' and Fecha = @fecha ) ;83 set @ingresos = (select SUM(Total) as ingresos from Recibo where Operacion = 'i'and Fecha = @fecha );84 print 'ingresos';85 print @ingresos ;86 print 'egresos';87 print @egresos;88 print 'total'; 89 print @ingresos - @egresos ;90 end91 end try92 begin catch93 PRINT 94 ERROR_MESSAGE();95 end catch96 97 EXEC CierreDiario '2010-06-15'98 99 100 EMITIR CERTIFICADO 101 Listar los participantes que tienen derecho a certificado, y los que no tienen 102 derecho a certificado. Para hacer el listado, se debe ingresar un porcentaje lmite 103 de inasistencias. 104 105 USE GESTOR_EVENTOS106 107 CREATE 108 PROCEDURE EMITIR_CERTIFICADO @Evento CHAR(8)109 AS110 BEGIN TRY111 SELECT E.Descripcion ,(P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno)AS 'PARTICIPANTE' ,SUM(CONVERT(INT,AT.Asistencia)) AS 'NRO ASISTENCIAS'112 FROM Evento AS E, AsistenciaTurno AS AT 113 INNER JOIN Persona AS P114 ON AT.IDParticipante= P.IDPersona115 WHERE E.IDEvento = @Evento116 GROUP BY E.Descripcion, (P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno)117 HAVING SUM(CONVERT(INT,AT.Asistencia)) > 15118 END TRY119 BEGIN CATCH120 PRINT 121 ERROR_MESSAGE();122 END CATCH123 124 drop procedure EMITIR_CERTIFICADO;125 126 EXEC EMITIR_CERTIFICADO 'E00002'127 128 129 CREAR TALLER/TUTORIAL130 El administrador crea un taller/tutorial en un evento especfico. Debe ingresar 131 todas las caractersticas necesarias. 132 133 CREATE PROCEDURE TALLER134 @IDActividad char (8), @Nombre char (20), @Tema char(20), @Descripcion char(50), @IDEvento char(8),@IDLugar char(8), @Fecha date, @Horario char(30), @IDTurno char(8)135 AS136 begin try137 INSERT INTO Actividad VALUES(@IDActividad,@Nombre,@Tema,@Descripcion,@IDEvento)138 end try139 begin catch140 PRINT 141 ERROR_MESSAGE();142 end catch143 begin try144 INSERT INTO ActividadLugar VALUES(@IDLugar,@IDActividad)145 end try146 begin catch147 PRINT 148 ERROR_MESSAGE();149 end catch150 begin try151 INSERT INTO DetalleActividad VALUES(@IDActividad,@Fecha,@Horario)152 end try153 begin catch154 PRINT 155 ERROR_MESSAGE();156 end catch157 begin try158 INSERT INTO TurnoActividad VALUES(@IDActividad,@IDTurno,@Fecha)159 end try160 begin catch161 PRINT 162 ERROR_MESSAGE();163 end catch164 165 DROP PROCEDURE TALLER166 167 EXEC TALLER 'AC0019','Ponencia9','Programacion','Programacion en C++','E00001','LU0003','2014-08-12','5:00pm A 5:45pm','TU0004'168 169 LISTAR KARDEX170 Debe mostrar el krdex (entrada y salida de materiales) de todo el evento, desde 171 la fecha de inicio hasta el da de la consulta. CREATE PROCEDURE Listar_Kardex @Evento CHAR(8),@FechaFin date172 AS173 begin try174 SELECT E.Descripcion , OP.IDMaterial,OP.Operacion, OP.Cantidad, OP.ValorUnitario,OP.Fecha FROM OperacionMaterial AS OP, 175 Evento AS E176 where OP.Fecha BETWEEN E.FechaInicio and @FechaFin and E.IDEvento =@Evento177 order by OP.Fecha178 179 end try180 181 begin catch182 PRINT183 ERROR_MESSAGE(); 184 end catch185 186 187 188 EXEC Listar_Kardex 'E00001','2010-08-13'

2.7 APLICACIN WEB

2.7.1 ARQUITECTURA DE LA APLICACIN WEBLa programacin por capas es una arquitectura cliente-servidor en el que el objetivo primordial es la separacin de la lgica de negocios de la lgica de diseo; un ejemplo bsico de esto consiste en separar la capa de datos de la capa de presentacin al usuario.CAPAS Y NIVELES1. Capa de presentacin: es la que ve el usuario, presenta el sistema al usuario, le comunica la informacin y captura la informacin del usuario en un mnimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). Tambin es conocida como interfaz grfica y debe tener la caracterstica de ser "amigable" (entendible y fcil de usar) para el usuario. Esta capa se comunica nicamente con la capa de negocio.2. Capa de negocio: es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envan las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lgica del negocio) porque es aqu donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentacin, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de l. Tambin se consideran aqu los programas de aplicacin.3. Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos. Est formada por uno o ms gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperacin de informacin desde la capa de negocio.[12]

En resumen las capas se definen as: Presentacin. (Conocida como capa Web en aplicaciones Web o como capa de usuario en Aplicaciones Nativas) Lgica de Negocio. (Conocida como capa Aplicativa) Datos. (Conocida como capa de Base de Datos)

Se agreg una capa la cual es: Capa de Conexin: En la cual reside la conexin con la base de datos, con la funcionalidad de abrir y cerrar la conexin cada vez que se requiera.

Imgenes de aplicacin programada en capas

2.7.2 Estrategia de implementacinLos eventos implican la coincidencia temporal. Es decir, un nmero de personas se renen en un determinado da u horario para asistir al mismo suceso. Con la aparicin de Internet y de aplicaciones mviles que permiten la transmisin en vivo ya no es necesario coincidir en un mismo espacio geogrfico para asistir a un evento social, acadmico, artstico, entre otros. Un evento en vivo se transmite en tiempo real a travs de la utilizacin de herramientas y plataformas de comunicacin especficas que permiten la difusin a un amplio pblico. La plataforma donde se realiza el evento oficia como auditorio o como una sala para las conferencias. Los participantes asisten y participan en el evento en vivo siguiendo la propuesta de los moderadores u organizadores del evento.

Existen diversas alternativas para realizar un evento. La eleccin del tipo de evento a realizar depender de las particularidades del contexto, las posibilidades tcnicas y los objetivos del mismo. En este caso el sistema de gestor de eventos est centrado a los eventos acadmicos y de capacitacinLos eventos acadmicos pueden ser organizados por instituciones educativas, sindicatos, asociaciones profesionales, organismos gubernamentales, ONG o empresas, y pueden tener distintos formatos o propuestas, algunos ejemplos son: 1. Panel o Simposio

2. Debate

3. Clase Magistral

4. Conferencia

5. Congreso

Esta estrategia se dise apoyado en la herramienta Microsoft Visual Studio 2010 conjuntamente con el gestor de base de datos Microsoft SQL Server 2008 R2, para aprovechar el potencial que ofrece estas herramientas gratuitas en educacin. La estrategia diseada consta de varias actividades, las cuales buscan estimular el inters por el usuario ya sea participante o el administrador del evento.

2.7.3 MINIMANUAL DE APLICACIN WEBSe utiliz el framework ASP.NET que fue desarrollado por Microsoft, est construido sobre el Common Language runtime, que permite utilizar cualquier lenguaje admitido por el .NET framework, fue desarrollado con la herramienta Visual Studio 2010 C#Pantalla principal: La pantalla principal de la aplicacin, se selecciona el login para ingresar como un tipo de usuario

Login: Se ingresa los datos de tu usuario, se selecciona el tipo de usuario que eres , finalmente se da click en la opcin ingresar.

Crear usuario: Se ingresan todos los datos del usuario, el nombre de su evento con el que va a ser relacionado, una ves comprobado todo se apretara el botn guardar, para guardar toda la informacin ingresada del nuevo usuario, aparte se tienen las opciones actualizar, reportes y buscar usuarios.

Reporte : Muestra la lista que se encuentran registrados en la pgina, en este caso la lista de usuarios

Bsqueda: Se realiza la bsqueda por cdigo, se necesita que se ingrese el cdigo del usuario en el textfield que se seala, luego muestra los datos del usuario si es que lo encuentra

Actualizar: Se realiza primero la bsqueda de un usuario, muestra todos sus datos los cuales pueden ser modificados y al darle click en el botn actualizar, si es que se ah realizado algn cambio este se realizara.Finalmente la opcin cerrar Sesin se utiliza para salir de tu cuenta

CONCLUSIONES-Para el desarrollo eficientemente el sistema gestor de eventos se realizo un eficaz diagrama entidad-relacion, que fue usado como base.

-SQL SERVER 2008 R2 nos permite gestionar bases de datos, realizar la creacion de tablas con sus relaciones, las consultas son utilizadas para obtener informacion de la base de datos, los procedimientos almacenados fueron utilizados para evitar sobrecargar la base de datos.

-Un sistema es mas efectivo mientras mas simple sea su manipulacion para el usuario y que ofrezca un rapido acceso y disponibilidad de los datos o reportes que este necesita

REFERENCIAS-[6]Perez M. SQl server 2008 R2 Motor de base de datos y administracin. Madrid, Espaa: RC Libros-[7]Gabillaud J. (2009). SQL Server 2008 sql, transact sql Diseo y creacin de una base de datos. Cornella de Llobregat, Barcelona, Espaa: Ediciones ENI- [8]Barker R. (1990). Case Method, Entity Relationship Modelling. Massachusetts, Estados Unidos: Compaa Addison- Wesley.-[1] Elmasri and Navathe (2006) Fundamentos de Sistema de Bases de datos - Modelo Entidad Relacin [Online], pagina 4-6 Recuperado el 15 de Marzo de 2014 Disponible: http://www.uazuay.edu.ec/analisis/Modelo%20Entidad%20Relacion.pdf - [2] WilliamJonMcCann (2003, Noviembre 20) DIA Home [Online] Recuperado el 15 de Marzo de 2014 Disponible:https://wiki.gnome.org/Apps/Dia -[3] Colaboradores de Wikipedia (2014, Mayo 6) XML [Online] Recuperado el 15 de Marzo de 2014 Disponible:http://en.wikipedia.org/wiki/XML -[12] Colaboradores de Wikipedia (2013, Febrero 23) Programacin por capas [Online] Recuperardo 23 de Junio de 2014 Disponible: http://es.wikipedia.org/wiki/Programaci%C3%B3n_por_capas- [4] Microsoft (2012) Microsoft SQL Server 2008 R2 SP2 - Express Edition [Online] Recuperado el 05 de Abril de 2014-[11] Guillermo Caldern, Csar Beltrn, Eveling Castro, Jos Esquicha Practica 10 Procedimientos almacenados, Base de Datos, Universidad Catlica de Santa Mara, Arequipa-Per Ao 2012Disponible:http://www.microsoft.com/es-es/download/details.aspx?id=30438 - [5] Microsoft (2012) Microsoft SQL Server 2008 R2 SP2 - Express Edition [Online] Recuperado el 05 de Abril de 2014 Disponible:http://www.microsoft.com/es-es/download/details.aspx?id=1695 -[9] Colaboradores de MYSQL Hispano (2003, Mayo 29) Normalizacin de bases de datos [Online], pgina 2 Recuperado el 05 de Abril de 2014Disponible:http://www.eet2mdp.edu.ar/alumnos/MATERIAL/MATERIAL/info/infonorma.pdf -[10] Colaboradores de MYSQL Hispano (2003, Mayo 29) Normalizacin de bases de datos [Online], pgina 2 Recuperado el 05 de Abril de 2014Disponible:http://www.eet2mdp.edu.ar/alumnos/MATERIAL/MATERIAL/info/infonorma.pdf

21


Recommended