SISTEMA GESTOR DE DATOS 10/12/2018
DOCUMENTACIÓN DE PROYECTO En la presente documentación se detallan las características y requerimientos que ha solicitado la empresa para el control y gestión de sus productos.
ALUMNOS: Gutiérrez Pérez Eloísa Alejandra Martínez Jacobo Emmanuel Emiliano Torrijos Flores Juan Enrique TALLER DE INVESTIGACION ll
SISTEMA GESTOR DE DATOS
Contenido ANTECEDENTES DEL PROBLEMA. ............................................................... 2 PLANTEAMIENTO DEL PROBLEMA. ............................................................. 2 OBJETIVO GENERAL. .................................................................................. 3 HIPOTESIS .................................................................................................... 3 JUSTIFICACION. .......................................................................................... 3 MARCO TEORICO. ...................................................................................... 4 METODOLOGÍA. ......................................................................................... 5 DISEÑO Y ANÁLISIS DE LA BASE DE DATOS .............................................. 6 DIAGRAMA VTOC ...................................................................................... 0 DICCIONARIO DE DATOS .......................................................................... 0 DIAGRAMA ENTIDAD/RELACIÓN .............................................................. 4 INTERFACES NETBEANS............................................................................... 5 SCRIPT BASE DE DATOS: ............................................................................. 9 DESARROLLO DE HARDWARE Y CONEXIÓN CON PROGRAMA GRAFICO
20
Página 1
SISTEMA GESTOR DE DATOS
SISTEMA GESTOR DE DATOS DOCUMENTACIÓN DE PROYECTO
ANTECEDENTES DEL PROBLEMA. “A-tech” es una empresa que se dedica a la compra y venta de productos de línea blanca, donde el funcionamiento de su almacenaje es en bitácoras de papel, resultándoles inaccesibles si se encuentran lejos de esa información, por lo que muchas veces no se requería productos ya existentes en bodega, ocasionando gastos innecesarios, por la causa de que no cuenta con algún tipo de sistema que le facilite el control de sus productos. La visita y encuentro con el encargado del negocio nos permitió ubicar cual era la el problema o necesidad el cual se debía cubrir.
PLANTEAMIENTO DEL PROBLEMA. Debido a lo anteriormente planteado las condiciones en las que se encuentra el negocio A-tech en cuanto a la información de almacén se requiere puede llegar a ser errónea y/o poco fiable, generando gastos innecesarios.
Página 2
SISTEMA GESTOR DE DATOS
OBJETIVO GENERAL. ¿Cómo organizar el almacén de la empresa A-tech? Desarrollar un sistema de gestión de datos para el negocio de línea blanca y electrodomésticos A-tech, para que así puedan tener una mejor administración de los productos en la bodega, así también como las ventas de dichos productos.
HIPOTESIS Con el desarrollo e implementación de dicho sistema se espera poder abarcar un mercado más amplio, si es posible de realizar envíos al extranjero.
JUSTIFICACION. Con el desarrollo del sistema de gestor de datos se pretende que el negocio A-tech mejore sus procesos de búsqueda de información, las ventas y los ingresos económicos para tener un mejor y eficiente manejo de sus productos en la búsqueda de información. Así mismo se le estaría ofreciendo un servicio de ventas eficientes y de calidad a los clientes, que probablemente hagan difusión del negocio a consumistas de productos de la misma índole.
Página 3
SISTEMA GESTOR DE DATOS
MARCO TEORICO. SQL server nos va servir para la elaboración sistemática organizada del almacén en la empresa A-tech ya que de esta manera no se van a poder manipular datos sin previa autorización, la función principal servirá para crear y modificar la información de los productos que hay o son inexistentes en el almacén con un diseño de objetos de base de datos, como tablas. Los elementos de SQL server nos ayudaran a crear y modificar objetos de base de datos se denominados lenguajes de definición de datos (DDL). Los programas de bases de datos relacionales, como Microsoft Office Access, usan SQL server para trabajar con datos. A diferencia de muchos lenguajes de computación, SQL no es difícil de leer y entender, incluso para un usuario inexperto.
“SQL es un lenguaje de computación para trabajar con conjuntos de datos y las relaciones entre ellos. Al igual que muchos lenguajes de computación, SQL es un estándar internacional reconocido por organismos de estándares como ISO y ANSI. SQL se usa para describir conjuntos de datos que pueden ayudarle a responder preguntas. Al usar SQL, debe usar la sintaxis correcta. La sintaxis es el conjunto de reglas mediante las que se combinan correctamente los elementos de un idioma. La sintaxis SQL se basa en la sintaxis del idioma inglés y usa muchos de los mismos elementos que la sintaxis de Visual Basic para Aplicaciones (VBA)” (Microsoft, 2018, pág. 1)
El estado actual de la tecnología en la empresa A-tech en canto a base de datos, se limita a ser una bitácora de hojas de papel donde casi es obsoleta con las nuevas tecnologías, pero cuenta con una computadora que puede ser el resultado de la evolución en la gestión de información la información en el almacén. Esta tecnología se irá desarrollando a lo largo del tiempo desde métodos más primitivos como las bitácoras, hasta los potentes sistemas de hoy en día crearles la base de datos con sql server, empujada por un lado por la demanda y las necesidades de las gestiones de la información y restringida.
Página 4
SISTEMA GESTOR DE DATOS
“Una Base de Datos es un conjunto exhaustivo, no redundante de datos estructurados, organizados independientemente de su utilización y su implementación en máquina, accesibles a tiempo real y compatibles por usuarios concurrentes que tienen necesidad de información diferente y no predecible en el tiempo”. (Mayer, 2017, pág. 1) “Los SGBD nos brindan métodos para mantener la integridad de los datos, realizar una administración del acceso de los usuarios a dichos datos y tener la posibilidad de recuperar la información. Ahora podemos tratar de abordar esta pregunta, ¿cuál de todos los los Sistemas de Gestión de Bases de datos elijo? MySQL. Uno de los factores por los que obtuvo más popularidad es porque es open source, y por lo extendido de su uso en las aplicaciones web. Nos ofrece un alto rendimiento, velocidad y flexibilidad, a la par que herramientas completas de administración tanto de registros, usuarios, como de conexiones.” (Oracle, 2017, pág. 1)
METODOLOGÍA. Nuestra investigación se basó en el método inductivo ya que partimos de lo particular a lo general. Como primer etapa observamos y registramos los hechos de la empresa A-tech para poder comprender el negocio y así encontrar un problema o déficit. Posteriormente en la segunda etapa análisis y clasificamos los problemas que presentaba la empresa, al realizar una entrevista que sirvió para delimitar más los problemas y poder proseguir con la siguiente etapa. La tercera etapa viene la hipótesis ya que de los datos procesados de la entrevista y el planteamiento de la pregunta se genera el objetivo general que da respuesta y de ahí partimos hacia una hipótesis que solucionará el problema de los datos procesados. La cuarta etapa es la implicación de la hipótesis en la cual si fue verdadera y se creó un sistema de orden en el almacén el cual beneficiará la prosperidad de la empresa A-tech.
Página 5
SISTEMA GESTOR DE DATOS
DISEÑO Y ANÁLISIS DE LA BASE DE DATOS
Página 6
DIAGRAMA VTOC
Empleado
Id_Empleado
Productos
Pagos
Cobro
Entradas_Salidas
Usuario
No Serie
Id_Pago
Id_Cobro
Numero
Id_Empleado
Id_Producto
Id_Cobro
Id_Empleado
Id_Empleado
Id_Administrador
Id_Producto
Id_Producto
Hora
DICCIONARIO DE DATOS Nombre: Almacén Descripción: En esta tabla se guardan los datos de los o el almacén existente actualmente Campo
Tamaño
Id_Almacen
Encargado
Tipo de Dato
Descripción
int
Llave primaria de la tabla.
(100)
varchar
Se guarda el nombre del departamento agregado.
(200)
varchar
Se guarda el nombre de la persona encargada del departamento.
Relaciones:
Campos clave: Id_Almacen
Nombre: Empleados Descripción: En esta tabla se guarda la información de los usuarios(empleados) a registrar en el sistema. Campo
Tamaño
Id_Empleado
Tipo de Dato
Descripción
Int
Llave primaria de la tabla.
Nombre
(50)
Varchar
Nombre del usuario
Apellido_Pat
(50)
Varchar
Apellido Paterno del usuario
Apellido_Mat
(50)
Varchar
Apellido Materno del usuario
Edad
Int
Edad del usuario
Direccion
(300)
Varchar
Dirección del usuario
Telefono
(12)
Varchar
Teléfono del usuario
Correo
(100)
Varchar
Correo electrónico del usuario
SISTEMA GESTOR DE DATOS
Id_Almacen
Int
Llave foránea que relaciona con la tabla departamento
Estatus
Int
Estatus del usuario
Relaciones:
Campos clave:
Id_Almacen
Id_Empleado Id_Almacen
Nombre: Productos Descripción: En esta tabla se guarda la información correspondiente del producto Campo
Tamaño
Id_Producto
Tipo de Dato
Descripción
Varchar
Llave primaria de la tabla guarda la matricula del automovil.
Marca
(50)
Varchar
Guarda la marca del vehículo
Modelo
(50)
Varchar
Guarda el modelo del vehículo
Int
Guarda el año del vehículo
Varchar
Guarda el color del vehículo
Lugar Establecido
Int
Guarda el número de cajón correspondiente para cada vehículo
Id_Empleado
Int
Llave foránea Relaciona el automovil con su dueño de la tabla usuario
Relaciones:
Campos clave:
Id_Empleado
No_Serie
Cantidad Precio
(50)
Id_Empleado
Nombre: Entradas_Salidas
Página 1
SISTEMA GESTOR DE DATOS
Descripción: En esta tabla se guarda el registro de las entradas salidas Campo
Tamaño
Tipo de Dato
Descripción
Numero
Int
Llave primaria de la tabla. Clave del registro realizado
Id_Empleado
Int
Llave foránea de la tabla para saber el empleado que registro.
Id_Producto
Int
Llave foránea de la tabla para saber que producto se esta vendiendo
Varchar
Cantidad de productos
Hora_FechaIn
Datetime
Se guarda la fecha y hora de entrada
Hora_FechaOut
Datetime
Se guarda la fecha y hora de salida.
Relaciones:
Campos clave:
Id_Empleado con la tabla Usuario
Numero
Id_Departamento con la tabla
Id_Empleado
Cantidad
(20)
Id_Producto
Nombre: Cobro Descripción: En esta tabla se guarda la información correspondiente a los cobros que se realizan cuando se realiza una salida por parte de algún usuario. Campo Id_Cobro
Página 2
Tamaño
Tipo de Dato int
Descripción Llave primaria de la tabla, guarda el id del cobro
SISTEMA GESTOR DE DATOS
Id_Empleado
int
Llave foránea de la tabla Usuario para saber el Id del empleado al que se le aplicará el cobro.
Varchar
Llave foránea de la tabla
Monto
Money
Guarda el monto que se le cobrará al usuario.
Estatus
int
Estatus del usuario.
Relaciones:
Campos clave:
Id_Empleado con la tabla Usuario
Id_Cobro
Id_Producto
(20)
Id_Empleado
Nombre: Pagos Descripción: En esta tabla se guarda la información correspondiente a los pagos que se realizan cuando se realiza una salida por parte de algún usuario. Campo
Tamaño
Tipo de Dato
Descripción
Id_Pago
int
Llave primaria de la tabla guarda el id del pago.
Id_Cobro
int
Llave foránea de la tabla Cobro para saber el Id correspondiente al pago que se realizará.
FechaPago
Datetime
Guarda fecha en la que se realiza el pago.
Relaciones:
Campos clave:
Id_Cobro con la tabla Cobro
Id_Pago Id_Cobro
Página 3
SISTEMA GESTOR DE DATOS
DIAGRAMA ENTIDAD/RELACIÓN
Página 4
SISTEMA GESTOR DE DATOS
INTERFACES NETBEANS
Página 5
SISTEMA GESTOR DE DATOS
Página 6
SISTEMA GESTOR DE DATOS
Página 7
SISTEMA GESTOR DE DATOS
Página 8
SISTEMA GESTOR DE DATOS
SCRIPT BASE DE DATOS: create database Empresa use Empresa
---------------------------------------TABLAS------------------------------------------------create table Almacen( Id_Departamento int not null identity primary key, Nombre varchar(100) not null, )
)
SELECT *FROM USUARIO
Página 9
SISTEMA GESTOR DE DATOS
update usuario set nombre='NATHALIA',Apellido_Pat='KLOE',Apellido_Mat='HERNANDEZ',Edad= 25,Direccion='Colonia: Miguel Hidalgo',Telefono='5564649043',correo='
[email protected]',id_departa mento=9 where Id_Empleado=201521982
create table Usuario( Id_Empleado int not null primary key, Nombre varchar(50) not null, Apellido_Pat varchar(50) not null, Apellido_Mat varchar(50) not null, Edad int not null, Direccion varchar(300) not null, Telefono varchar (12) not null, Correo varchar(100) not null, Id_Departamento int not null references Departamentos(Id_Departamento), Estatus int not null check (estatus >=0 and estatus <=1) default 0 ) No_Cajon int identity not null check( No_Cajon>=1 and No_Cajon<=100), Id_Empleado int not null references Usuario(Id_Empleado) )
Página 10
SISTEMA GESTOR DE DATOS
create table Entradas_Salidas( Numero int not null primary key identity, Id_Empleado int not null references Usuario(Id_Empleado), Id_Departamento int not null references Departamentos(Id_Departamento), Matricula varchar (20) references Automoviles(Matricula), Hora_FechaIn datetime not null, Hora_FechaOut datetime default null
)
create table cobro( Id_cobro int not null primary key identity, Id_Empleado int not null references Usuario (Id_Empleado), Matricula varchar (20) not null references Automoviles(Matricula), Monto money not null, Estatus int not null check (Estatus>=0 or Estatus <=1) default 0 )
create table Pagos( idpago int primary key identity, id_cobro int references cobro(id_cobro) not null, fechaPago datetime not null )
Página 11
SISTEMA GESTOR DE DATOS
go --------------------------------------------TRIGGER-------------------------------------------------------------
alter trigger genera_pago on Entradas_salidas for update as declare @dif int, @f1 datetime, @f2 @Id_Empleado int, @matricula varchar(20)
datetime,
@monto
select @matricula= matricula from inserted select @Id_empleado= Id_Empleado from inserted select @f1=Hora_fechaIn from inserted select @f2=Hora_fechaOut from inserted if update(Hora_fechaOut) BEGIN set @dif = datediff(second,@f1,@f2) if(@dif>=1) begin set @monto = @dif*10 insert into cobro values(@Id_Empleado,@matricula,@monto,1)
end
END go
Página 12
money,
SISTEMA GESTOR DE DATOS
---------------------------------------PROCEDIMIENTOS AMACENADOS------------------------------------------------
create procedure Alta_Usuario @matricula int, @nombre varchar(200), @apellido_Pat varchar(200), @apellido_Mat varchar(200), @edad int, @direccion varchar(300), @telefono varchar(12), @correo varchar(150), @departamento varchar (100), @res varchar(200) output as declare @Id_departamento int select @Id_Departamento=Id_departamento from Departamentos where nombre=@departamento if exists(select * from usuario where Id_empleado = @matricula) begin print 'Error ya existe el usuario, no se puede agregar' set @res = 'El usuario ya está registrado' end else
Página 13
SISTEMA GESTOR DE DATOS
begin insert into usuario(Id_empleado,Nombre,Apellido_Pat, Apellido_Mat,Edad,Direccion,Telefono,Correo,Id_Departamento) values(@matricula,@nombre,@apellido_Pat,@apellido_Mat,@edad,@direcc ion,@telefono,@correo,@Id_departamento)
end
go
create procedure Alta_Auto @matricula varchar(200), @marca varchar(200), @modelo varchar(200), @año int, @color varchar(300), @id_empleado int, @res varchar(30) output as
if exists(select * from Automoviles where matricula= @matricula) begin print 'Error ya existe el automovil, no se puede agregar' set @res = 'El automóvil ya está registrado'
Página 14
SISTEMA GESTOR DE DATOS
end else begin insert into Automoviles(Matricula,Marca,Modelo, Año,Color,Id_Empleado) values(@matricula,@marca,@modelo,@año,@color,@id_empleado)
end
go
alter procedure registra_Entradas @Id_Empleado int, @res varchar(200) output as
declare @iddepartamento int,@matricula varchar (20),@estatus int select @estatus=estatus from usuario where Id_Empleado=@Id_Empleado select @iddepartamento=Id_departamento Id_Empleado=@Id_Empleado
from
select @matricula=matricula Id_Empleado=@Id_Empleado
automoviles
from
usuario
where where
if (@estatus=1)
Página 15
SISTEMA GESTOR DE DATOS
begin update Entradas_Salidas set hora_fechaout= getdate() Id_Empleado=@Id_Empleado and Hora_FechaOut is null
where
update usuario set estatus=0 where Id_Empleado=@Id_Empleado set @res='Salida registrada' end
else begin insert into Entradas_Salidas (Id_empleado,Id_Departamento,Matricula,Hora_fechaIn)values(@Id_Emple ado,@iddepartamento,@matricula,getdate()) update usuario set estatus=1 set @res='Entrada registrada' end
go
select *from Entradas_salidas exec registra_entradas 55555,mm select *from usuario
Página 16
SISTEMA GESTOR DE DATOS
create procedure existencia @Id int, @res varchar(90) output as
declare @departamento int declare @matricula varchar(20) select @departamento=Id_Departamento Id_Empleado=@Id
from
Usuario
where
select @matricula=matricula from Automovil where Id_Empleado=@Id
if exists(select *from Usuario where Id_Empleado=@Id) begin print 'Id localizado entrada registrada'; set @res='Id localizado entrada registrada'; insert into Entradas_Salidas values(@Id,@departamento,@matricula,GETDATE(),dateadd(HOUR,7,getda te())) end
else begin print 'Id no localizado'; set @res='Id no localizado';
Página 17
SISTEMA GESTOR DE DATOS
end go
-----------------------------------------------------VISTAS-----------------------------------------------------
create view ConsulUsuario as select u.Id_Empleado, u.Nombre, u.Apellido_Pat, u.Apellido_Mat, u.Edad from Usuario u go
create view ConsulAuto as select u.Matricula, u.Marca, u.Modelo, u.Año, u.Color from Automoviles u go
create view ConsulReportxdia as select u.Nombre, u.Apellido_Pat, u.Apellido_Mat,a.Matricula,a.Modelo,e.Hora_fechaIn,e.Hora_fechaOut from Usuario u, Automoviles a,Entradas_salidas e where
Página 18
SISTEMA GESTOR DE DATOS
select *from ConsulUsuario select *from ConsulAuto
select a.Nombre,a.Apellido_Pat,a.Apellido_Mat,c.Matricula,c.Modelo,b.Hora_Fec haIn,b.Hora_FechaOut from Usuario a a.Id_Empleado=b.Id_Empleado c.Id_Empleado=b.Id_Empleado
join join
Entradas_Salidas Automovil
b c
on on
where datepart(dd,b.Hora_FechaIn)=5 and datepart(mm,b.Hora_FechaIn)=1 and datepart(yyyy,b.Hora_FechaIn)=2018 go
select a.Nombre,a.Apellido_Pat,a.Apellido_Mat,c.Id_Departamento,c.nombre,b.H ora_FechaIn,b.Hora_FechaOut from Usuario a join a.Id_Empleado=b.Id_Empleado join c.Id_Departamento=b.Id_Departamento
Entradas_Salidas Departamentos
b c
on on
where c.Nombre='MARKETING' go
Página 19
SISTEMA GESTOR DE DATOS
DESARROLLO DE HARDWARE Y CONEXIÓN CON PROGRAMA GRAFICO Materiales: -Arduino -Lector RFID -Tarjetas RFID -Caja para el montaje -Cable de Impresora
Diagrama De Conexión
Página 20
SISTEMA GESTOR DE DATOS
Costos (Aproximados) Materiales
-Arduino uno ………………………..$250.00 -Lector RFID ………………………….$285.00 -Tarjetas RFID ………………………..$670.00 -Cable de Impresora……………….$120.00 Programación y Desarrollo
Programa completo (Interfaz Gráfica, Base de Datos, Programación de Arduino y Conexión con Hardware) ………………………………………………$4500.00 Página 21
SISTEMA GESTOR DE DATOS
Extras Actualización y Mantenimiento de Computadoras (Para el sistema)………………………...................$2500.00 Capacitación para el manejo del sistema………………………….................$1750.00
Página 22
SISTEMA GESTOR DE DATOS
Página 23
SISTEMA GESTOR DE DATOS
Página 24