UNIVERSIDAD DIEGO PORTALES FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA INDUSTRIAL BASES DE DATOS ICI3022-3 PROYECTO Profesor: Alberto Abudinen Alumno: Nicolás A. Vargas Molina Fecha: 12/noviembre/2010 Tabla de contenidos TABLA DE CONTENIDOS ............................................................................................................ 2 ELECCIÓN DE LA EMPRESA ........................................................................................................ 3 DESCRIPCIÓN DE LA EMPRESA .................................................................................................. 3 VISIÓN ............................................................................................................................................... 3 MISIÓN.............................................................................................................................................. 3 DESCRIPCIÓN GENERAL ......................................................................................................................... 4 REQUERIMIENTOS DEL NEGOCIO .............................................................................................. 4 MODELO ENTIDAD RELACIÓN ................................................................................................... 5 P.K MODELO ENTIDAD RELACIÓN.............................................................................................. 6 MODELO RELACIONAL .............................................................................................................. 6 ENTIDADES ......................................................................................................................................... 6 RELACIONES ....................................................................................................................................... 6 TABLAS MODELO RELACIONAL ................................................................................................................ 7 MODELO RELACIONAL .......................................................................................................................... 9 NUEVO MODELO RELACIONAL ................................................................................................ 10 NUEVAS CONSULTAS .............................................................................................................. 11 FORMULARIO ......................................................................................................................... 12 SENTENCIAS S.QL. DE CADA CONSULTA ................................................................................... 13 Nicolás Andrés Vargas Molina 2 Elección de la empresa IMEEDEN es una empresa que se dedica a la venta de pastillas y cremas dermatológicas, esta posee clientes y proveedores. Para cada cliente: Cada cliente poseerá R.U.T, dirección (varias) nombre y descuento. Para cada proveedor: Cada proveedor poseerá R.U.T, dirección (varias) y nombre. Para cada artículo: Cada artículo tendrá N° de serie, N° de lote, descripción. Para cada pedido: Cada pedido tendrá R.U.T del cliente, cant. de artículos, N° serie artículo, forma de pago y fecha. Para cada dirección: Cada dirección tendrá N° dirección, nombre de calle, comuna y región. Descripción de la Empresa Visión Constituirse como una de las empresas líderes en Chile, en la comercialización de productos dermatológicos, desarrollar la mayor eficiencia en nuestros procesos e innovar constantemente para ser una empresa proactiva frente a los cambios, obteniendo así una ventaja competitiva frente a la competencia. Misión Promover una cultura organizacional orientada a satisfacer las necesidades de nuestros clientes, entregando productos y servicios de máxima calidad, con un eficiente sistema de distribución en todo el país, generando rentabilidades positivas para nuestra empresa. Nicolás Andrés Vargas Molina 3 Descripción general Esta empresa se dedica a la venta de productos dermatológicos enfocados en el cuidado de la piel, además se realizan mediciones de piel para una correcta recomendación de estos productos, por lo que poseen una amplia variedad de productos. Esta empresa funciona como cliente y proveedor. Requerimientos del negocio Listar ventas del producto “x” en la fecha “x”. Listar pedidos del cliente “x” para la fecha “x”. Listar clientes o proveedores de la región “x”. Mostrar stock del producto “x”. Mostrar datos del cliente o proveedor “x”. Mostrar número de serie del producto “x” perteneciente al lote “x”. Mostrar consumo del cliente “x”. Mostrar recaudación en $ del mes “x”. Mostrar información (modo de uso, contraindicaciones, ingredientes, etc.) sobre el producto “x”. Mostrar cheques por vencer a la fecha “x”. Mostrar deuda del cliente “x”. Nicolás Andrés Vargas Molina 4 Modelo entidad relación Nicolás Andrés Vargas Molina 5 P.K Modelo Entidad Relación Para la entidad “Direcciones” la P.K estará formada por N° de Dirección, Nombre de calle y Comuna. Para la entidad “Persona” la P.K estará formada R.U.T. Para la entidad “Pedido” la P.K estará formada por Fecha y R.U.T cliente. Para la entidad “Artículos” la P.K estará formada por N° de serie. Para la relación “Tiene” la P.K estará formada por R.U.T y Dirección. Para la relación “Realiza” la P.K estará formada por R.U.T cliente y fecha. Para la relación “Incluyen” la P.K estará formada por cant. De artículos pedidos y N° de serie del artículo. Modelo relacional Entidades “Persona” (Tipo de persona, R.U.T, nombre, descuento). “Dirección” (N° Dirección, nombre, comuna, región). “Pedido” (Fecha, cantidad artículos, R.U.T cliente, forma pago, N° serie artículo). “Artículos” (N° serie artículo, N° lote, descripción). Relaciones “Tiene”, entre persona y dirección; de 1 a ∞; [No tendrá tabla]. “Realiza”, entre persona y pedido; de 1 a ∞; [No tendrá tabla]. “Se incluyen”, entre pedido y artículos; de 1 a ∞; [No tendrá tabla]. Nicolás Andrés Vargas Molina 6 Tablas modelo relacional Persona. Campo Descripción Tipo persona Especifica si es cliente o proveedor Identificación del cliente o proveedor Nombre del cliente o proveedor Descuento que se le realiza al cliente R.U.T Nombre Descuento Tipo de dato String Tamaño 9 Acepta nulo NO P.K F.K Restricciones Integer 8 NO String 250 NO NO NO NO Integer 2 NO NO NO NO Tipo de dato Date Tamaño 8 Acepta nulo NO Integer 8 NO Integer 3 Integer String NO NO SI SI NO NO Pedido. Campo Descripción Fecha Fecha en que se realiza el pedido R.U.T del cliente que realiza el pedido Cantidad de artículos que se comprarán N° único de cada artículo Cómo se pagará el pedido (Efectivo, cheque o tarjeta.) R.U.T Cant. Artículos N° de serie de artículo Forma de pago Nicolás Andrés Vargas Molina P.K F.K Restricciones SI NO NO SI NO NO NO NO NO NO 7 NO NO NO 8 NO NO NO SI NO 7 Dirección. Campo Descripción N° Dirección N° de la oficina, casa o departamento Nombre de la calle Comuna donde se encuentra la calle Región donde se encuentra la dirección R.U.T del cliente o proveedor Nombre Comuna Región R.U.T Tipo de dato Integer Tamaño 4 Acepta nulo NO String String 300 100 NO NO String 100 Integer P.K F.K Restricciones SI NO NO SI SI NO NO NO NO NO NO NO NO 8 NO NO NO Tipo de dato Integer Tamaño 7 Acepta nulo NO Integer 7 NO NO NO NO String 10000 NO NO NO NO SI Artículos. Campo Descripción N° de serie N° único de cada producto N° de lote del que proviene cada artículo Detalle de cada producto N° de lote Descripción Nicolás Andrés Vargas Molina P.K F.K Restricciones SI SI NO 8 Modelo Relacional Nicolás Andrés Vargas Molina 9 Nuevo modelo relacional Nicolás Andrés Vargas Molina 10 Nuevas consultas 1. Listar ventas del producto “x” en la fecha “x” (PARÁMETRO). 2. Listar clientes y proveedores de la región “x” (UNIÓN DE DOS TABLAS). 3. Información del cliente o proveedor “x” (UNIÓN TABLA Y PARÁMETRO). 4. Mostrar cheques por vencer después de la fecha “x” (FECHA). 5. Mostrar información sobre el producto “x” (NORMAL). 6. Clientes que han comprado más de una vez (HAVING). 7. Cliente que consume más (CONSULTA SOBRE CONSULTA). 8. Cantidad de ventas por producto (GROUP BY). 9. Regiones que venden el producto que más se vende (UNIÓN DE CONSULTAS). 10. Proveedor que realiza la venta más cara y cliente que realiza la compra más cara (UNIÓN). Nicolás Andrés Vargas Molina 11 Formulario Nicolás Andrés Vargas Molina 12 Sentencias S.QL. de cada consulta 1. SELECT cantidad_art AS cantidad_artículos, codigo_prod AS código_producto, rut, forma_pago AS forma_de_pago, id_pedido_venta, precio_total FROM venta WHERE fecha = ingrese_fecha and nombre_prod = ingrese_producto; Como ejemplo se ingresará la fecha 01/01/2010 y nombre del producto será imedeen, con esto el resultado será: 2. SELECT persona.nombre AS nombre_persona, direccion.region AS region FROM persona, direccion WHERE persona.rut=direccion.rut and direccion.region = ingrese_región; Como ejemplo se ingresará la región Santiago, con esto el resultado será: 3. SELECT persona.rut, persona.tipo_persona, direccion.Ndireccion, direccion.nombre_calle, direccion.comuna, direccion.region FROM persona, direccion WHERE persona.rut = direccion.rut and persona.nombre = ingrese_nombre; Como ejemplo se ingresará el nombre nicolas Vargas, con esto el resultado será: Nicolás Andrés Vargas Molina 13 4. SELECT cheques.id_pedido_venta AS numero_venta, persona.nombre AS persona_que_emite and cheques.fecha_vencimiento AS fecha_vencimiento FROM cheques, persona, venta WHERE persona.rut=venta.rut and venta.id_pedido_venta=cheques.id_pedido_venta and venta.forma_pago=’cheque’ and cheques.fecha_vencimiento > DateValue (Ingrese_fecha); Como ejemplo se ingresará la fecha 30/03/2010, con esto el resultado será: 5. SELECT descripcion FROM articulos WHERE nombre_prod=ingrese_producto; Como ejemplo se ingresará el producto xp, con esto el resultado será: 6. SELECT persona.nombre AS nombre_persona, SUM (venta.precio_total) AS gastos_totales FROM persona_venta WHERE persona.rut = venta.rut and persona.tipo_persona = ’cliente’ GROUP BY persona.nombre HAVING COUNT (venta.precio_total) > 1; Con esto el resultado será: Nicolás Andrés Vargas Molina 14 7. SELECT persona.nombre AS nombre_persona FROM persona, venta WHERE persona.rut = venta.rut and persona.tipo_persona = ‘cliente’ and venta.precio_total = (SELECT MAX (precio_total) FROM venta); Con esto el resultado será: 8. SELECT COUNT (precio_total) AS totales, nombre_prod AS nombre_producto FROM venta GROUP BY nombre_prod; Con esto el resultado será: 9. SELECT direccion.region AS region, Sum(venta.precio_total) AS totales FROM direccion, venta WHERE venta.rut=direccion.rut GROUP BY direccion.region HAVING COUNT (venta.precio_total) = (SELECT MAX (totales) FROM Consulta8GROUPBY); Con esto el resultado será: Nicolás Andrés Vargas Molina 15 10. SELECT persona.nombre AS nombre_persona, persona.tipo_persona AS tipo_persona FROM persona, venta WHERE persona.rut=venta.rut and persona.tipo_persona='proveedor' and venta.precio_total= (SELECT MAX (venta.precio_total) FROM venta, persona WHERE persona.tipo_persona='proveedor' and persona.rut=venta.rut) UNION SELECT persona.nombre AS nombre_persona, persona.tipo_persona AS tipo_persona FROM persona, venta WHERE persona.rut=venta.rut and persona.tipo_persona='cliente' and venta.precio_total= (SELECT MAX (venta.precio_total) FROM venta, persona WHERE persona.tipo_persona='cliente' and persona.rut=venta.rut); Con esto el resultado será: Nicolás Andrés Vargas Molina 16