Sei sulla pagina 1di 6

Instituto Universitario Aeronáutico

Facultad Ciencias de la Administración


INGENIERÍA DE SISTEMAS
Diseño de Bases de Datos

Actividad Integradora I
Nombre y apellido: Tomás Gabriel Cardozo
Fecha: 23 / 10 / 2019

Un negocio de venta de comidas rápidas desea llevar un registro de sus repartos domiciliarios
(delivery) con el objetivo de obtener algunas estadísticas básicas, y conocer los clientes más
habituales a fin de ofrecerles algunas promociones.
En principio, se utilizarán 5 entidades principales para el almacenamiento de los datos:

 clientes (datos principales: teléfono, nombre, y domicilio –calle, número y barrio-);


 repartidores (nombre completo y teléfono)
 menú (menú –plato o bebida-, precio, y descripción)
 pedidos (cliente, fecha y hora del pedido, monto total, y repartidor asignado)
 ítems del pedido (un registro para cada menú solicitado, con su cantidad)

Ejemplo de datos para el menú:

Menú Precio Descripción


Lomo Completo de Carne $74,00 Lechuga, tomate, jamón cocido, queso, huevo y papas fritas
Lomo Completo de Pollo $65,00 Lechuga, tomate, jamón cocido, queso, huevo y papas fritas
Lomo Vegetariano $60,00 mayonesa, lechuga, tomate, escabeche de verduras, queso y
papas fritas
Lomo Simple de Carne $65,00 lechuga tomate y queso
Lomo Especial $80,00 salsa golf, tomate, queso jamón cocido, huevo, lechuga, palmitos,
morrón y papas fritas
Lomo Roquefort $80,00 Mayonesa, lechuga, tomate, queso, huevo, salsa roquefort, y
papas fritas
Empanada Árabes $7,00
Empanada Choclo $7,00
Empanada Jamón y queso $7,00
Empanada Verdura $7,00
Empanada Criolla $7,00
Empanada Dulce $7,00
Empanada Queso y cebolla $7,00
Empanada Atún $7,00
Tarta de Jamón y queso $75,00
Grande
Tarta de Jamón y queso $45,00
Mediana
Tarta de Verdura Grande $75,00
Tarta de Verdura Mediana $45,00
Tarta de De choclo Grande $75,00
Tarta de De choclo Mediana $45,00
Agua saborizada 500CC $10,00
Gaseosa 1500CC $22,00 Coca cola, Fanta, Sprite, Coca Zero o Sprite Zero
Cerveza Quilmes 1L $25,00
Cerveza Stella Artois 1L $40,00
Cerveza Stella Artois 330CC $25,00
Consignas:

1. Realizar un diagrama Entidad-Relación -respetando la sintaxis de la guía o realizarlo con un


software afín- para el caso planteado
importante:
 Todas las entidades deben contemplar un código interno de identificación (id).
 Obviamente el ejemplo se presta para ampliarlo en muchos sentidos, ya sea para
almacenar información adicional, y/o integrarla con otras entidades, pero el objeto de
esta consigna es resolverlo con lo mínimo requerido, por lo que se pide ajustarse a lo
solicitado; cualquier duda se podrá incluir en el foro del aula para compartirlo con el
resto del grupo.

2. Indicar los dominios para cada atributo, respetando el siguiente formato:


(Indicar el ‘tamaño’ en los casos que lo requiera)

Entidad Campo Domin Descripción Tamaño


o
REPARTIDORES NOMBRE_COMPLETO S STRING 120

3. Realizar un cuadro que identifique las diferentes claves de las diferentes tablas, en el
siguiente formato de ejemplo:

Tabla Claves candidatas


Clave Claves alternativas Claves ajenas
Principal (indicar tabla relacionada)
ALUMNO NRO_LEGAJO NRO_LEGAJ NRO_DNI+TIPO_D TIPO_DNI (tabla
S NRO_DNI+TIPO_DNI O NI TIPOS_DOCUMENTO)
COD_LOCALIDAD (tabla
LOCALIDADES)
COD_NIVEL (tabla NIVELES)

4. En otro cuadro, señale que tipo de regla (para ELIMINACIÓN de claves primarias) aplicará
en el diseño para cada una de las relaciones establecidas. Seleccione una y justifique.

Relaciones Restringida Se propaga Anula


(tabla relacionada.campo) -> (tabla principal.campo) (Restricted) (Cascades) (Nullifies)
DPTOS_EMPLS.NRO_LEGAJO ->
X
EMPLEADOS.NRO_LEGAJO
DETALLE_FACTURA.NRO_FACTURA ->
X
FACTURA.NRO_FACTURA

--o--
1. Considere a la entidad ITEMS_PEDIDO como la entidad producto de la
relación muchos a muchos entre menú y pedidos.

2.

Entidad Campo Domino Descripción Tamaño

REPARTIDOR nombre_apellido V Varchar MAX


REPARTIDOR id_repartidor I Int 2000000000
REPARTIDOR teléfono I Int 2000000000

Entidad Campo Domino Descripción Tamaño

CLIENTE id_cliente I Int Max


CLIENTE telefono I Int 2000000000
CLIENTE nombre V Varchar 50
CLIENTE calle-barrio V Varchar MAX
CLIENTE numero I int 2000000000
Entidad Campo Domino Descripción Tamaño

PEDIDO id_pedido I Int 2000000000


PEDIDO id_cliente1 I Int 2000000000
PEDIDO [fecha-hora] D smalldatetime 1900 a 2079
PEDIDO monto_total F float MAX
PEDIDO id_repartidor1 I int 2000000000

Entidad Campo Domino Descripción Tamaño

MENU id_menu I Int 2000000000


MENU menu V Varchar 50
MENU Precio F Float MAX
MENU descripcion V Varchar MAX

Entidad Campo Domino Descripción Tamaño

ITEMS_PEDIDO id_menu1 I Int 2000000000


ITEMS_PEDIDO id_pedido1 I Int 2000000000
ITEMS_PEDIDO cantidad F Float MAX

3.

Tabla Claves candidatas Clave Principal Claves alternativas Claves ajenas


(indicar tabla
relacionada)
REPARTIDOR nombre_apellido
REPARTIDOR id_repartidor id_repartidor id_repartidor(PEDIDO)
REPARTIDOR teléfono

Tabla Claves candidatas Clave Principal Claves alternativas Claves ajenas


(indicar tabla
relacionada)
CLIENTE id_cliente id_cliente id_cliente(PEDIDO)
CLIENTE telefono telefono
CLIENTE nombre
CLIENTE calle-barrio
CLIENTE numero
Tabla Claves candidatas Clave Principal Claves Claves ajenas
alternativas (indicar tabla
relacionada)
PEDIDO id_pedido id_pedido id_pedido(ITEMS_PEDIDO)
PEDIDO id_cliente1 id_cliente1
PEDIDO [fecha-hora] [fecha-hora]
PEDIDO monto_total
PEDIDO id_repartidor1 id_repartidor1

Tabla Claves candidatas Clave Principal Claves Claves ajenas


alternativas (indicar tabla relacionada)
MENU id_menu id_menu id_ menu(ITEMS_PEDIDO)
MENU menu
MENU Precio
MENU descripcion

Tabla Claves candidatas Clave Principal Claves alternativas Claves ajenas


(indicar tabla
relacionada)
ITEMS_PEDIDO id_menu1 id_menu1
ITEMS_PEDIDO id_pedido1 id_pedido1
ITEMS_PEDIDO cantidad

4.

Relaciones Restringida Se propaga Anula


(tabla relacionada.campo) -> (tabla principal.campo) (Restricted) (Cascades) (Nullifies)
PEDIDO.id_cliente1 -> CLIENTE.id_cliente x
PEDIDO.id_repartidor1 -> REPARTIDOR.id_repartidor x
ITEMS_PEDIDO. id_pedido1 -> PEDIDO.id_pedido x
ITEMS_PEDIDO. id_menu1 -> PEDIDO.id_menu x

En las dos primeras relaciones usamos CASCADES, porque si un cliente no


esta mas en la base de datos, o un repartidor, este no va a poder hacer
pedidos o llevarlos, respectivamente. Por ende, deben borrarse también todos
los pedidos hecho o llevados por el cliente o repartidor borrados.

Y las dos ultimas relaciones usamos NULLIFIES, porque si un pedido o un


menú es borrado, no tenemos que borrar el otro. Ej.: si un cliente desea
cancelar su pedido o el repartidor no puede llevarlo y se le informa al cliente
que no se va a poder realizar su pedido, este es borrado pero el menú
asignado existe para este pedido, actualmente en null, pero el menú puede
existir para otros pedidos; por lo que no podemos borrarlo. Sucede lo mismo
con la ultima relación. Ej.: Hay un pedido de x menú, empandas, y resulta que
el local se queda sin los recursos para hacer una empanada, pero el pedido ya
esta hecho, de esta forma el pedido de empanadas, ahora indica que es null.
Lo cual se le puede informar al cliente que no se posee tal menú, para que
pueda pedir otro menú, y así no perder la venta o peor el cliente.

Potrebbero piacerti anche