1. EMPRESA DE MUDANZAS ELKIN ASDRUBAL SANCHEZ WILCHES ESTUDIANTE DE INGENIERIA DE SISTEMAS BASES DE DATOS FUNDACION UNIVERSITARIA PANAMERICANCA
2. EL PROBLEMA ES : En la pagina web http://www.puealfianlmemudo.dadbdse publicitan distintas empresas de mudanza que ofrecen sus servicios y productos en España. En la misma pagina web puedes rellenar solicitudes de servicios a las distintas empresas que, posteriormente pueden ser aceptadas o rechazadas tanto por el cliente como por la empresa de mudanzas. Esta pagina web necesita almacenar toda esa información en una base de datos y por eso nos ha pedido ayuda.Después de varias entrevistas con los gerentes de las empresas de mudanza, pudimos recoger la siguiente información:de las empresas de mudanza nos interesa guardar información sobre el nombre de la empresa (único), su dirección completa, teléfonos de contacto y una lista de poblaciones (nombre de población y provincia) a las que ofrecen sus servicios o productos.las empresas de mudanza pueden ofertar distintos servicios, como transporte, embalaje, desmontar/montar muebles, grúas, etc. No todas las empresas ofertan los mismos servicios ni en las poblaciones. Es decir, cada empresa puede ofrecer distintos servicios en distintas poblaciones, por lo que un cliente tendrá que mirar bien con que empresa contacta.todos los servicios se identifican con un nombre de servicio (común para todo el sector de mudanzas). Además de todos ellos se desea almacenar el precio/hora del servicio ofrecido por cada empresa de mudanza en cada población (puede tener diferentes precios de servicos dependiendo de la poblacion).
3. Los servicios de transporte que las empresas `pueden ofertar esta regulado por la ley en base a los Kg definiéndose unos intervalos por peso para cada transporte de forma estándar.respecto al precio de los servicios de transporte, además de contar con el precio/hora del servicio, existe un plus de aumento de precio si la carga supera una cantidad de Kg fija cada empresa independientemente de la población donde se realice el servicio. Por ejemplo, 10% más si la carga supera los 500kg, 15% más si la carga supera los 750kg, etc. En cuanto a las grúas, interesa almacenar el tamaño de las mismas (tamaño de la base, para comprobar en que espacios se puede utilizar; y alto de la grúa, para ver a que pio puede llegar).También existe una plus de aumento de precio según el alto de la grúa independientemente de la población donde se realiza el servicio.Cuando un cliente quiere hacer un mudanza, este ha rellanar un solicitud (identificada por un código en nuestra web) indicando que empresa de Mudanzas le pide que servicios y las direcciones de inicio del servicio y destino si el servicio lo quiere. Estas direcciones deberán, por supuesto, estar dentro de las poblaciones donde la empresa presta sus servicios. Además de la fecha de solicitud, se desea almacenar la fecha de resolución de la solicitud, indicando si la solicitud ha sido aceptada o no y el precio total, así como los precios de cada servicio solicitado. Los clientes están identificados por un código único y se desea conocer su NIF, dirección, nombre completo y teléfonos de contacto. Una vez aceptada la solicitud, también se deseara almacenar información sobre la fecha real en la que realizaron los servicios solicitud, el tiempo que se ha tardado en cada servicio y que empleados de la empresa de mudanza han trabajado en los servicios de dicha solicitud. En cuanto a los empleados, la empresa almacena información sobre su NIF, dirección, nombre completo, teléfono de contacto, teléfono de empresa, tipo de empleado (conductor, grúa, jefe de mudanza etc.) y el sueldo. Aunque existen muchos tipos de empleados, cada con uno con su especialidad, en las empresas de mudanza todos pueden realizar cualquier trabajo en algún momento dado, por lo que no sea necesario comprobar que únicamente los conductores son los que conducen vehículos en las mudanzas. Además, un mismo empleado puede serlo de varias empresas de mudanza en distintos momentos, por lo que será necesario guardar esta información.
4. LO PRIMERO QUE T ENEMOS QUE HACER PARA RESOLVER ESTE Y CUALQUIER OTRO PROBLEMA ES HACER EL DIAGRAMA ENTIDAD RELACION , EL DIAGRAMA ENTIDAD RELACION ES UN PROCESO PRACTICO Y FACIL PARA SABER QUE VAMOS A APLICAR CUANDO VALLAMOS A MONTAR UNA BASE DE DATOS. CON ESTE DIAGRAMA ENTIDAD RELACION ESTABLAECEMOS LAS RELACIONES QUE TENDRA NUESTRA BASE DE DATOS.
5. NOMBRE ID EMPRESA DIRECCION TELEFONOS D I AGRAMA ENT I DAD RE LA C I ON EMPRESA NOMBRE ID POBLACION POBLACION n ID EMPRESA 1 IDSERVICIOS n n 1 n n ID POBLACION ID EMPRESA ID SERVICIOS NOMBRE n PRECIO / HORA SERVICIOS PESO KG NOMBRE ID PROVINCIA ID SERVICIOS 1 ID VEHICULO PROVINCIA n n ALTO TAMAÑO VEHICULO PISO ID POBLACION n ID VEHICULO DIRECCION INICIO DIRECCION DESTINO ID SOLICITUD ID CLIENTE FECHA DE SOLICITUD NOMBRE ID EMPRESA SOLICITUD FECHA DEL SERVICIO CLIENTE n APELLIDO TIEMPO ACEPTACION 1 n DIRECCION n TIPO DE SOLICTUD TELEFONOS n ID SOLICITUD ID CLIENTE ID EMPLEADO ID EMPLEADO n ID EMPRESA ID SERVICIOS NOMBRE ID EMPLEADO DIRECCION EMPLEADO APELLIDO TELEFONOS
6. PARA CREAR TABLAS EN SQL DEBEMOS ESCRIBIR UN CODIGO ESPECIFICO , LAS SIGUIENTES TABLAS Y CODIGOS PERTENECEN AL PROBLEMA DE MUDANZAS ASI PODEMOS OBSERVAR COMO SE CREAN CADA UNA DE LAS TBALS DE ESTE PROBLEMA :
7. TABLA EMPRESA CODIGO SQL TABLA QUE GENERA create table empresa(id_empresa int(10),nombre char(10),dirección char(15),telefono char(10),PRIMARY KEY (id_empresa)); VISTA PRELIMINAR:
8. TABLA GENERADA La información que vemos en la tabla , la podemos agregar en Access como se muestra en la imagen . También podemos agregar esta información a la tabla con un código SQL Insert Into empresa (id empresa, nombre, dirección, teléfono)values('11', ‘servientrega ' ,' cra 92 con 17 ' , '2234488')
9. TABLA SERVICIOS CODIGO SQL create table servicios(id_servicio int(10),nombre char(10),costo int(10),PRIMARY KEY (id_servicio)); TABLA QUE GENERA VISTA PRELIMINAR:
10. TABLA SOLICITUD CODIGO SQL create table solicitud(id_solicitud int(10),dirección inicio char(10),dirección destino char(10),fecha de solicitud char(10),fecha de servicio char (10),tiempo char (10),id_cliente int(10),id_empresa int(10),id_servicio int (10),aceptación char(3),PRIMARY KEY (id_solicitud)); VISTA PRELIMINAR: TABLA QUE GENERA
11. TABLA EMPLEADO CODIGO SQL VISTA PRELIMINAR: createtable empleado(id_empeladoint(10),nombre char(20),apellido char (20),direccionchar(20),telefonoint (15),PRIMARY KEY (id_empleado)); TABLA QUE GENERA
12. TABLA VEHICULO CODIGO SQL VISTA PRELIMINAR: createtablevehiculo(id_vehiculoint(10),alto char(20),tamaño char (10),piso char(10),PRIMARY KEY (id_vehiculo)); TABLA QUE GENERA
13. TABLA CLIENTE CODIGO SQL createtable cliente(id_clienteint(10),nombre char(20),apellido char (20),direccionchar(20),telefonoint (15),PRIMARY KEY (id_cliente)); VISTA PRELIMINAR: TABLA QUE GENERA
14. VISTA PRELIMINAR: TABLA POBLACION CODIGO SQL createtablepoblacion(id_poblacionint(10),nombre char(20),PRIMARY KEY (id_poblacion)); TABLA QUE GENERA
15. TABLA PROVINCIA VISTA PRELIMINAR: CODIGO SQL createtable provincia(id_provinciaint(10),nombre char(20),id_poblacionint (10),PRIMARY KEY (id_provincia)); TABLA QUE GENERA
16. LAS RELACIONES DE MUCHOS A MUCHOS CREAN TABLA . ESTOS CÓDIGOS PERTENECEN A LAS RELACIONES QUE LLEVA EL PROBLEMA DE MUDANZAS: RELACION EMPRESA - POBLACION RELACION EMPRESA - SERVICIOS createtableempresa_poblacion(id_poblacionint(10),id_empresaint (10), createtableempresa_servicios(id_servicioint(10),id_empresaint (10), RELACION EMPRESA - EMPLEADO RELACION SERVICIOS - VEHICULO createtableservicios_vehiculo(id_serviciosint(10),id_vehiculoint (10), createtableempresa_empleado(id_empresaint (10), id_empeladoint(10), RELACION SOLICITUD - EMPLEADO create table solicitud_empleado(id_solicitudint(10),id_empleadoint (10),
18. En SQL también podemos hacer consultas por ejemplo estas son algunas consultas: PROMEDIO DE COSTO DE SERVICIO MAYOR A 100000 SELECT Avg(costo) AS promedioFROM SERVICIOWHERE (((SERVICIO.[costo])>100000)); SUMA DE COSTOS SELECT Sum(costo) AS sumaFROM SERVICIO; SABER EL COSTO MAYOR DE LA TABLA SERVICIO EL SERVICIO MS COSTOSO SELECT Max(costo) AS mayorFROM SERVICIO; SABER EL COSTO MENOR DE LA TABLA SERVICIO EL SERVICIO MAS ECONOMICO SELECT Max(costo) AS mayorFROM SERVICIO; LISTADO EMPLEADOS ¿Cuántos registros existen? SELECT Count(*) AS totalFROM EMPLEADO;