Modelamiento Conceptual Sistema de administración de ventas y gestión con el cliente 1. Introducción: En el siguiente trabajo desarrollaremos el modelamiento de la base datos de una empresa comercial que se dedica a la venta de varios artículos entre ellos: artículos de cristalería, electrodomésticos, muebles, juguetes, y otros. La empresa también cuenta con un grupo de cajeros encargados de la venta y atención al cliente. Cada cajero trabaja normalmente dos turnos, pero esto podría variar bajo ciertas políticas. En la empresa también se ve una nueva cultura de comercialización, que se caracteriza por realizar promociones de algunos artículos que no se están vendiendo como se esperaba, la idea es llegar directamente al cliente y motivarlo a comprar, con promociones y descuentos, a través de radio, televisión, algunos banners e incluso mediante correos electrónicos. La base de datos que presentaremos a continuación servirá de base para la implementación de un sistema. Esta base de datos requiere almacenar información de: los datos personales de los clientes y del personal (cajeros), asignación de horarios de los cajeros, datos sobre clientes estrella, información sobre las ventas realizadas, detalle de cada venta, una lista completa de los atributos de cada artículo (código, precio, procedencia, garantía, peso, nombre, categoría, marca, etc.), información de promociones desarrolladas por la empresa (código, calificación, fecha de inicio, fecha de fin), información de los medios de difusión de dichas promociones (costo, horarios de difusión, fechas, etc.). También se almacenara información del historial de precios de un determinado artículo así como también la cotización diaria del dólar. Precio Detalle_Venta necesita Long variable characters <M> Date <M> Date <M> Money Date nro_lote <pi> Venta tiene id_venta <pi> Color Articulo tiene color_art Variable characters (50) <M> usa realiza Direccion vive en vive realizada calle_principal_cli Variable characters (50) calle_1_cli Variable characters (50) callle_2_cli Variable characters (100) id_cajero <pi> id_cajero <pi> Variable characters (50) ci_cajero Integer nombre_cajero Variable characters (100) apellido_cajero Variable characters (100) telefono_cajero Integer salario_cajero Money fecha_ingreso_cajero Date Cajero cotizacion Money <M> Cotizacion_Dolar codigo_art <pi> codigo_art <pi> Variable characters (50) <M> nombre_art Variable characters (100) <M> categoria_art Variable characters (100) <M> costo_compra Money <M>estar puede procedencia_art Variable characters (100) <M> marca_art Variable characters (100) <M> perso_art Decimal <M> garantia_art Variable characters (30) sector_art Variable characters (50) <M> estante_art Variable characters (50) <M> le pertenece id_venta <pi> Variable characters (50) fecha_venta Date hora_venta Time caja Variable characters (10) venta_total Money requiere tipo_art_venta Variable characters (100) <M> cant_art_venta Integer <M> monto_venta Money <M> precio_art fecha_vig_precio fecha_fin_vig_precio precio_promocion fecha_precio_prom Lote nro_lote <pi> Integer fecha_entrega Date descripcion Text tamaño Integer atendido Correo_cliente es le pertence Caja id_cliente <pi> Dirigido envia mensajes id_dirigido <pi> guarda presenta numero Integer <M> descrripcion Variable characters (50) <M> realizo_compra Boolean <M> telefono id_dirigido <pi> Integer cant_mens_enviados Integer Lista_Cliente_Estrella envia se transmite id_medios <pi> ... Variable characters (100) Integer Money Date Date Variable characters (50) Tv/Radio nombre_empresa nro_transmisiones costo_transmision fecha_inicio_promo fecha_fin_promo id_medios <pi> ci_cliente <pi> Integer nombre_cliente Variable characters (100) apellido_cliente Variable characters (100) fecha_nac_cliente Date profesion_cliente Variable characters (50) Cliente nro_caja Integer <M> posee <M> <M> <M> <M> <M> id_paquete <pi> correo_cli Variable characters (150) <M> atiende Turno <M> <M> <M> <M> <M> cod_paquete <pi> Variable characters (100) cant_articulos Integer Paquete esta formada id_prom <pi> Time Time Variable characters (100) Date Date conformada hora_ini_turno hora_fin_turno nombre_turno fecha_ini_turno fecha_fin_turno Contiene Promocion tiene codigo_prom <pi> Variable characters (50) nombre_prom Variable characters (100) fecha_ini_prom Date fecha_fin_prom Date calificacion Variable characters (50) codigo_banner <pi> codigo_banner <pi> Variable characters (50) costo_banner Money calle_principal Variable characters (100) calle_1 Variable characters (100) calle_2 Long variable characters (100) Banner 3. Modelo conceptual: 2. Requerimientos de almacenamiento de la base de datos a desarrollar: Title ID Full Description Code Priority Workload Risk Status 1. Del cajero se necesita almacenar identificador de cajero, nombre, teléfono, direccion, ademas del turno de atencion. REQ_0001 2.5 Medium Approved 2. Del cliente se requiere almacenar ocupación, ci, nombre, teléfono, email. REQ_0002 2 Medium Approved 3. De los articulos se necesita almacenar codigo, nombre, precio de compra, precio de venta, lote, procedencia, marca, peso, garantía, color, número de estante, número de sector y categoría REQ_0003 5 High Approved 4. De cada venta se requiere almacenar los detalle de los artículos vendidos, el cajero que realizo la venta, cliente, fecha, hora y nro de caja. REQ_0004 4 High Approved 5. De una promoción se necesita almacenar su identificador, fecha de inicio, fecha de fin y la calificacion recibida. REQ_0005 4 Medium Approved 4. Chequeo de navegación: a) Entidad Banner tiene los atributos código_banner, calle_principal, calle_1, calle_2 solo con el código del banner se puede tener las direcciones específicas de cada banner. Banner codigo_banner codigo_prom costo_banner calle_principal calle_1 calle_2 VARCHAR(50) <pk> VARCHAR(50) <fk> MONEY VARCHAR(100) VARCHAR(100) <Undefined> b) Hacemos un join entre venta y cliente, también un join entre detalle y venta y por ultimo un join entre detalle y artículo y de articulo seleccionamos los artículos de cristalería para obtener la lista de clientes, la fecha de venta la hora de venta y monto de la venta. Articulo codigo_art <pi> Variable characters (50) <M> nombre_art Variable characters (100) <M> categoria_art Variable characters (100) <M> costo_compra Money <M> procedencia_art Variable characters (100) <M> marca_art Variable characters (100) <M> perso_art Decimal <M> garantia_art Variable characters (30) sector_art Variable characters (50) <M> estante_art Variable characters (50) <M> Detalle_Venta necesita tipo_art_venta Variable characters (100) <M> cant_art_venta Integer <M> monto_venta Money <M> codigo_art <pi> requiere Venta Cliente ci_cliente <pi> Integer nombre_cliente Variable characters (100) apellido_cliente Variable characters (100) fecha_nac_cliente Date profesion_cliente Variable characters (50) id_cliente <pi> realizada id_venta <pi> Variable characters (50) fecha_venta Date hora_venta Time caja Variable characters (10) venta_total Money id_venta <pi> c) Hacemos un join entre promoción paquete , paquete y contiene, contiene y articulo luego seleccionamos las promociones del último semestre que hayan sigo catalogadas de excelente y luego vamos artículos y seleccionamos los q son electrodomésticos, cristalería o bebidas gaseosas y mostrar el nombre de la promoción. Paquete Articulo codigo_art <pi> Variable characters (50) <M> nombre_art Variable characters (100) <M> categoria_art Variable characters (100) <M> costo_compra Money <M> procedencia_art Variable characters (100) <M> marca_art Variable characters (100) <M> perso_art Decimal <M> garantia_art Variable characters (30) sector_art Variable characters (50) <M> estante_art Variable characters (50) <M> cod_paquete <pi> Variable characters (100) cant_articulos Integer id_paquete <pi> esta formada puede estar Promocion Contiene codigo_art <pi> conformada codigo_prom <pi> Variable characters (50) nombre_prom Variable characters (100) fecha_ini_prom Date fecha_fin_prom Date calificacion Variable characters (50) id_prom <pi> d) Seleccionamos las promociones que fueron catalogadas de excelentes y muy buenas luego hacemos un join con dirigido, dirigido con lista de clientes, luego seleccionamos a los que realizaron la compra del paquete. Promocion codigo_prom <pi> Variable characters (50) nombre_prom Variable characters (100) fecha_ini_prom Date fecha_fin_prom Date calificacion Variable characters (50) <M> <M> <M> <M> <M> id_prom <pi> Dirigido id_dirigido <pi> Integer cant_mens_enviados Integer id_dirigido <pi> envia envia mensajes Lista_Cliente_Estrella realizo_compra Boolean <M> Cliente ci_cliente <pi> Integer nombre_cliente Variable characters (100) apellido_cliente Variable characters (100) fecha_nac_cliente Date profesion_cliente Variable characters (50) id_cliente <pi> guarda <M> <M> <M> <M> <M> e) Se hace un join entre promoción y paquete, paquete y contiene, contiene y articulo, articulo y precio luego seleccionamos con el código de promoción. Articulo Paquete codigo_art <pi> Variable characters (50) <M> nombre_art Variable characters (100) <M> categoria_art Variable characters (100) <M> costo_compra Money <M> procedencia_art Variable characters (100) <M> marca_art Variable characters (100) <M> perso_art Decimal <M> garantia_art Variable characters (30) puede estar sector_art Variable characters (50) <M> estante_art Variable characters (50) <M> tiene codigo_art <pi> cod_paquete <pi> Variable characters (100) cant_articulos Integer id_paquete <pi> Contiene conformada esta formada Promocion Precio precio_art fecha_vig_precio fecha_fin_vig_precio precio_promocion fecha_precio_prom Long variable characters <M> Date <M> Date <M> Money Date codigo_prom <pi> Variable characters (50) nombre_prom Variable characters (100) fecha_ini_prom Date fecha_fin_prom Date calificacion Variable characters (50) id_prom <pi> <M> <M> <M> <M> <M>