Documente Academic
Documente Profesional
Documente Cultură
Laredo
“Con La Ciencia Por La
Humanidad”
Ingeniería En Sistemas Computacionales
Arquitectura de computadoras
Proyecto Final
Docente: Ing. Humberto Peña Valle
Alumnos:
Manuel Infiesta de León #Ctrl: 07100278
Jesús Valadez Moreno #Ctrl: 07100378
Juan Uriel Vera Ortega #Ctrl: 07100384
2
Indice
Tema Pág.
Introducción 3
Requisitos de Instalación 4
Manual Técnico 6
Diagrama de relaciones 7
Listado y explicación 9
Conclusiones 18
3
Introducción
El proyecto de Rabbit Sport (la esencia de la excelencia), está orientado a
una base de datos, que lleva el control, tanto de ventas como, el control interno
de trabajadores, proveedores, clientes de una tienda deportiva general, ya que
se venden artículos para futbol soccer, mixed martial arts,
Requisitos de instalación.
Para ejecutar la aplicación, es necesario contar con el hardware de
teclado y mouse. Monitor con mínima resolución de 640 * 480. Si es necesario,
contar con tarjeta de red, en caso de que la base de datos se encuentre en red,
con procesador Intel o AMD de 1 ghz y memoria RAM de 512mb.
Diccionario de datos
Tabla Categoría
Tabla de Empleados
clave_empleado Clave única de empleado Char (8 caracteres)
nombre_empleado Nombre del empleado Char (30 caracteres)
dirección_empleado Dirección donde reside Char (30 caracteres)
telefono_empleado Teléfono donde se pueda Char (15 caracteres)
contactar
edad_empleado Edad de el empleado Smallint(precisión 2
dígitos)
Tabla de clientes
clave_cliente Clave única del cliente Char (8 caracteres)
nombre_cliente Nombre del cliente Char (25 caracteres)
dirección_cliente Dirección donde reside Char (25 caracteres)
telefono_cliente Teléfono de contacto Char (10 caracteres)
edad_cliente Edad de el cliente Smallint(precisión 2
dígitos)
7
Diagrama de relaciones
8
Reglas de negocio
Reglas
- La base de datos no debe contener valores nulos respecto a los
artículos en existencia.(y serán enteros)
- La base de datos dará un aviso en caso de que los artículos se
encuentren en poca existencia en el almacén.
- Llevaremos un registro de compras, y el corte se hará a medio día
(teniendo en cuenta de que la tienda abre de 9a.m. a 9p.m.
- Solo se venderá por mayoreo a personas mayores de edad (solo aplica
artículos orientados a equipos de futbol)
- Mayoreo se considera 5 artículos o más.
- Los empleados deberán ser mayores de edad. (18+)
- Cada empleado tendrá clave única.
- No se facturara al cliente. (Esta aplicación tiene como fin solo llevar un
control de aquellas ventas dentro de la tienda.)
- Dependiendo la compra de productos, en mayoreo, se aplica cierto
descuento, variara según el artículo.
9
Listado y explicaciones
USUARIOS Y PERMISOS:
Asignamos varios usuarios con el fin de poder acceder primero a Microsoft sql
server Enterprise manager, y luego a la base de datos “La esencia de la
Excelencia”.
PROCEDIMIENTOS ALMACENADOS:
Actualizar_Clientes:
CREATE Procedure Actualizar_Clientes
(
-- Recibe Como Parametro 5 Parametros
@Clave char(8),
@Nombre char(25),
@Direccion char(25),
@Telefono char(10),
@Edad int
)
As
-- Los Inserta En La Tabla
Update Clientes
Set Nombre_Cliente=@Nombre,
Direccion_Cliente=@Direccion,
Telefono_Cliente=@Telefono,
Edad_Cliente=@Edad
Where Clave_Cliente = @Clave
GO
Actualizar_Empleados:
CREATE Procedure actualizar_empleados
(
-- Recibe Como Parametro 5 Parametros
@Clave char(8),
@Nombre char(30),
@Direccion char(30),
@Telefono char(15),
@Edad int
)
As
-- Los Inserta En La Tabla
Update Empleados
Set Nombre_Empleado=@Nombre,
Direccion_Empleado=@Direccion,
Telefono_Empleado=@Telefono,
Edad_Empleado=@Edad
Where Clave_Empleado = @Clave
GO
11
Actualizar Productos:
CREATE Procedure actualizar_productos
(
-- Recibe Como Parametro 5 Parametros
@clave_producto char(8),
@nombre_producto char(30),
@proveedor char(8),
@precio_producto int,
@categoria char(8),
@cantidad int
)
As
-- Los Inserta En La Tabla
Update Productos
Set
nombre_producto=@nombre_producto,
clave_proveedor=@proveedor,
precio_producto=@precio_producto,
clave_categoria=@categoria,
bodega_producto= @cantidad
Insertar Empleado:
Create Procedure insertar_empleado
(
-- Recibe Como Parametro 5 Cosas
@Clave char(8),
@Nombre char(30),
@Direccion char(30),
@Telefono char(15),
@Edad smallint
)
As
12
Insert Into
Empleados(Clave_empleado,Nombre_empleado,Direccion_empleado,Telef
ono_empleado,Edad_empleado)
Values(@Clave,@Nombre,@Direccion,@Telefono,@Edad)
GO
Insertar Cliente:
Create Procedure insertar_cliente
(
-- Recibe Como Parametro 5 Cosas
@Clave char(8),
@Nombre char(30),
@Direccion char(30),
@Telefono char(15),
@Edad smallint
)
As
Insert Into
Clientes(clave_cliente,Nombre_cliente,Direccion_cliente,Telefono_cliente
,Edad_cliente) Values(@Clave,@Nombre,@Direccion,@Telefono,@Edad)
GO
Insertar Producto:
GO
13
Eliminar cliente:
Create Procedure eliminar_cliente
(
@Clave char(8)
)
As
GO
Eliminar Empleado:
Create Procedure eliminar_empleado
(
@Clave char(8)
)
As
GO
Eliminar Producto:
GO
14
)
As
DESENCADENADORES DE EVENTOS:
TR_CATEGORIAS1:
CREATE TRIGGER TR_CATEGORIAS1 ON Categorias
FOR UPDATE
AS
IF UPDATE(Clave_Categoria)
BEGIN
ROLLBACK TRAN
RAISERROR('NO SE PUEDE MODIFICAR EL NUMERO DE CATEGORIA', 16, 1)
END
15
Este trigger lo creamos con el fin de evitar la modificación de las claves de las
categorías de la tabla categorías.
TR_CLIENTES1:
CREATE TRIGGER TR_CLIENTES1 ON Clientes
FOR INSERT, UPDATE
AS
IF UPDATE(Clave_Cliente)
BEGIN
ROLLBACK TRAN
RAISERROR('NO SE PUEDE MODIFICAR LA CLAVE DEL CLIENTE', 16, 1)
END
BEGIN
ROLLBACK TRAN
RAISERROR('LA DIRECCION NO ES CORRECTA (%%% #%%%%)', 16, 1)
END
TR_CLAVE_EDAD
CREATE TRIGGER TR_CLAVE_EDAD ON dbo.Empleados
FOR INSERT, UPDATE
AS
IF(EXISTS(SELECT * FROM INSERTED
WHERE Edad_Empleado<18))
BEGIN
ROLLBACK TRAN
RAISERROR('LA EDAD NO ES VALIDA', 16, 1)
END
IF UPDATE(Clave_empleado)
BEGIN
ROLLBACK TRAN
RAISERROR('NO SE PUEDE MODIFICAR LA CLAVE DEL CLIENTE', 16, 1)
END
TR_VALIDAR_FOLIO:
CREATE TRIGGER TR_VALIDAR_FOLIO ON [dbo].[Ventas]
FOR INSERT, UPDATE
AS
Conclusiones
Bueno durante este curso me percate de que mis ideas sobre el manejo de
SQL eran falsas, yo solo pensaba que solo se podían hacer consultas y cosas por
el estilo y como fuimos viendo temas, note que también podemos programar, no
como otros lenguajes, solo lo básico y resulto ser una herramienta muy poderosa,
también con la inserción de procedimientos y desencadenadores (triggers) que
son herramientas para estructuración de una buena base de datos.