Sie sind auf Seite 1von 32

Universidad Catlica Santa

Mara
Ingenieras fsicas y formales
Ingeniera de Sistemas

Nombres:

Alarcn Garca Rodrigo


Bellido Cahuana Edgar
Portilla Paredes Henrry
Curso: Administracin de los datos y la informacin

Tema: Sistema Gestor de Eventos

Arequipa Per
Contenido

RESUMEN.................................................................................................................... 3
INTRODUCCIN.......................................................................................................... 4
OBJETIVOS.................................................................................................................. 5
CAPTIULO 1. FUNDAMENTO TERICO.................................................................5
1.1. Diagrama entidad Relacin.....................................................................5
1.2. DIA (Programa).-....................................................................................... 5
1.3. MICROSOFT SQL SERVER 2008 R2..........................................................6
1.4. NORMALIZACIN....................................................................................... 6
1.5. PROCEDIMIENTOS ALMACENADOS.........................................................7
CAPITULO 2. DESARROLLO.................................................................................. 7
2.1. DIAGRAMA ENTIDAD-RELACIN..............................................................7
2.2.

DESCRIPCIN DE VNCULOS...............................................................9

2.3. NORMALIZACIN....................................................................................... 9
2.4. MODELO ENTIDAD RELACIN................................................................10
2.5. DICCIONARIO DE DATOS.........................................................................11
2.6. CONSULTAS............................................................................................... 15
2.7. PROCEDIMIENTOS ALMACENADOS.......................................................20
2.8. APLICACIN WEB..................................................................................... 24
CONCLUSIONES....................................................................................................... 30
REFERENCIAS........................................................................................................... 30

RESUMEN
2

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
3

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
4

1. Realizar una investigacin preliminar para el desarrollo del sistema gestor


de eventos y la cardinalidad de un diagrama entidad relacin
2. 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 TERICO
1.1.
Diagrama entidad Relacin
Es 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 R2


Microsoft 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. NORMALIZACIN
La 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 ALMACENADOS


Es 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. DESARROLLO
2.1. DIAGRAMA ENTIDAD-RELACIN

2.2 DESCRIPCIN 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.
9

- 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


10

2.5.

DICCIONARIO DE DATOS

3. Tabla Persona
Campo
ID Persona
Nombre
Apellido
Paterno
Apellido
Materno
Correo
DNI
TipoPersona

Tamao
8
20
20

Tipo de dato
Char
Char
Char

Descripcin
Clave Primaria de la tabla Persona
Nombre del Persona
Primer apellido del Persona

20

Char

Segundo apellido del Persona

20
4

Char
Int
Char

Correo electrnico del Persona


Documento del Persona
Tipo de Persona

Tabla Trabajador
Campo
IDTrabajador

Tamao
8

Tipo de dato
Char

Cargo
Salario

20
8,2

Char
Decimal

Descripcin
Clave Primaria de la tabla

Trabajador

11

Cargo del Trabajador


Salario del Trabajador

20
10

Char
Char

Nacionalidad del Trabajador


Hoja de Vida

Tamao
8
20
20
20
20

Tipo de dato
Char
Char
Char
Char
Char

Descripcin
Clave Primaria de tabla Usuario
Login del Usuario
Contrasea del Usuario
Tipo del Usuario
Tipo del Evento contratado

Tamao
8
8
8

Tipo de dato
Char
Char
Char

Char

Descripcin
Clave Primaria de la tabla Recibo
Clave fornea de la tabla Usuario
Clave fornea de la tabla
Participante
Clave fornea de la tabla Usuario

8,2

bit
Date
Decimal

Tipo de Operacin
Fecha del movimiento
Cantidad del movimiento

Nacionalidad
CodigoHojade
Vida

Tabla Usuario
Campo
ID Usuario
Login
Password
TipoUsuario
Tipo Evento
Tabla Recibo
Campo
IDRecibo
IDUsuario
IDParticipante
IDAdministrado
r
Operacin
Fecha
Total

Tabla Evento
Campo
IDEvento

Tamao
8

Tipo de dato
Char

IDUsuario

Char

FechaIni
FechaFin
NroVecesContrat
ado
Descripcin

Date
Date
Int

50

Char

Tabla Actividad
Campo
IDActividad

Tamao
8

Tipo de dato
Char

IDEvento
Nombre

8
20

Char
Char

12

Descripcin
Clave Primaria de la tabla
DatosEvento
Clave fornea de la tabla
Usuario
Inicio del Evento
Fin del Evento
Nmero de veces que se
contrata el evento
Descripcin del Evento

Descripcin
Clave Primaria de la tabla
Actividad
Clave fornea de la tabla Evento
Nombre del Evento

Tema
Descripcin

20
50

Tabla Lugar
Campo

Tamao

IDLugar
Nombre
Descripcion
Capacidad

8
20
150
-

Tabla Actividad_Lugar
Campo
Tamao
IDActividad
IDLugar

8
8

Tabla DetalleActividad
Campo
Tamao
IDActividad
Fecha
Horario

8
30

Tabla ActividadTrabajador
Campo
Tamao
IDActividad
IDTrabajador

8
8

Char
Char

Tipo de
dato
Char
Char
Char
Int

Descripcin

Tipo de
dato
Char
Char

Descripcin

Tipo de
dato
Char
Date
Char

Descripcin

Tipo de
dato
Char
Char

Descripcin

Tabla Paquete
Campo
IDPaquete

Tamao
8

Tipo de dato
Char

IDEvento
Nombre
Descripcion
Precio

8
20
50
8.2

Char
Char
Char
decimal

Tabla Promocin
Campo
13

Tamao

Tema a tratar en la actividad


Descripcin de la actividad

Tipo de

Clave Primaria de la tabla Lugar


Nombre del lugar
Detalles del Lugar
Capacidad de personas del lugar

Clave Fornea de la tabla Actividad


Clave Fornea de la tabla Lugar

Clave Fornea de la tabla Actividad


Fecha de la Actividad
Horarios disponibles de la Actividad

Clave Fornea de la tabla Actividad


Clave Fornea de la tabla
Trabajador

Descripcin
Clave Primaria de la tabla
Paquete
Clave fornea de la tabla Evento
Nombre del paquete
Detalles del paquete
Valor del paquete

Descripcin

IDPromocion

dato
Char

PorcentajeDescu
ento
FechaInicio
FechaFin
Descripcin

Int

50

Date
Date
Char

Clave Fornea de la tabla


Promocin
Porcentaje de Descuento de la
Promocin
Fecha de inicio de la Promocin
Fecha de fin de la Promocin
Detalle de que consta la Promocin

Tabla DetalleRecibo
Campo
Tamao
IDRecibo
8
IDPaquete
8
IDPromocion
8

Tipo de dato
Char
Char
Char

ValorUnitario
Cantidad
Concepto

8.2
8.2
50

Decimal
Decimal
Char

Descripcin
Clave fornea de la tabla Recibo
Clave fornea de la tabla Paquete
Clave fornea de la tabla
Promocin
Valor por unidad
Cantidad total
Detalle del recibo

Tabla Turno
Campo
IDTurno
Descripcin
TipoTurno
Horario

Tamao
8
50
10
50

Tipo de dato
Char
Char
Char
Char

Descripcin
Clave Primaria de la tabla Turno
Detalles del turno
Tipo de turno
Horario del Turno

Tabla TurnoActividad
Campo
Tamao
IDTurno
8
IDActividad
8

Tipo de dato
Char
Char

Fecha

Date

Descripcin
Clave Fornea de la tabla Turno
Clave Fornea de la tabla
Actividad
Fecha del turno de la actividad

Tabla AsistenciaTurno
Campo
Tamao
IDParticipante

IDTurno
8
Asistencia
Fecha
Tabla Promocion_Evento
Campo
Tamao
IDPromocion

14

Tipo de
dato
Char
Char
Int
Date
Tipo de
dato
Char

Descripcin
Clave Fornea de la tabla
Participante
Clave Fornea de la tabla Turno
Asistencia al Turno
Fecha de la Asistencia al Turno
Descripcin
Clave Fornea de la tabla
Promocin

IDEvento

Char

Clave Fornea de la tabla Evento

Tabla Material
Campo

Tamao

Descripcin

IDMaterial
Descripcin
TipoMaterial
Nombre
CantidadTotal

8
50
2
255
-

Tipo de
dato
Char
Char
Char
Varchar
Int

Tipo de
dato
Char
Char
Decimal
Int
Date

Descripcin

Tipo de
dato
Bit
Date
Int
Char
Char
Char

Descripcin

Descripcin

Tabla OperacinMaterial
Campo
Tamao
IDMaterial
Operacion
ValorUnitario
Cantidad
Fecha

8
1
8.2
-

Tabla RecojoMaterial
Campo
Tamao
Recojo
Fecha
Cantidad
IDTurno
IDParticipante
IDMaterial

8
8
8

Tabla Preinscripcin
Campo
Tamao
IDPreInscripcion

Tipo de
dato
Char

IDPaquete
IDParticipante

8
8

Char
Char

Tabla Inscripcin
Campo

Tamao

IDInscripcion

Tipo de
dato
Char

IDRecibo
IDParticipante

8
8

Char
Char

15

Clave Primaria de la tabla Material


Informacin del material
Tipo del Material
Nombre del material
Stock del material

Clave Fornea de la tabla Material


Tipo de operacin del material
Valor por unidad
Cantidad
Fecha

Recogi o no
Fecha del recojo
Cantidad del Material
Clave Fornea de Turno
Clave Fornea de Participante
Clave Fornea de Material

Clave Primaria de la tabla


Preinscripcin
Clave Fornea de la tabla Paquete
Clave Fornea de la tabla
Participante

Descripcin
Clave Primaria de la tabla
Inscripcin
Clave Fornea de la tabla Recibo
Clave Fornea de la tabla

Participante
Clave Fornea de la tabla
Preinscripcin

PreInscripcion

Char

Tabla Solicitud
Campo

Tamao

Descripcin

IDSolicitud
Descripcin

8
50

Tipo de
dato
Char
Char

Tabla Contrato
Campo

Tamao

Descripcin

IDSolicitud
IDRecibo
Fecha

8
8
-

Tipo de
dato
Char
Char
Date

2.6

Clave Primaria de la tabla Solicitud


Detalle de la Solicitud

Clave Fornea de la tabla Solicitud


Clave Fornea de la tabla Recibo
Fecha del Contrato

CONSULTAS

4.
5.
6.
7.
8.

USE GESTOR_EVENTOS;
--CONSULTA 1: Listado de eventos contratados, con los datos completos de los
--contratantes. En caso que un contratante tenga ms de un evento
--contratado, deber mostrarse el resultado agrupado por contratante.
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.IDPersona
13.
INNER JOIN Evento AS E
14.
ON U.IDUsuario = E.IDUsuario
15.
GROUP BY U.IDUsuario,(P.Nombre+ P.ApellidoPaterno+
P.ApellidoMaterno),P.DNI, E.Descripcion
16.
17.
--CONSULTA 2: Nmero de participantes en un evento. Se debe mostrar el
total de
18.
--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.IDRecibo
24.
INNER JOIN DetalleRecibo AS DR
25.
ON R.IDRecibo = DR.IDRecibo
26.
INNER JOIN Paquete AS P
27.
ON DR.IDPaquete = P.IDPaquete
28.
INNER JOIN Evento AS E

16

29.
30.

ON P.IDEvento = E.IDEvento
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.IDEvento
37.
INNER JOIN ActividadLugar AS AL
38.
ON AC.IDActividad = AL.IDActividad
39.
INNER JOIN Lugar AS L
40.
ON AL.IDLugar = L.IDLugar
41.
INNER JOIN DetalleActividad DA
42.
ON AC.IDActividad = DA.IDActividad
43.
INNER JOIN TurnoActividad AS TA
44.
ON AC.IDActividad = TA.IDActividad
45.
INNER JOIN Turno AS T
46.
ON TA.IDTurno = T.IDTurno
47.
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.IDEvento
55.
INNER JOIN ActividadLugar AS AL
56.
ON AC.IDActividad = AL.IDActividad
57.
INNER JOIN Lugar AS L
58.
ON AL.IDLugar = L.IDLugar
59.
INNER JOIN DetalleActividad DA
60.
ON AC.IDActividad = DA.IDActividad
61.
ORDER BY L.IDLugar ASC
62.
63.
--CONSULTA 5:Listar la cantidad de asistentes por evento. Por ejemplo,
87/90
64.
--(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 AT
68.
INNER JOIN Turno AS T
69.
ON AT.IDturno = T.IDTurno
70.
INNER JOIN TurnoActividad AS TA
71.
ON T.IDTurno = TA.IDTurno
72.
INNER JOIN Actividad AS A

17

73.
ON TA.IDActividad = A.IDActividad
74.
INNER JOIN Evento AS E
75.
ON A.IDEvento = E.IDEvento
76.
GROUP BY E.Descripcion, A.Tema, T.Descripcion, AT.IDturno , AT.Fecha
77.
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 Egreso
82.
FROM Usuario AS U
83.
INNER JOIN Recibo AS R
84.
ON U.IDUsuario = R.IDAdministrador
85.
WHERE R.Fecha='2010-06-15'
86.
GROUP BY
R.IDAdministrador
87.
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 U
97.
INNER JOIN Recibo AS R
98.
ON U.IDUsuario = R.IDAdministrador
99.
WHERE R.Fecha BETWEEN '2010-06-12' AND '2010-08-17'
100. GROUP BY
R.IDAdministrador
101.
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 P
105.
ON R.IDParticipante = P.IDPersona
106.
INNER JOIN DetalleRecibo DR
107.
ON R.IDRecibo = DR.IDRecibo
108. WHERE R.Operacion='E'
109. ORDER BY DR.Cantidad*DR.ValorUnitario ASC
110.
111. SELECT TOP 5 DR.Cantidad*DR.ValorUnitario AS 'EGRESOS MINIMOS', P.Nombre
, DR.Concepto FROM Recibo AS R
112.
INNER JOIN Persona AS P
113.
ON R.IDParticipante = P.IDPersona
114.
INNER JOIN DetalleRecibo DR
115.
ON R.IDRecibo = DR.IDRecibo
116. WHERE R.Operacion='E'
117. ORDER BY DR.Cantidad*DR.ValorUnitario DESC
118.
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 P
122.
ON R.IDParticipante = P.IDPersona
123.
INNER JOIN DetalleRecibo DR
124.
ON R.IDRecibo = DR.IDRecibo
125. WHERE R.Operacion='I'

18

126. ORDER BY DR.Cantidad*DR.ValorUnitario ASC


127.
128. SELECT TOP 5 DR.Cantidad*DR.ValorUnitario AS 'INGRESOS MAXIMOS', P.Nombre
, DR.Concepto FROM Recibo AS R
129.
INNER JOIN Persona AS P
130.
ON R.IDParticipante = P.IDPersona
131.
INNER JOIN DetalleRecibo DR
132.
ON R.IDRecibo = DR.IDRecibo
133. WHERE R.Operacion='I'
134. ORDER BY DR.Cantidad*DR.ValorUnitario DESC
135.
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 RM
140.
INNER JOIN Persona AS P
141.
ON RM.IDParticipante = P.IDPersona
142.
INNER JOIN Material AS M
143.
ON RM.IDMaterial = M.IDMaterial
144.
INNER JOIN AsistenciaTurno AS AT
145.
ON P.IDPersona = AT.IDParticipante
146.
INNER JOIN Turno AS T
147.
ON AT.IDturno = T.IDTurno
148.
INNER JOIN TurnoActividad AS TA
149.
ON T.IDTurno = TA.IDTurno
150.
INNER JOIN Actividad AS A
151.
ON TA.IDActividad = A.IDActividad
152.
INNER JOIN Evento AS E
153.
ON A.IDEvento = E.IDEvento
154. WHERE M.TipoMaterial = 'MU'
155. GROUP BY E.Descripcion, P.IDPersona,
(P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno),RM.Recojo
156. ORDER BY P.IDPersona
157.
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 RM
161.
INNER JOIN Persona AS P
162.
ON RM.IDParticipante = P.IDPersona
163.
INNER JOIN Material AS M
164.
ON RM.IDMaterial = M.IDMaterial
165.
INNER JOIN Turno AS T
166.
ON RM.IDTurno = T.IDTurno
167.
INNER JOIN TurnoActividad AS TA
168.
ON T.IDTurno = TA.IDTurno
169.
INNER JOIN Actividad AS A
170.
ON TA.IDActividad = A.IDActividad
171.
INNER JOIN Evento AS E
172.
ON A.IDEvento = E.IDEvento
173. WHERE RM.Fecha='2010-08-14' AND M.TipoMaterial='MC' AND TA.Fecha='201008-12' AND RM.Recojo= 0
174.

19

175. --CONSULTA 12: Listar todos los participantes, identificando si se preinscribi o no.
176. SELECT I.IDInscripcion, P.IDPersona,
(P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno) AS 'PARTICIPANTE',
I.PreInscripcion
177. FROM Persona AS P
178.
INNER JOIN Inscripcion AS I
179.
ON P.IDPersona = I.IDParticipante
180. 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 E
186. GROUP BY E.Descripcion,E.NroVecesContratado
187. 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 I
193.
ON P.IDPersona = I.IDParticipante
194. GROUP BY (P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno)
195. HAVING COUNT(I.IDParticipante) > 1
196.
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 AT
201.
ON P.IDPersona = AT.IDTrabajador
202. INNER JOIN Actividad AS A
203.
ON AT.IDActividad = A.IDActividad
204. INNER JOIN Evento AS E
205.
ON A.IDEvento = E.IDEvento
206. GROUP BY (P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno)
207. HAVING COUNT(P.IDPersona) > 1
208.
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 AT
214. INNER JOIN Turno AS T
215.
ON AT.IDturno = T.IDTurno
216. INNER JOIN TurnoActividad AS TA
217.
ON T.IDTurno = TA.IDTurno
218. INNER JOIN Actividad AS A
219.
ON TA.IDActividad = A.IDActividad
220. INNER JOIN Evento AS E
221.
ON A.IDEvento = E.IDEvento
222. GROUP BY E.Descripcion, A.Tema, T.Descripcion, AT.IDturno , AT.Fecha
223. HAVING SUM(CONVERT(INT,AT.Asistencia)) > 100

20

2.7
PROCEDIMIENTOS ALMACENADOS
3 CrearCuenta
4 El administrador crea la cuenta de un nuevo usuario.
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

CREATE PROCEDURE CREAR_CUENTA


@IDPersona char(8), @Nombre char(20), @ApellidoPaterno char(20) ,
@ApellidoMaterno char(20),@DNI int, @Correo char(40),
@Login char(20),@Password char(20),@TipoEvento char(20)
AS
begin try
INSERT INTO Persona
VALUES(@IDPersona,@Nombre,@ApellidoPaterno,@ApellidoMaterno,@DNI,@Correo,'U'
)
end try
begin catch
PRINT
ERROR_MESSAGE();
end catch
begin try
INSERT INTO Usuario VALUES(@IDPersona,@Login,@Password,'U',@TipoEvento)
end try
begin catch
PRINT
ERROR_MESSAGE();
end catch

23 REALIZAR PREINSCRIPCION
24 Un participante se preinscribe al evento
25
26
27
28
29
30
31
32
33
34
35

CREATE PROCEDURE RealizarPreInscripcin


@PK CHAR (8), @IDEvento char (8),@IDUsuario char (8)
AS
begin try
INSERT INTO PreInscripcion VALUES(@PK,@IDEvento,@IDUsuario)
end try
begin catch
PRINT
ERROR_MESSAGE();
end catch

36 EXEC RealizarPreInscripcin 'PI0021','PQ0003','P00021'


37 CREAR EVENTO
38 El administrador crea un nuevo evento
39 CREATE PROCEDURE CREAR_EVENTO
40 @IDEvento char (8), @IDUsuario char, @FechaInicio date, @FechaFin
date,@NroVecesContratado int, @Descripcion char(50)
41 AS
42 begin try
43
INSERT INTO Evento
VALUES(@IDEvento,@IDUsuario,@FechaInicio,@FechaFin,@NroVecesContratado,@Desc
ripcion)
44 end try
45 begin catch
46
PRINT
47
ERROR_MESSAGE();
48 end catch
49

21

50 EXEC CREAR_EVENTO 'E00003','U00001','2010-08-12','2010-0816',1,'ESPECIALIDAD'

51
52 CREAR SALA/AUDITORIO
53 El administrador crea una sala o auditorio, con todas las caractersticas
54 necesarias.
55
56
57
58
59
60
61
62
63
64
65
66
67

CREATE PROCEDURE CREAR_SALA


@IDlugar char (8), @nombre char (8), @Descripcion char(50), @capacidad int
AS
begin try
INSERT INTO Lugar VALUES(@IDlugar,@nombre,@Descripcion,@capacidad)
end try
begin catch
PRINT
ERROR_MESSAGE();
end catch
EXEC CREAR_SALA 'LU0004','Salon 3','Salon',200

68 CIERRE DIARIO
69 Tomando la fecha del sistema, debe entregar el saldo del da: Ingresos,
Egresos
70 y Saldo. En caso no se tengan datos, mostrar el mensaje Aun no se
tienen
71 datos
72 CREATE PROCEDURE CierreDiario @fecha date
73 AS
74 begin try
75
declare @cont int;
76
declare @egresos int;
77
declare @ingresos int;
78
declare @total int;
79
set @cont = (select COUNT(*) from Recibo where Fecha = @fecha) ;
80
print getdate();
81
if @cont < 1
82
print 'no se tienen datos';
83
else
84
begin
85
set @egresos = (select SUM(Total) as egresos from Recibo where
Operacion = 'e' and Fecha = @fecha ) ;
86
set @ingresos = (select SUM(Total) as ingresos from Recibo where
Operacion = 'i'and Fecha = @fecha );
87
print 'ingresos';
88
print @ingresos ;
89
print 'egresos';
90
print @egresos;
91
print 'total';
92
print @ingresos - @egresos ;
93
end
94 end try
95 begin catch
96
PRINT
97
ERROR_MESSAGE();
98 end catch
99
100
EXEC CierreDiario '2010-06-15'

22

101
102
103 EMITIR CERTIFICADO
104 Listar los participantes que tienen derecho a certificado, y los que no
tienen
105 derecho a certificado. Para hacer el listado, se debe ingresar un
porcentaje lmite
106 de inasistencias.
107
108
109
110
111
112
113
114

USE GESTOR_EVENTOS

CREATE
PROCEDURE EMITIR_CERTIFICADO @Evento CHAR(8)
AS
BEGIN TRY
SELECT E.Descripcion ,
(P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno)AS 'PARTICIPANTE'
,SUM(CONVERT(INT,AT.Asistencia)) AS 'NRO ASISTENCIAS'
115
FROM Evento AS E, AsistenciaTurno AS AT
116
INNER JOIN Persona AS P
117
ON AT.IDParticipante= P.IDPersona
118
WHERE E.IDEvento = @Evento
119
GROUP BY E.Descripcion,
(P.Nombre+P.ApellidoPaterno+P.ApellidoMaterno)
120
HAVING SUM(CONVERT(INT,AT.Asistencia)) > 15
121
END TRY
122
BEGIN CATCH
123
PRINT
124
ERROR_MESSAGE();
125
END CATCH
126
127
drop procedure EMITIR_CERTIFICADO;
128
129
EXEC EMITIR_CERTIFICADO 'E00002'

130
131
132 CREAR TALLER/TUTORIAL
133 El administrador crea un taller/tutorial en un evento especfico. Debe
ingresar
134 todas las caractersticas necesarias.
135
136
137

CREATE PROCEDURE TALLER


@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)
138
AS
139
begin try
140
INSERT INTO Actividad
VALUES(@IDActividad,@Nombre,@Tema,@Descripcion,@IDEvento)
141
end try
142
begin catch
143
PRINT
144
ERROR_MESSAGE();
145
end catch
146
begin try
147
INSERT INTO ActividadLugar VALUES(@IDLugar,@IDActividad)

23

148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170

end try
begin catch
PRINT
ERROR_MESSAGE();
end catch
begin try
INSERT INTO DetalleActividad VALUES(@IDActividad,@Fecha,@Horario)
end try
begin catch
PRINT
ERROR_MESSAGE();
end catch
begin try
INSERT INTO TurnoActividad VALUES(@IDActividad,@IDTurno,@Fecha)
end try
begin catch
PRINT
ERROR_MESSAGE();
end catch
DROP PROCEDURE TALLER
EXEC TALLER 'AC0019','Ponencia9','Programacion','Programacion en C+
+','E00001','LU0003','2014-08-12','5:00pm A 5:45pm','TU0004'

171
172 LISTAR KARDEX
173 Debe mostrar el krdex (entrada y salida de materiales) de todo el
evento, desde
174
la fecha de inicio hasta el da de la consulta.
175
176
177
178

CREATE PROCEDURE Listar_Kardex @Evento CHAR(8),@FechaFin date


AS
begin try
SELECT E.Descripcion , OP.IDMaterial,OP.Operacion, OP.Cantidad,
OP.ValorUnitario,OP.Fecha FROM OperacionMaterial AS OP,
179
Evento AS E
180
where OP.Fecha BETWEEN E.FechaInicio and @FechaFin and E.IDEvento
=@Evento
181
order by OP.Fecha
182
183
end try
184
185
begin catch
186
PRINT
187
ERROR_MESSAGE();
188
end catch
189
190
191
192
EXEC Listar_Kardex 'E00001','2010-08-13'

24

2.7 APLICACIN WEB


2.7.1 ARQUITECTURA DE LA APLICACIN WEB
La 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 NIVELES
1. 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.

25

Imgenes

de aplicacin programada

en capas
2.7.2 Estrategia de implementacin
Los 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 capacitacin
26

Los 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
27

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 WEB

Se 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

28

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.

29

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

30

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.

31

-[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 2012
Disponible: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 2014
Disponible:http://www.eet2mdp.edu.ar/alumnos/MATERIAL/MATERIAL/info/infon
orma.pdf
-[10] Colaboradores de MYSQL Hispano (2003, Mayo 29) Normalizacin de
bases de datos [Online], pgina 2 Recuperado el 05 de Abril de 2014
Disponible:http://www.eet2mdp.edu.ar/alumnos/MATERIAL/MATERIAL/info/in
fonorma.pdf

32

Das könnte Ihnen auch gefallen