Práctica: Sistema de control de ventas y almacenaje para grandes almacenes 03/12/11.

Slides:



Advertisements
Presentaciones similares
SQL Sigla del nombre “Structured Query Language”.
Advertisements

integridad referencial
Se necesita un PA que muestre la información de todos los clientes registrados de la siguiente forma: Nombre1 Nombre2, Apellido1 Apellido2 bajo el título.
BASE DE DATOS OBJETO RELACIONAL
Introducción a LAS Bases de Datos
Presentación Asignatura POF030 Semana 1. Contenido En forma general, los conceptos que se estudiarán en la asignatura son: – Procedures – Functions –
Características Objeto Relacionales en Oracle
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
UNITA - IBARRA BLOQUES PL-SQL SUBPROGRAMAS Paulina Guevara.
Características Objeto Relacionales en Oracle
PL/SQL Francisco Moreno Universidad Nacional.
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
UNIDAD I Conceptos Básicos.
1 BD Activas: Motivación zLos SGBD convencionales son “pasivos”. Sólo ejecutan preguntas o transacciones realizadas por los usuarios o por los programas.
PL/SQL Francisco Moreno Universidad Nacional. Introducción al PL/SQL ¿Por qué PL/SQL? A pesar de que SQL tiene mecanismos de control condicional (cláusula.
Bases de Datos Relacionales
16/04/ Sesión 11 Funciones y procedimientos Ing. Ricardo Inquilla.
PL/SQL Francisco Moreno Universidad Nacional.
GESTIÓN BÁSICA DE ALMACENAMIENTO III
Ing. Ricardo Carlos Inquilla Quispe
Viviana Poblete López Módulo: Modelo de Datos
Procedimientos Almacenados Funciones Agregadas
UNITA - IBARRA TRIGGERS
Lenguaje Estructurado de Consultas
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
PL/SQL Francisco Moreno Universidad Nacional.
TRIGGERS EN ORACLE 8 J. Iriarte S. España
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
Triggers(Disparadores)
Autora: Francisca Montañez Muñoz
INSTRUCCIONES Elaboración de la Presentación:
Bases de Datos Sql.
TFC Base de Datos Relacionales Isabel Moreno Pozuelo.
Métrica v2.1 Técnicas: Modelado de datos (Parte 1)
Lenguaje Estructurado de Consulta
SQL Sigla del nombre “Structured Query Language”.
INSTRUCCIONES Elaboración de la Presentación:
ORACLE OLAP CAECE Integrantes: *Aizaga, Martiniano *Gallegos, Marina *Kleinlein, Guillermo *Schiano di Cola, Emiliano.
SQL Lenguaje Estructurado de Consulta MATERIA: diseñar sistemas de información ALUMNO: sarmiento flores Liliana Guadalupe GRUPO: 4° “A” TURNO: matutino.
E.U. Informática U.L.P.G.C. E.U. Informática U.L.P.G.C. Introducción a - 1 Introducción a Oracle.
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
PUESTO-TRABAJO (Código-Puesto, Empresa, Sueldo, DNI- Contratado) TITULADO (DNI-Titulado, Nombre, Apellidos, Dirección) TITULACION (Iden-Titulación, Nombre,
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
Estructuras de Control
Excepciones predefinidas en PL/SQL Semana 6. Aprendizajes esperados Construye procedimientos almacenados, triggers de base de datos, cursores y funciones.
DISPARADORES Y SISTEMAS DE GESTION DE BASE DE DATOS DE SQL
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo SQL en PL/SQL Conceptos básicos.
MULTIPLAN Multiplan es la práctica en grupo que hemos tenido que realizar durante el curso según las especificaciones dadas en la asignatura.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
Bases de Datos SQL.
UNIVERSIDAD LATINA II.- CONSTRUCCIÓN DE LA BASE DE DATOS. E.I. L.E. Prof. Ramón Castro Liceaga.
DISEÑO DE BASES DE DATOS (modelos para el diseño)
Unidad 6. Tema 4. Lenguaje de consultas SQL
Después de completar esta lección, debe ser capaz de:  Crear registro definidos por el usuario.  Crear un registro con el atributo %ROWTYPE.  Crear.
5 Paquetes ORACLE Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Introducción Base de datos Ing. Linda K. Masias M. Base de datos (MySQL)
BASES DE DATOS CONCEPTOS BASICOS Elizabeth Maite Zarate Machaca “El tratamiento eficiente de la información al servicio del usuario”
Apuntes PL-SQL Triggers II. Tipos de datos compuestos Registros PL/SQL: Son similares a un tipo struct en C o a un tipo Registro en otros 3GL. Se componen.
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
3 Cursores ORACLE Bases de datos II I-2014 Universidad del Cauca In. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca In. Wilson Ortega.
Mtr. Adrián Monge Monge Educación 2015 Maestría, Mención en Administración de Proyectos ULACITMaestría, Mención en Administración de Proyectos 2012 Licenciatura,
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
Base de Datos I – Ing. Mary Carlota Bernal J.  Cada instrucción PL/SQL tiene asociado internamente un cursor  Los cursores en PL/SQL pueden ser de dos.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
6 Triggers ORACLE Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
6 Copyright © 2004, Oracle. Todos los derechos reservados. Trabajar con Tipos de Dato Compuestos.
6 Triggers ORACLE - III Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Lenguaje de manipulación de datos
Transcripción de la presentación:

Práctica: Sistema de control de ventas y almacenaje para grandes almacenes 03/12/11

Índice Objetivos Diseño del Modelo Lógico y del modelo E/R Desarrollo Funciones, Procedimientos, Vistas y Triggers Mejoras futuras Conclusiones 03/12/11

Objetivos Implementar un sistema de base de datos para un establecimiento o entorno de tipo "Supermercado". Aplicar los conceptos y técnicas de los lenguajes PL/SQL y SQL. Manejo de los programas ERWIN y SQLDEVELOPER para el proceso de diseño e implementación. Añadir nuevas funcionalidades e ideas que se consideren interesantes. 03/12/11

DIFERENCIAS, CAMBIOS Y DECISIONES Supresión de la especialización de tipos de departamento. Tabla detalle_ventas entre VENTAS y PRODUCTO. Campo FECVENTA en lugar, de FECHA y HORA, que contiene ambos. Nuevos atributos, IDOFERTA y CODVENTA para identificar a las entidades OFERTAS y VENTAS como claves primarias. Nuevo atributo PRECIO en la relación VENTAS y PRODUCTO para realizar vista sobre los beneficios anuales del supermercado. 03/12/11

Aspectos de Desarrollo Arquitectura ANSI-SPARC Independencia física y lógica Mejor mantenimiento y ampliación Organización de componentes en Paquetes Diseño modular permitiendo agrupación lógica de componentes Mejor rendimiento. Aspectos de codificación Uso de %TYPE Tratamiento de excepciones 03/12/11

Aspectos de Desarrollo Arquitectura ANSI-SPARC Independencia física y lógica Mejor mantenimiento y ampliación Organización de componentes en Paquetes Diseño modular permitiendo agrupación lógica de componentes Mejor rendimiento. Aspectos de codificación Uso de %TYPE Tratamiento de excepciones 03/12/11

Aspectos de Desarrollo Arquitectura ANSI-SPARC Independencia física y lógica Mejor mantenimiento y ampliación Organización de componentes en Paquetes Diseño modular permitiendo agrupación lógica de componentes Mejor rendimiento. Aspectos de codificación Uso de %TYPE Tratamiento de excepciones 03/12/11 FUNCTION Obtener_Codigo_Venta (p_caja IN VENTAS.caja%TYPE) RETURN NUMBER IS v_cod_venta VENTAS.codventa%TYPE:=0; BEGIN SELECT codventa INTO v_cod_venta FROM VENTAS_V WHERE (caja=p_caja) AND (forma_pago IS NULL); RETURN v_cod_venta; EXCEPTION WHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR(-20001,”Error: Venta No Existe”): END Obtener_Codigo_Venta;

Flujo básico de funcionamiento 03/12/11 Inicia una compra Compra una serie de productos Obtiene el total de compra Finaliza la compra

PROCEDURE Inicia_Compra(p_caja IN VENTAS.caja%TYPE) IS v_cod_venta VENTAS.codventa%TYPE; BEGIN -- si la caja ya tiene una venta iniciada la deshacemos IF (gestion_ventas.Venta_Iniciada(p_caja)) THEN v_cod_venta := gestion_ventas.Obtener_Codigo_Venta(p_caja); gestion_ventas.Deshacer_Venta(v_cod_venta); END IF; -- Iniciamos la nueva venta gestion_ventas.Crear_Nueva_Venta(p_caja); END Inicia_Compra; 03/12/11 Gestión de Ventas - IniciaCompra

03/12/11 Gestión de Ventas – Compra_Producto Comprueba disponibilidad, como máximo se añaden el máximo disponible estanteria + stock Si venta no iniciada la iniciamos Comprobar si es una devolución, en cuyo caso sólo devolver como máx. ud. Compradas Retirar de estantería si es devolución suma productos y si es compra los resta.

03/12/11 Gestión de Ventas Finaliza_Compra y Total_Compras

Función: Gestion_pedidos.mejor_oferta Cálculo de la mejor oferta: Restricciones: Unidades pedidas > mínimo unidades de oferta Unidades pedidas + unidades en stock > mínimo unidades stock Selección de la oferta con menor precio estimado: coste estimado = (precio * unidades + pérdidas) / unidades pérdidas = (predicción ventas – unidades stock) / unidades La predicción de ventas depente del tiempo de llegada del pedido 03/12/11

Función: Gestion_pedidos.mejor_oferta Predicción de ventas: ¿pasado cercano o pasado lejano? 03/12/11

Función: Gestion_pedidos.mejor_oferta Gestion_pedidos.prediccion_media 03/12/11

Función: Gestion_pedidos.mejor_oferta Gestion_pedidos.prediccion_media 03/12/11

Función: Gestion_pedidos.mejor_oferta Gestion_pedidos.prediccion_pendiente 03/12/11

Función: Gestion_pedidos.mejor_oferta Gestion_pedidos.prediccion_pendiente 03/12/11

Función: Gestion_pedidos.mejor_oferta Predicción de ventas: llegada de pedido en 6 semanas 03/12/11

Función: Gestion_pedidos.mejor_oferta Predicción de ventas: llegada de pedido en 6 semanas 03/12/11

Triggers almacenar_precio_historico Tipo: fila Tabla: producto Ejecución: after insert reponer_estanterias Tipo: sentencia Tabla: producto_v Ejecución: instead of update realizar_un_pedido Tipo: fila Tabla: stock Ejecución: after update actualizar_detalle_ventas Tipo: sentencia Tabla: detalle_ventas Ejecución: instead of insert 03/12/11

Vista: beneficios_brutos_anuales Sumar las ventas del año seleccionado SUM(precio*cantidad) Condición: año seleccionado < fecha de venta < año seleccionado + 1 Evitar coger más de 10 años WHERE h.anio > (to_number(extract(year from sysdate))-10)

Vista: producto_mas_vendido Se suma las cantidades de unidades vendidas por cada producto Se calcula el máximo de unidades vendidas por cada departamento Se calcula el producto y sus unidades vendidas Se relaciona el máximo de unidades vendidas con las unidades vendidas para conocer el producto La consulta devuelve el producto más vendido y su departamento

Vista: frecuencia_venta_dos_productos Se suma las ventas de un producto A Se suma las ventas de un producto B Se comprueba de que existe B. Si es así se efectúa la división entre los dos productos y se obtiene la frecuencia

Mejoras futuras Trigger para la gestión de pedidos Control de productos perecederos Control de ofertas y otro tipo de promociones Creación de vistas para estadísticas Control de empleados y clientes 03/12/11

Conclusiones La utilización de paquetes facilita la organización del código Dificultad a la hora de realizar algunas consultas Necesidad de un estudio previo de las especificaciones Oracle permite implementar diseños con triggers, procedimientos almacenados y funciones, lo que permite crear bases de datos muy funcionales.