jueves, 27 de junio de 2013





Simulación de la Operación de Bases de Datos

Para la simulación de la base de datos se acordó realizar varios store procedures estas son las especificaciones necesarias:


Datos de operación. Usada para la simulación de la operación de la BD. Tiene las siguientes operaciones:

a) Un cliente solicitud de ficha: Entrada: Fecha y hora de la solicitud, tipo de solicitud. Operación: Se registra acción en la BD, se asigna una ficha (ej:S25).

b) Cajero (empleado) solicita cliente: Entrada: Identificador de estación, Fecha y hora. Operación: El sistema (un procedimiento almacenado que ejecuta la operación) saca de la cola de “fichas” sin atender y asigna el tiquete a la estación, tomando en cuenta reglas según tipo de servicio de la estación y prioridades. La asignación de la “ficha” a la estación tiene una hora de inicio y una hora de fin. Cuando el cajero solicita cliente, asigna hora de fin a la “ficha” previa y hora de inicio a la nueva ficha asignada.

c) Cierre de Estación: Entrada: Fecha y hora, Identificador de Estación. Operación: la estación se cierra, en la base de datos se registra la fecha/hora fin de operación de la estación. Si la estación tenia asignada un cajero, este automáticamente queda “fuera”, de tal manera que se actualiza la fecha-hora-fin, del empleado asignado a la estación.

d) Inicio servicio de empleado en estación. Entrada: Identificador de empleado, Identificador de estación. Operación: Si la estación esta cerrada, esta se abre (fecha-hora-inicio), se asigna al empleado (actualizando adecuadamente la fecha-hora-inicio del empleado en la estación). Si la estación está abierta y asignada a otro empleado, se cierra la asignación empleado – estación (actualizando adecuada la fecha-hora-cierre del empleado en la estación), y se asigna al nuevo empleado.


Se logro escribir el siguiente store procedure:
--CREATE PROCEDURE FBCP_AgregarFicha

Declare @Prefijo varchar(1),@TipodeServicio varchar(20), @Numero int, @codigo varchar(10),
@FKTipoServico INT

SET @Prefijo = (Select TS.Prefijo FROM FB_TipoServicio TS WHERE TS.Nombre = @TipodeServicio)
SET @Numero = (SELECT COUNT(*) FROM FB_Ficha F INNER JOIN FB_TipoServicio TS ON F.FK_TipoServicio = TS.Id_TipoServicio 
AND TS.Prefijo = @Prefijo
WHERE GETDATE()=F.TiempoSolicitud)
SET @codigo = @Prefijo + @Numero
SET @FKTipoServico = (SELECT TS.Id_TipoServicio FROM FB_TipoServicio TS WHERE TS.Prefijo = @Prefijo)
INSERT INTO FB_Ficha(FK_TipoServicio,Codigo,TiempoSolicitud,TiempoInicioServicio,TiempoFinServicio)
VALUES(@FKTipoServico,@codigo,GETDATE(),DEFAULT,DEFAULT)

Duración 3 horas

No hay comentarios:

Publicar un comentario