web de mudanzas

25
DISEÑO DE BASES DE DATOS PARA EMPRESAS DE MUDANZAS

Upload: julianchortega

Post on 20-Dec-2014

1.305 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Web de Mudanzas

DISEÑO DE BASES DE DATOS PARA EMPRESAS DE MUDANZAS

Page 2: Web de Mudanzas

REQUERIMIENTOS En la página Web

http://www.puealfinalmemudo.dadbd se pub licitan distintas empresas de mudanza que ofrecen sus servicios y productos en España.

En la misma página 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 página Web necesita almacenar toda esta 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:

Page 3: Web de Mudanzas

REQUERIMIENTOS 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 ofrece 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 mismas poblaciones. Es decir, cada empresa puede ofrecer distintos servicios en distintas poblaciones, por lo que un cliente tendrá que mirar bien con qué empresa contacta.

Page 4: Web de Mudanzas

REQUERIMIENTOS 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 mudanzas en cada población (puede tener diferentes precios de servicios dependiendo de la población).

Los distintos servicios de transporte que las empresas pueden ofertar está regulado por 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 que 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.

Page 5: Web de Mudanzas

REQUERIMIENTOS En cuanto a las grúas, interesa almacenar el tamaño de las

mismas (tamaño de la base, para comprobar en qué espacios se puede utilizar; y alto de la grúa, para ver a qué piso puede llegar).

También existe un 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 una mudanza, éste ha rellenar una solicitud (identificada por un código único en nuestra Web) indicando a qué empresa de mudanzas le pide qué servicios y las direcciones de inicio del servicio y destino si el servicio lo requiere. 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.

Page 6: Web de Mudanzas

REQUERIMIENTOS 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 deseará almacenar información sobre la fecha real en la que realizaron los servicios solicitados, el tiempo que se ha tardado en cada servicio y qué empleados de la empresa de mudanza han trabajado en los servicios de dicha solicitud.

Page 7: Web de Mudanzas

REQUERIMIENTOS Una vez aceptada la solicitud, también se deseará almacenar

información sobre la fecha real en la que realizaron los servicios solicitados, el tiempo que se ha tardado en cada servicio y qué 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 empleado, cada uno con su especialidad, en las empresas de mudanza todos pueden realizar cualquier trabajo en algún momento dado, por lo que no será necesario comprobar que únicamente los conductores son los que conducen los 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.

Para facilitar la gestión económica de esta base de datos, suponemos que todos los pagos de los clientes se efectúan a priori.

Page 8: Web de Mudanzas

APARTADOS A REALIZAR

1. (4 puntos) Realizar el diseño utilizando el modelo E/R, indicando todos los supuestos semánticos complementarios al enunciado que sea necesario introducir, así como todos aquellos que no pueden ser recogidos en el diagrama E/R.

NOTA: Es necesario entregarlo en formato electrónico utilizando cualquier programa mientras que respete la notación del modelo E/R estudiado en clase. Para los alumnos que utilicen Visio Microsoft, en la página de la asignatura se ofrece una biblioteca con los símbolos del modelo E/R.

Page 9: Web de Mudanzas

APARTADOS A REALIZAR

2. (2 puntos) Transformar el esquema E/R en un esquema relacional (grafo relacional), en el que se han de indicar las claves primarias, andidatas y las claves ajenas con sus opciones de integridad referencial, así como si el atributo permite valores nulos.

Si es necesario, se debe incluir las restricciones de verificación (checks), aserciones y disparadores que permitan captar toda la semántica del enunciado (debe incluir la sintaxis en SQL).

Page 10: Web de Mudanzas

CONSULTAS

1. Qué tipo de servicios ha pedido un cliente dado (“Pepito Pérez”) en el último mes.

2. Cuál es la empresa que ofrece más servicios en la población “Burguillo” de la provincia de “Toledo”.

Page 11: Web de Mudanzas

CONSULTAS

3. Qué empleados (nombre y apellidos) han trabajado para “Pepito Pérez” en el último mes.

4. Cuántas solicitudes se han aceptado en el último año, el nombre del cliente que la realizó, las poblaciones de origen y destino (en el caso de que hubiera) y el precio total de cada solicitud.

Page 12: Web de Mudanzas

DISPARADORES 1. Atributo derivado “precio_total” en la

solicitud de un cliente. 2. Disparador que compruebe la

exclusividad en los distintos servicios que ofrece una empresa de mudanza.

3. Aserción que compruebe que la empresa puede realizar la mudanza solicitada por un cliente según la dirección de inicio y la dirección de destino.

Page 13: Web de Mudanzas

PLANTEAMIENTO DE DISEÑO DE BASESE DE DATOS

A continuación se presentara el diseño en lenguaje SQL su interfaz grafica en Access

Page 14: Web de Mudanzas

Tabla Cliente

Create table Cliente( Id_Cliente int(15), Nombre char (30), Direccion char (40), Telefono int (15), Primary key (Id_Cliente));

Código SQL VISTA DE DISEÑO

VISTA DE HOJA DE DATOS

Page 15: Web de Mudanzas

Tabla Empresa

Create table Empresa( Id_Empresa int(15),

Nombre char (30), Direccion char (40), Telefono int (15), Primary key Id_Empresa));

Código SQL VISTA DE DISEÑO

VISTA DE HOJA DE DATOS

Page 16: Web de Mudanzas

Tabla Solicitud

Create table Solicitud( Id_Empresa int(15), Id_Servicio int(15), Id_Provincia int(15), Id_Cliente int(15), Id_Solicitud int(15),

peso char (30), destino char (40), aceptacion, Primary key Id_Solicitud));

Código SQL VISTA DE DISEÑO

VISTA DE HOJA DE DATOS

Page 17: Web de Mudanzas

Tabla Empleado

Create table Empleado( Id_Empleado int(15),

Nombre char (30), Direccion char (40), Telefono int(15) TipoEmpleado char(30) sueldo int(15)Primary key Id_Empleado));

Código SQL VISTA DE DISEÑO

VISTA DE HOJA DE DATOS

Page 18: Web de Mudanzas

Tabla Vehículos

Create table Vehiculo( Placa char (15),

Id_Empresa int(15) Id_Servicios int(15) ,

Altura int(15),Primary key Placa));

Código SQL VISTA DE DISEÑO

VISTA DE HOJA DE DATOS

Page 19: Web de Mudanzas

Tabla Provincia

Create table Provincia( nombre char (15),

Departamento char (15), Id_Provincia int(15) Primary key (Id_Provincia));

Código SQL VISTA DE DISEÑO

VISTA DE HOJA DE DATOS

Page 20: Web de Mudanzas

Tabla Relación Empleado Empresa

Create table RelacionEmpleadoEmpresa( Id_Empleado int(15), Id_Empresa int(15), );

Código SQL VISTA DE DISEÑO

VISTA DE HOJA DE DATOS

Page 21: Web de Mudanzas

Tabla Relación Solicitud Empleado

Create table RelacionSolicitudEmpleado( Id_Empleado int(15), Id_Solicitud int(15), );

Código SQL VISTA DE DISEÑO

VISTA DE HOJA DE DATOS

Page 22: Web de Mudanzas

Consultas SELECT SOLICITUD.[Id-Solicitud], SOLICITUD.

[Fecha de servicio], SOLICITUD. Destino, SOLICITUD. Peso, SERVICIOS.[Hora del servicio], SERVICIOS. Precio, CLIENTE. Nombre

FROM CLIENTE INNER JOIN (SERVICIOS INNER JOIN SOLICITUD ON SERVICIOS.[Id-Servicios] = SOLICITUD.[Id-Servicio]) ON CLIENTE.[Id-cliente] = SOLICITUD.[Id-Cliente]

WHERE (((SOLICITUD.[Id-Solicitud])=151814 Or (SOLICITUD.[Id-Solicitud])=151815));

VISTA DE HOJA DE DATOS

Código SQL

Page 23: Web de Mudanzas

Consultas SELECT SOLICITUD.[Solicitud aceptada],

SOLICITUD. Destino, SOLICITUD.[Fecha de servicio], CLIENTE. Nombre, PROVINCIA. Departamento, PROVINCIA. Nombre, SERVICIOS. Precio

FROM ((CLIENTE INNER JOIN SOLICITUD ON CLIENTE.[Id-cliente] = SOLICITUD.[Id-Cliente]) INNER JOIN PROVINCIA ON SOLICITUD.[Id-Provincia] = PROVINCIA.[Id-Provincia]) INNER JOIN SERVICIOS ON (SOLICITUD.[Id-Servicio] = SERVICIOS.[Id-Servicios]) AND (PROVINCIA.[Id-Provincia] = SERVICIOS.[Id-Provincia])

WHERE (((SOLICITUD.[Solicitud aceptada])="Si")); VISTA DE

HOJA DE DATOS

Código SQL

Page 24: Web de Mudanzas

Consultas SELECT EMPRESA.[Id-Empresa], EMPRESA.

Nombre, SERVICIOS.[Tipo de servicio], SERVICIOS. Precio, SOLICITUD. Destino

FROM (EMPRESA INNER JOIN SERVICIOS ON EMPRESA.[Id-Empresa] = SERVICIOS.[Id-Empresa]) INNER JOIN SOLICITUD ON SERVICIOS.[Id-Servicios] = SOLICITUD.[Id-Servicio]

WHERE (((EMPRESA.[Id-Empresa])=111 Or (EMPRESA.[Id-Empresa])=222));

VISTA DE HOJA DE DATOS

Código SQL

Page 25: Web de Mudanzas

Consultas SELECT SOLICITUD.[Id-

Solicitud], SOLICITUD.[Fecha de servicio], SOLICITUD. Destino FROM SOLICITUD WHERE (((SOLICITUD.[Id-Solicitud])=151813));

VISTA DE HOJA DE DATOS

Código SQL