Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INTEGRANTES
ANGEL MARTINEZ
HERNANDO QUIJADA
RODYS REYES
ASESOR
BORIS LANDERO
2015
UNIVERSIDAD TECNOLGICA DE PANAM
ASESOR
BORIS LANDERO
INTEGRANTES
ANGEL MARTINEZ
HERNANDO QUIJADA
RODYS REYES
2015
Agradecimiento
ii
Dedicatoria
Este trabajo de graduacin se la dedico a Dios quin supo guiarme por el buen
camino, darme fuerzas para seguir adelante y no desmayar en los problemas
que se presentaban, ensendome a encarar las adversidades sin perder nunca
la dignidad ni desfallecer en el intento.
ngel Martnez
A mi familia quienes por ellos soy lo que soy. A mis padres por su apoyo,
consejos, comprensin, amor, ayuda en los momentos difciles. Me han dado
todo lo que soy como persona, mis valores, mis principios, mi carcter, mi
empeo, mi perseverancia, mi coraje para conseguir mis objetivos. A mis
hermanos por estar siempre presentes.
Hernando Quijada
iii
ndice
Dedicatoria..........................................................................................iii
Resumen..........................................................................................vii
Introduccin....................................................................................viii
Marco Terico....................................................................................1
Componentes del modelo de replicacin.......................................1
Escenarios tpicos de la replicacin................................................3
Tipos de replicacin..........................................................................4
Replicacin de instantneas............................................................4
Replicacin transaccional................................................................5
Replicacin de mezcla......................................................................5
Fases generales para implementar y supervisar la replicacin....5
I. Anlisis del Sistema.......................................................................6
1.1 Descripcin del negocio................................................................................6
1.2 Descripcin de la situacin actual.................................................................7
1.3 Levantamiento de Requerimientos................................................................9
1.4 Descripcin del Problema...........................................................................10
1.5 Objetivos......................................................................................................11
1.5.1 Objetivo General..................................................................................11
1.5.2 Objetivos Especficos...........................................................................11
II. Diseo del Sistema......................................................................12
2.1 Modelo de datos..........................................................................................12
2.2 Cuadro preliminar del Modelo E-R de la solucin......................................14
2.3 Especificacin de requerimientos funcionales...........................................17
2.4 Diseo lgico..............................................................................................18
2.5 Diseo fsico...............................................................................................45
2.6 Configuracin de los servidores, configuracin de los clientes.................46
2.7 Solucin Front End......................................................................................48
2.8 Solucin Back End.....................................................................................50
2.9 Solucin LAN..............................................................................................51
2.10 Solucin WAN............................................................................................56
2.11 Estimacin de costos................................................................................58
2.12 Matriz de Riesgo.......................................................................................58
2.13 Replicacin...............................................................................................59
2.13 Cuadro de diseo de la red......................................................................59
2.14 Cuadro general de actividades del proyecto............................................60
Conclusiones...................................................................................61
Recomendaciones...........................................................................62
iv
Bibliografa.......................................................................................63
ANEXO..............................................................................................64
v
Resumen
vi
Introduccin
vii
Se considera una BDD (base de datos distribuida) a una coleccin lgicamente
interrelacionada de datos compartidos (junto con una descripcin de estos datos)
fsicamente distribuidas por una red informtica.
Se considera un SGBDD (sistema gestor de base de datos distribuido) a un
sistema software que permite gestionar la base de datos distribuida y hace que
dicha distribucin sea transparente para los usuarios.
Un SGBDD se compone de una nica base de datos lgica, que fsicamente est
dividida en fragmentos ubicados en nodos distintos e interconectados mediante
una red de comunicaciones. As, existirn aplicaciones locales, que solo
accedern a los datos almacenados en el mismo nodo, y aplicaciones globales,
que accedern a datos de varios nodos. El SGBDD ejecutar as las funciones
requeridas para dar servicio a este ltimo tipo de aplicaciones.
Adems de la fragmentacin, en el contexto de BDD tambin se habla de
replicacin, que consiste en mantener rplicas de fragmentos en varios nodos,
segn una poltica de replicacin que va desde una replicacin mnima (un
fragmento replicado en otro nodo) a una replicacin total (todos los fragmentos
son replicados). Nuevamente el SGBDD debe garantizar la consistencia de los
fragmentos que estn replicados (una actualizacin en un fragmento debe
provocar la actualizacin en todas sus rplicas).
viii
En la actualidad el Restaurante lleva el control de los insumos, planillas y mens
de forma manual, lo cual conlleva a no tener un control eficiente de todos los
datos o informacin.
ix
Marco Terico
1
El publicador es un servidor que pone los datos a disposicin de otros
servidores para poder replicarlos. El distribuidor es un servidor que aloja la
base de datos de distribucin y almacena los datos histricos, transacciones y
metadatos. Los suscriptores reciben los datos replicados.
2
La funcin del distribuidor vara segn la metodologa de replicacin
implementada. En ocasiones se configura como distribuidor el mismo publicador
y se le denomina distribuidor local. En el resto de los casos el distribuidor ser
remoto, pudiendo coincidir en algn caso con un suscriptor.
3
En la mayora de las configuraciones, el peso fundamental de la replicacin
recae, sobre el servidor de distribucin. Por tanto ste puede ser un criterio para
determinar su ubicacin, teniendo en cuenta las configuraciones (posibilidades
fsicas) de los servidores, as como otras responsabilidades que pueden estar
desempeando (servidor de dominio, servidor de pginas web entre otras).
Tipos de replicacin
replicacin de instantneas
replicacin transaccional
replicacin de mezcla
Replicacin de instantneas
En la replicacin de instantneas los datos se copian tal y como aparecen
exactamente en un momento determinado. Por consiguiente, no requiere un
control continuo de los cambios. Las publicaciones de instantneas se suelen
replicar con menos frecuencia que otros tipos de publicaciones.
4
Replicacin transaccional
En este caso se propaga una instantnea inicial de datos a los suscriptores, y
despus, cuando se efectan las modificaciones en el publicador, las
transacciones individuales se propagan a los suscriptores.
Replicacin de mezcla
Permite que varios sitios funcionen en lnea o desconectados de manera
autnoma, y mezclar ms adelante las modificaciones de datos realizadas en un
resultado nico y uniforme. La instantnea inicial se aplica a los suscriptores; a
continuacin SQL Server hace un seguimiento de los cambios realizados en los
datos publicados en el publicador y en los suscriptores. Los datos se sincronizan
entre los servidores a una hora programada o a peticin.
configuracin de la replicacin
generacin y aplicacin de instantnea
inicial
modificacin de los datos replicados
sincronizacin y propagacin de los
datos.
5
1.1 Descripcin del negocio
6
colaborador entre otros de forma manual, propensos a que se pierda informacin
valiosa que pudieran afectar a la empresa o al colaborador.
7
El problema de Generar informes del estado del inventario.
Afecta a La Gerencia
Colaboradores
Recursos Humanos
Clientes
8
1.3 Levantamiento de Requerimientos
9
1.4 Descripcin del Problema
10
1.5 Objetivos
11
II. Diseo del Sistema
Entidad
Las entidades representan cosas u objetos (ya sean reales o abstractos), que se
diferencian claramente entre s.
Atributos
Los atributos definen o identifican las caractersticas de entidad (es el contenido
de esta entidad). Cada entidad contiene distintos atributos, que dan informacin
sobre esta entidad. Estos atributos pueden ser de distintos tipos (numricos,
texto, fecha).
12
Relacin
Es un vnculo que nos permite definir una dependencia entre varias entidades,
es decir, nos permite exigir que varias entidades compartan ciertos atributos de
forma indispensable.
Relaciones de cardinalidad
Uno a uno: Una entidad se relaciona nicamente con otra y viceversa.
Uno a varios o varios a uno: determina que un registro de una entidad puede
estar relacionado con varios de otra entidad, pero en esta entidad existir solo una
vez.
Varios a varios: determina que una entidad puede relacionarse con otra con
ninguno o varios registros y viceversa.
Claves
Es el atributo de una entidad, al que le aplicamos una restriccin que lo distingue
de los dems registros (no permitiendo que el atributo especfico se repita en la
entidad) o le aplica un vnculo (exactamente como comentbamos en las
relaciones). Estos son los distintos tipos:
Superclave: aplica una clave o restriccin a varios atributos de la entidad, para
as asegurarse que en su conjunto no se repitan varias veces y as no poder
entrar en dudas al querer identificar un registro.
Clave primaria: identifica inequvocamente un solo atributo no permitiendo que
se repita en la misma entidad.
Clave externa o clave fornea: este campo tiene que estar estrictamente
relacionado con la clave primaria de otra entidad, para as exigir que exista
previamente ese clave.
13
Son fciles de generar en el gestor de la base de datos.
14
15
2.3 Especificacin de requerimientos funcionales
16
Consecutivo: se utiliza para generar el nmero de orden, al momento de
realizar una venta:
DetallesVentas: aqu se almacena las rdenes de compra de cada cliente.
Horarios: se utiliza para almacenar los horarios de los empleados
Inventarios: esta tabla almacena los productos existentes en inventario.
ManejoEmpleados:esta tabla se encarga de almacenar informacin
general del empleado.
Marcaciones: se encarga de almacenar los registros de marcaciones de
los empleados, registra su hora de entrada y salida y de su hora de salida
de almuerzo y hora de entrada de almuerzo.
17
2.CatalogoPostres
3.CatalogoRefrescos
18
4.CatalogoTipo
19
5. Consecutivo
6. DetallesVentas
7. Horarios
20
8. Inventario
9. ManejoEmpleado
21
10. Marcaciones
22
-- Author: <Angel Marinez>
-- Create date: <20/5/2015>
-- Description: <sp para actualizar productos>
-- =============================================
CREATE PROCEDURE [dbo].[Actualizar_Productos]
@IdProducto int, @Cantidad int, @precio decimal(10,2)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;
23
@FECHAFINAL NVARCHAR(30),
@SALAINI NVARCHAR(30),
@SALAACT NVARCHAR(30),
@SEXO NVARCHAR(10),
@ESTADOCIVIL NVARCHAR (10),
--@EmpleadoActivo BIT,
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT
)
AS
BEGIN TRY
UPDATE ManejoEmpleados SET
[Nombre]=@NOMBRE,
[Apellido]=@APELLIDO,
[Cedula]=@CEDULA,
[Direccion]=@DIRECCION,
[Telefono]=@TELEFONO,
[Celular]=@CELULAR,
[Email]=@EMAIL,
[FechaNac]=@FECHANAC,
[FechaInicio]=@FECHAINI,
[FechaFin]=@FECHAFINAL,
[SalarioInicial]=@SALAINI,
[SalarioActual]=@SALAACT,
[Sexo]=@SEXO,
[EstadoCivil]=@ESTADOCIVIL
where EmpleadoID=@ID
--[EmpleadoActivo]=@EmpleadoActivo
SET @FilasAfectadas = @@ROWCOUNT
if @FilasAfectadas>0
24
Set @FilasAfectadas=1
END TRY
BEGIN CATCH
SET @FilasAfectadas =0
SET @msg=@@ERROR
END CATCH
END
GO
/****** Object: StoredProcedure [dbo].[Obtener_Cantidad]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[Obtener_Cantidad]
@IdProducto varchar(10)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT CantidadExitente from dbo.Inventario
WHERE IdProducto=@IdProducto
END
GO
/****** Object: StoredProcedure [dbo].[SP_INSERTA_EMPLEADO]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Hernando Quijada>
25
-- Create date: <2015-05-30>
-- Description: <SP que inserta los empleado>
-- =============================================
CREATE PROCEDURE [dbo].[SP_INSERTA_EMPLEADO]
(
@NOMBRE NVARCHAR(50),
@APELLIDO NVARCHAR(50),
@CEDULA NVARCHAR(20),
@DIRECCION NVARCHAR(200),
@TELEFONO NVARCHAR(15),
@CELULAR NVARCHAR(15),
@EMAIL NVARCHAR(30),
@FECHANAC NVARCHAR (30),
@FECHAINI NVARCHAR(30),
@FECHAFINAL NVARCHAR(30),
@SALAINI NVARCHAR(30),
@SALAACT NVARCHAR(30),
@SEXO NVARCHAR(10),
@ESTADOCIVIL NVARCHAR (10),
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT
--@EmpleadoActivo BIT,
)
AS
BEGIN
BEGIN TRY
INSERT INTO ManejoEmpleados
(
[Nombre],
[Apellido],
[Cedula],
[Direccion],
[Telefono],
[Celular],
[Email],
[FechaNac],
[FechaInicio],
[FechaFin],
[SalarioInicial],
26
[SalarioActual],
[Sexo],
[EstadoCivil]
--[EmpleadoActivo]
)
Values
(
@NOMBRE,
@APELLIDO,
@CEDULA,
@DIRECCION,
@TELEFONO,
@CELULAR,
@EMAIL,
@FECHANAC,
@FECHAINI,
@FECHAFINAL,
@SALAINI,
@SALAACT,
@SEXO,
@ESTADOCIVIL)
--@EmpleadoActivo
SET @FilasAfectadas = @@ROWCOUNT
if @FilasAfectadas>0
Set @FilasAfectadas=1
END TRY
BEGIN CATCH
SET @FilasAfectadas =0
SET @msg=@@ERROR
END CATCH
END
GO
/****** Object: StoredProcedure [dbo].[SP_I_InsertarVenta]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
27
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_I_InsertarVenta]
@IdVenta int,@idMenu int, @cantidad int,@precio
varchar(50),@Idcatalogo varchar(50),@nombreMenu varchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;
28
DELETE FROM dbo.DetallesVentas
WHERE IdVenta=@IdVenta
END
GO
/****** Object: StoredProcedure [dbo].
[SP_U_RestarProductos] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_U_RestarProductos]
@cantidadRestante int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;
29
@con int=0
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select @consecutivos = Consecutivo from
dbo.Consecutivo
set @con = @consecutivos +1
update dbo.Consecutivo set Consecutivo=@con
END
GO
/****** Object: StoredProcedure [dbo].
[SP_S_ObtenerRefresco] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_S_ObtenerRefresco]
@idrefresco int
AS
BEGIN
END
GO
/****** Object: StoredProcedure [dbo].[SP_S_ObtenerPostre]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
30
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_S_ObtenerPostre]
@idpostre int
AS
BEGIN
END
GO
/****** Object: StoredProcedure [dbo].[SP_S_ObtenerMenu]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_S_ObtenerMenu]
@idmenu int
AS
BEGIN
31
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_S_ObtenerInventario]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;
32
select NombreMenu,Cantidad,(precio * Cantidad) as precios,
(SELECT cast (SUM(precio * Cantidad) as DECIMAL(10, 2)) FROM
DetallesVentas where IdVenta=@IdVenta ) as Total
from DetallesVentas
where IdVenta=@IdVenta
group by NombreMenu,Cantidad,precio
END
GO
/****** Object: StoredProcedure [dbo].
[SP_S_ObtenerDescripcion] Script Date: 06/28/2015
21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_S_ObtenerDescripcion]
@idmenu int
AS
BEGIN
33
-- =============================================
CREATE PROCEDURE [dbo].[SP_O_Consecutivo]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
END
GO
/****** Object: StoredProcedure [dbo].[SP_OBTIENE_EMPLEADO]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Hernando Quijada>
-- Create date: <2015-05-31>
-- Description: <Description,,>
-- =============================================
create PROCEDURE [dbo].[SP_OBTIENE_EMPLEADO]
@IdEmpleado int
AS
BEGIN
SELECT*FROM dbo.ManejoEmpleados
WHERE EmpleadoID=@IdEmpleado
END
GO
/****** Object: StoredProcedure [dbo].
[SP_ObtenerNombreEmpleados] Script Date: 06/28/2015
21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
34
-- =============================================
-- Author: <Hernando Quijada>
-- Create date: <2015-06-02>
-- Description: <obtiene los empleados de la empresa>
-- =============================================
CREATE PROCEDURE [dbo].[SP_ObtenerNombreEmpleados]
AS
BEGIN
select EmpleadoID,Nombre
from dbo.ManejoEmpleados
END
GO
/****** Object: StoredProcedure [dbo].[SP_ObtenerHorarios]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[SP_ObtenerHorarios]
@ID int
AS
BEGIN
SELECT*FROM Horarios
WHERE EmpleadoID=@ID
END
GO
/****** Object: StoredProcedure [dbo].
[SP_InsertarMarcacion] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Hernando Quijada>
35
-- Create date: <2015-06-11>
-- Description: <Inserta las marcaciones de los empleados>
-- =============================================
CREATE PROCEDURE [dbo].[SP_InsertarMarcacion]
@IdEmpleado int ,
@Explicacion varchar(max),
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT
AS
BEGIN
BEGIN TRY
declare @Fecha varchar(50)
declare @Hora1 varchar(50)
end
else
begin
INSERT INTO Marcaciones
(
EmpleadoID,
Fecha,
Hora1,
Explicacion
)
Values
(
@IdEmpleado,
@Fecha,
@Hora1,
@Explicacion
36
)
--@EmpleadoActivo
SET @FilasAfectadas = @@ROWCOUNT
if @FilasAfectadas>0
Set @FilasAfectadas=1
end
END TRY
BEGIN CATCH
SET @msg=@@ERROR
SET @FilasAfectadas =0
END CATCH
END
GO
/****** Object: StoredProcedure [dbo].[SP_InsertaHorario]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Hernando Quijada C>
-- Create date: <2015-06-06>
-- Description: <Inserta los horarios de los empleados>
-- =============================================
CREATE PROCEDURE [dbo].[SP_InsertaHorario]
@IdEmpleado int,
@HoraEntrada varchar(20),
@HoraAlmuerzo1 varchar(20),
@HoraAlmuerzo2 varchar(20),
@HoraSalidas varchar(20),
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT
AS
BEGIN
37
SET NOCOUNT ON;
BEGIN TRY
INSERT INTO
dbo.Horarios(EmpleadoID,Entrada,AlmIN,AlmOUT,Salida)
VALUES
(@IdEmpleado,@HoraEntrada,@HoraAlmuerzo1,@HoraAlmuerzo2,@Hor
aSalidas)
if @FilasAfectadas>0
Set @FilasAfectadas=1
END TRY
BEGIN CATCH
SET @FilasAfectadas =0
SET @msg=@@ERROR
END CATCH
END
GO
/****** Object: StoredProcedure [dbo].
[SP_ObtienerTardanzas] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_ObtienerTardanzas]
@IdEmpleado varchar(max),
@FechaInio varchar(max),
@FechaFIn varchar(max)
38
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT ME.EmpleadoID
,(ME.Nombre+' '+ME.Apellido)AS'Nombre'
,MA.Fecha
,HO.Entrada+' - '+MA.Hora1 AS 'Entrada'
,DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)MIN1
,HO.AlmIN+' - '+MA.Hora2 AS 'Almuerzo'
,DATEDIFF(MINUTE,HO.AlmIN,MA.Hora2) MIN2
,HO.AlmOUT+' - '+MA.Hora3 AS 'ENTRADA_ALMUERZO'
,DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3) MIN3
,HO.Salida+' - '+MA.Hora4 AS 'SALIDA'
,DATEDIFF(MINUTE,HO.Salida,MA.Hora4) MIN4
,
(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATEDIFF(MINUTE,HO.Alm
IN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3)+DATEDIFF(MI
NUTE,HO.Salida,MA.Hora4)) TOTAL
,
dbo.f_FechaMinuto(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATED
IFF(MINUTE,HO.AlmIN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.H
ora3)+DATEDIFF(MINUTE,HO.Salida,MA.Hora4))as
'Total_En_Horas'
FROM
ManejoEmpleados ME
INNER JOIN Horarios HO ON ME.EmpleadoID=HO.EmpleadoID
INNER JOIN Marcaciones MA ON MA.EmpleadoID=ME.EmpleadoID
WHERE ME.EmpleadoID=@IdEmpleado
AND MA.Fecha >= @FechaInio
AND MA.Fecha <= @FechaFIn
END
39
--SELECT ME.EmpleadoID
--,SUM(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATEDIFF(MINUTE,
HO.AlmIN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3)+DATED
IFF(MINUTE,HO.Salida,MA.Hora4))/60 AS' TOTAL'
--FROM
--ManejoEmpleados ME
--INNER JOIN Horarios HO ON ME.EmpleadoID=HO.EmpleadoID
--INNER JOIN Marcaciones MA ON MA.EmpleadoID=ME.EmpleadoID
--WHERE ME.EmpleadoID=1
--GROUP BY ME.EmpleadoID
GO
/****** Object: StoredProcedure [dbo].
[SP_ObtienerTaranzasPorFecha] Script Date: 06/28/2015
21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_ObtienerTaranzasPorFecha]
@FechaInio varchar(max),
@FechaFIn varchar(max)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT ME.EmpleadoID
40
,(ME.Nombre+' '+ME.Apellido)AS'Nombre'
,MA.Fecha
,HO.Entrada+' - '+MA.Hora1 AS 'Entrada'
,DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)MIN1
,HO.AlmIN+' - '+MA.Hora2 AS 'Almuerzo'
,DATEDIFF(MINUTE,HO.AlmIN,MA.Hora2) MIN2
,HO.AlmOUT+' - '+MA.Hora3 AS 'ENTRADA_ALMUERZO'
,DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3) MIN3
,HO.Salida+' - '+MA.Hora4 AS 'SALIDA'
,DATEDIFF(MINUTE,HO.Salida,MA.Hora4) MIN4
,
(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATEDIFF(MINUTE,HO.Alm
IN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3)+DATEDIFF(MI
NUTE,HO.Salida,MA.Hora4)) TOTAL
,
dbo.f_FechaMinuto(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATED
IFF(MINUTE,HO.AlmIN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.H
ora3)+DATEDIFF(MINUTE,HO.Salida,MA.Hora4))as 'Total en
horas'
into #TblTardanzas
FROM
ManejoEmpleados ME
INNER JOIN Horarios HO ON ME.EmpleadoID=HO.EmpleadoID
INNER JOIN Marcaciones MA ON MA.EmpleadoID=ME.EmpleadoID
WHERE
convert(date,MA.Fecha) >= @FechaInio
AND convert(date,MA.Fecha) <= @FechaFIn
END
--SELECT ME.EmpleadoID
--,SUM(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATEDIFF(MINUTE,
HO.AlmIN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3)+DATED
IFF(MINUTE,HO.Salida,MA.Hora4))/60 AS' TOTAL'
--FROM
41
--ManejoEmpleados ME
--INNER JOIN Horarios HO ON ME.EmpleadoID=HO.EmpleadoID
--INNER JOIN Marcaciones MA ON MA.EmpleadoID=ME.EmpleadoID
--WHERE ME.EmpleadoID=1
--GROUP BY ME.EmpleadoID
GO
/****** Object: StoredProcedure [dbo].
[SP_ActualizaMarcacion] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[SP_ActualizaMarcacion]
@IdEmpleado int ,
@Explicacion varchar(max),
@Indicador varchar(2),
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT
AS
BEGIN
BEGIN TRY
if @Indicador=2
BEGIN
update Marcaciones set Hora2=@Hora , Explicacion=
@Explicacion
where EmpleadoID=@IdEmpleado and Fecha=@Fecha
and Hora2 IS NULL
42
SET @FilasAfectadas = @@ROWCOUNT
if @FilasAfectadas>0
Set @FilasAfectadas=1
END
ELSE
BEGIN
if @Indicador=3
BEGIN
update Marcaciones set Hora3=@Hora, Explicacion=
@Explicacion
where EmpleadoID=@IdEmpleado and Fecha=@Fecha
and Hora3 IS NULL
if @Indicador=4
BEGIN
update Marcaciones set Hora4=@Hora , Explicacion=
@Explicacion
where EmpleadoID=@IdEmpleado and Fecha=@Fecha
and Hora4 IS NULL
ELSE
BEGIN
43
set @msg='Cada Marcacion se Realiza Solo una Vez'
END
--select*from Marcaciones
END TRY
BEGIN CATCH
SET @FilasAfectadas =0
SET @msg=@@ERROR
END CATCH
end
GO
/****** Object: StoredProcedure [dbo].[Sp_ActualizaHorario]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[Sp_ActualizaHorario]
@IdEmpleado int,
@HoraEntrada varchar(20),
@HoraAlmuerzo1 varchar(20),
@HoraAlmuerzo2 varchar(20),
@HoraSalidas varchar(20),
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT
AS
BEGIN
BEGIN TRY
44
EmpleadoID=@IdEmpleado
,Entrada=@HoraEntrada
,AlmIN=@HoraAlmuerzo1
,AlmOUT=@HoraAlmuerzo2
,Salida=@HoraSalidas
WHERE EmpleadoID=@IdEmpleado
SET @FilasAfectadas = @@ROWCOUNT
if @FilasAfectadas>0
Set @FilasAfectadas=1
END TRY
BEGIN CATCH
SET @FilasAfectadas =0
SET @msg=@@ERROR
END CATCH
END
GO
45
2.6 Configuracin de los servidores, configuracin de los
clientes
Especificacin de Servidores
Especificaciones Servidor de Replicacin (Publicador).
46
Disco duro
2 x 1 TB, 7,2 K RPM SATA 3
Capacidad de 2 TB
HDD Interface: SATA / SAS
Unidades de medios: DVD ROM, 16x, Serial ATA
Caractersticas potencia: 550W fuente de alimentacin no
redundante
47
Caractersticas potencia: 550W fuente de alimentacin no
redundante
La solucin para Front End elegida es la IDE Visual Studio 2010 Ultimate en el
lenguaje de Programacin C# (Sharp). Elegido por su amplio uso en el mercado
actual; Adems de ser el lenguaje de mayor conocimiento para el grupo de
desarrolladores. [2]
El Visual Studio (VS) es un entorno de desarrollo de software integrado, que
permite programar en los lenguajes C++, C#, J#, y VB.NET. Entre las
funcionalidades que se incluyen en la versin 2010 de Visual Studio y que estn
relacionadas con la gestin de las pruebas dentro del ciclo de vida de la
aplicacin, estn:
Mejoramiento de los esfuerzos de pruebas con herramientas para una mejor
documentacin de los escenarios de prueba y de las colecciones de datos de
prueba.
Identificacin y ejecucin de slo aquellos casos de prueba que fueron
impactados por un cambio en el cdigo.
Capacidades aumentadas de control de versiones, incluyendo check-in
cerrado, visualizacin de los branchs, y flujo de compilacin.
Visual Studio 2010 evoluciona la gestin del ciclo de vida de una aplicacin
mediante:
La construccin de calidad en el ciclo de vida.
a. Eliminando los defectos no-reproducibles.
b. Asegurando compilaciones (builds) de alta calidad.
c. Incorporando rendimiento en el ciclo de vida.
El impulso a la eficiencia en el esfuerzo de pruebas.
a. Eliminando tareas tediosas.
48
b. Mejorando la instalacin, configuracin y despliegue de las pruebas.
c. Escogiendo las pruebas adecuadas.
La garanta de mayor completitud de las pruebas.
a. Planeando las pruebas y monitoreando su progreso.
b. Encontrando brechas en las pruebas y solucionndolas.
c. Asegurando que los cambios son probados apropiadamente.
49
2.8 Solucin Back End
Soporte de transacciones.
Escalabilidad, estabilidad y seguridad.
Soporta procedimientos almacenados.
Incluye tambin un potente entorno grfico de administracin, que
permite el uso de comandos DDL y DML grficamente.
Permite trabajar en modo cliente-servidor, donde la informacin y
datos se alojan en el servidor y los terminales o clientes de la red slo
acceden a la informacin.
Adems permite administrar informacin de otros servidores de datos.
50
Fig. API SQL Server 2008
51
archivos y directorios. Las redes basadas en servidor se han convertido en el
modelo estndar para la definicin de redes.
A medida que la red incremente su tamao y el nmero de equipos conectados y
la distancia fsica y el trfico entre ellas crece, se necesitara ms de un servidor.
La divisin de las tareas de la red entre varios servidores asegura que cada
tarea ser realizada de la forma ms eficiente posible.
52
La red ser 200.20.20.0/28 con 5 host disponibles, Gateway ser 200.20.20.1, el
servidor estar en la Vlan 2, y las terminales Wyse de los mostradores en la
Vlan 3.
Dispositivo Configuracin
Servidor Gateway: 200.20.20.1
IP: 200.20.20.2
Vlan 2
Wyse1 Gateway: 200.10.10.1
Caja 1 IP: 200.20.20.3
Vlan 3
Wyse 2 Gateway: 200.10.10.1
Caja 2 IP: 200.20.20.4
Vlan 3
Wyse 3 Gateway: 200.20.20.1
Gerencia IP: 200.20.20.5
Vlan 3
53
La red ser 200.30.30.0/28 con 5 host disponibles, Gateway ser 200.30.30.1, el
servidor estar en la Vlan 2 y las terminales Wyse de los mostradores en la Vlan
3.
Dispositivo Configuracin
Servidor Gateway: 200.30.30.1
IP: 200.30.30.2
Vlan 2
Wyse1 Gateway: 200.30.30.1
Caja 1 IP: 200.30.30.3
Vlan 3
Wyse 2 Gateway: 200.30.30.1
Caja 2 IP: 200.30.30.4
Vlan 3
Wyse 3 Gateway: 200.30.30.1
Gerencia IP: 200.30.30.5
Vlan 3
54
Dispositivo Configuracin
Servidor Gateway: 200.30.30.1
IP: 200.30.30.2
Vlan 2
Wyse1 Gateway: 200.30.30.1
Caja 1 IP: 200.30.30.3
Vlan 3
Wyse 2 Gateway: 200.30.30.1
Caja 2 IP: 200.30.30.4
Vlan 3
Wyse 3 Gateway: 200.30.30.1
Gerencia IP: 200.30.30.5
Vlan 3
55
Incluye el suministro de la Unidad de Terminacin de Datos en el domicilio del
cliente.
El Servicio dispone de supervisin centralizada de todos sus enlaces alcanzando
la misma hasta el propio terminal del cliente.
La operacin y mantenimiento que se realiza las 24 horas del da los 365 das
del ao permite ofrecer una asistencia permanente al cliente y una excelente
calidad de servicio.
Ventajas
Frame Relay ofrece la opcin de configurar "redes a medida". Cuando se debe
implementar una Red para interconectar varios puntos de caractersticas
diferentes, la facilidad de habilitar circuitos virtuales permanentes (PVC's) entre
estos puntos y la disponibilidad de una amplia gama de velocidades (desde 16
Kbps en adelante) permiten optimizar sensiblemente el diseo.
Debido a que el protocolo Frame Relay fue especialmente diseado para prestar
servicio a los sistemas que transmiten datos en forma de rfagas, permite
optimizar el ancho de banda contratado traducindose esto en menores costos.
Capacidad de reconfiguracin de los enlaces en forma rpida y flexible.
56
Servicio de mantenimiento las 24 horas, los 365 das del ao.
Aplicaciones
Interconexin de redes de rea local (LAN)
Comunicacin "en lnea" (tiempo real) de todos los locales del cliente
dentro del territorio nacional.
Concentracin de varios puntos remotos en un punto principal a travs de
un nico enlace, lo que se refleja en la disminucin de inversiones en
equipos de comunicaciones
Compartir archivos, grficas y documentos.
Transferir archivos con informaciones varias tales como: pago de salarios,
ingreso de rdenes de trabajo, trabajo en grupo.
Acceder en forma remota a bases de datos.
Correo electrnico, transmisin de voz y datos en la red privada del
cliente.
Los sitios que enlazaremos sern los tres restaurantes, uno ubicado Penonom,
el otro en aguadulce y el otro en Nat
57
Total 15,250.00
2.13 Replicacin
Para replicar nuestros datos utilizaremos la replicacin Mezcla por SQL server
porque permite que varios sitios funcionen en lnea o desconectados de manera
autnoma, y mezclar ms adelante las modificaciones de datos realizadas en un
resultado nico y uniforme. La instantnea inicial se aplica a los suscriptores; a
continuacin SQL Server hace un seguimiento de los cambios realizados en los
datos publicados en el publicador y en los suscriptores. Los datos se sincronizan
entre los servidores a una hora programada o a peticin.
58
2.13 Cuadro de diseo de la red
59
Conclusiones
60
Para realizar un software que cumpla con todos los requisitos
del cliente se debe conocer los procesos del negocio, para que
cuando se realice la implementacin no se encuentren con
deficiencias del software.
Utilizar la replicacin de datos ayuda a tener un sistema
actualizado aunque uno de los servidores quede fuera de
servicio, gracias a que existen dems servidores de respaldo.
Crear sistemas de base de datos distribuidos con lleva a invertir
una buen capital; y esto es un inconveniente muy serio para las
empresas PYMES que no cuentan con este. Por eso
actualmente las empresas con un tiempo de servicio amplio o
un capital amplio son las que pueden beneficiarse de este tipo
de base de datos distribuidas.
Recomendaciones
61
Realizar mantenimiento a los servidores y equipos que utilizan
la aplicacin.
Adquirir cortafuegos; Adems encriptacin de los datos para
una mayor seguridad a los ataques de usuarios no registrado.
Capacitar a los nuevos colaboradores con manuales de uso
para familiarizarlo con la aplicacin.
Bibliografa
62
http://leonelmartinez.udem.edu.ni/wp-
content/uploads/2015/01/REPLICAS-Y-TRANSACCIONES.pdf.[1]
http://www.kerwa.ucr.ac.cr/bitstream/handle/10669/740/Reporte
%20Tecnico%20sobre%20VS2010.FINAL.pdf?sequence=1 [2]
http://www.ecured.cu/index.php/Microsoft_SQL_Server[3]
http://www.genbetadev.com/bases-de-datos/fundamento-de-las-bases-de-
datos-modelo-entidad-relacion[4]
http://www.desarrolloweb.com/articulos/modelo-entidad-relacion.html[5]
https://www.antel.com.uy/antel/empresas/datos-e-internet/servicios/redes-
privadas-atm/Frame-Relay/[6]
ANEXO
1- Pantalla de inicio
63
Mdulo de Recursos humanos
2- Pantalla que inserta empleados nuevos.
64
4- Pantalla que ingresa los horarios por empleados
65
- Mdulo de Inventario y Caja
6- Caja
66
8- Pantalla para agregar Productos al inventario
67
9- Pantalla que resta productos de inventario
68