BDPresentacion



BDPresentacion

0 0


BDPresentacion


On Github FutureUN / BDPresentacion

Themes

Set your presentation theme: Black (default) - White - League - Sky - Beige - Simple Serif - Night - Moon - Solarized

Entrega final

by Sebastian Chaves - Laura Santos - Jimmy Pulido

Link presentación

http://futureun.github.io/BDPresentacion/

Index

Centro de Estética Usuarios y permisos Vistas, Pa, Triggers transacciones, cursores

Centro de EStética

Base de datos para un centro de estética

Diagrama entidad Relación

Diccionario

Usuarios y permisos

Siguiendo las necesidades del centro de estética, consideramos oportuno dividir a los usuarios en las siguientes clasificaciones:

Empleados:

Los empleados, se dividirán en cuatro rangos de acceso según su cargo dentro del centro de estética:

  • Peluqueros y esteticistas
  • Recepcionistas
  • Gerente
  • Mantenimiento

Peluqueros y esteticistas

Tendrán acceso a:

  • Modificar datos personales
  • Consultas: Agenda de citas y Horario de trabajo.

En el caso de Agendar citas tnedrá que consultar con el cliente y además deberá contar con un permiso dado por el recepcionista.

Recepcionistas

Son los encargados de atender directamente al cliente y manejar la caja, tendrán acceso a:

  • Su información
  • Acceso completo a la agenda de citas
  • Inventarios de los productos (venta y gasto de un producto).

Gerente

Encargado de Administrar la estética en general, el acceso a la base de datos será de tipo administrador.

  • Será quien registre las transacciones con los proveedores y la parte contable.
  • Manejará los horarios de los empleados.

Mantenimiento

Encargados de los servicios de limpieza y mantenimineto, solo tendrán acceso para modificar y consultar sus datos personales.

Clientes

Los clientes tendrán las posibilidad de:

Modificar sus datos personales Cancelar citas programadas. *Sus consultas pueden ser: horario de trabajo de los empleados y su propia agenda de citas.

Vistas, PA, Triggers

Tabla Permisos

Tabla Vistas, Triggers y PA

Triggers

Ejemplo: Trigger que determina el valor acumulado de una compra al proveedor

<!-- 
DELIMITER $$
CREATE TRIGGER trig_adquis before INSERT ON Adquisicion

FOR EACH ROW BEGIN




declare sum_total int default 0;


declare sum_parcial int default 0;


set sum_parcial = (select CPRO_costo from CompraProveedor where 


CompraProveedor.idCompraProveedor = new.CompraProveedor_idCompraProveedor);


set sum_total = sum_parcial + new.adq_preciocompra;


update CompraProveedor set CPRO_costo = sum_total where 


CompraProveedor.idCompraProveedor = new.CompraProveedor_idCompraProveedor;

 END$$
DELIMITER ;
-->

Vistas

Ejemplo: Muestra la lista de ventas detalladas realizadas por los empleados

<!-- 
Create view ventas_realizadas as select ven_id, ven_fecha, Ven_costo,cli_cc, concat(cli_nombre,' ',cli_apellido) 
from Venta join Empleado on Ven_Emp_cc = Emp_cc join Cliente using (Cli_cc) where Emp_cc = (select user from mysql.user where user()=concat(mysql.user.user,"@",mysql.user.host)) ;
-->

Procedimientos almacenados

Ejemplo: Procedimiento que determina, dado un producto, la cantidad total

<!-- 
DELIMITER $$
 CREATE PROCEDURE disponibilidad_produ(produ INT)
   BEGIN
     declare cantidad int default 0;
     set cantidad = (select count(idAdquisicion) from producto join adquisicion on (Producto_Pro_id = Pro_id) 
     join inventario on ( Adquisicion_idAdquisicion = idAdquisicion) where Pro_id = produ and disponible = 1);
     select cantidad;
   END $$
DELIMITER ;
-->

Transacciones

Ejemplo: Verifica la legitimidad de la compra proveedor

<!-- 
DELIMITER $$ 
create procedure proc_transaccion_compraProv(id int, produ_id int , id_compraProv int , adq_precio int , fecha_ven date)
begin
    declare estado_i double;
    start transaction ;

set estado_i = ( select Tran_estado_final from Transaccion order by idTransaccion desc limit 1 );

INSERT INTO `estetica`.`Adquisicion` (`idAdquisicion`, `Producto_Pro_id`, `CompraProveedor_idCompraProveedor`, `adq_preciocompra`, `Fecha_Vencimiento`)

VALUES (id, produ_id, id_compraProv, adq_precio, fecha_ven);

if (adq_precio > estado_i) then
        rollback;

else 
        commit;

end if;



end$$
delimiter ;
-->

Cursores

Ejemplo: Determina los productos vencidos tomando como referencia la fecha actual, me muestra los resultados

<!--
DELIMITER $$
CREATE PROCEDURE det_vencimiento()
    BEGIN
    declare done INT DEFAULT 0;

declare fecha_ven date ;

declare id int default 0;
    DECLARE det_venci cursor
        for select fecha_vencimiento, idAdquisicion from Adquisicion;
    Declare continue handler for sqlstate '02000' set done = 1;

open det_venci;
    REPEAT
    fetch det_venci into fecha_ven, id ;
    if not done then
        if fecha_ven < curdate() then 



update inventario set inventario.disponible = 0, inventario.estado = 'rojo' where



 inventario.Adquisicion_idAdquisicion = id; 



end if;
    end if;
    until done END REPEAT;

select idInventario, Pro_nombre,adq_preciocompra, fecha_vencimiento from inventario join Adquisicion 

on ( Adquisicion_idAdquisicion = idAdquisicion) join Producto on (Producto_Pro_id= Pro_id) where estado like '%rojo%'; 
    close det_venci; END$$ 
DELIMITER ;
-->
Themes Set your presentation theme: Black (default) - White - League - Sky - Beige - Simple Serif - Night - Moon - Solarized