Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Industrial EII 210 – Arquitectura de Sistemas de Software Profesor: Claudio Cubillos Ayudantes: Pablo Donoso – Daniela Gaete – Carla Morales Segundo Semestre 2011 AYUDANTÍA DISEÑO BASE DE DATOS Ejercicio 1: Una base de datos para una pequeña empresa debe contener información acerca de clientes, artículos y pedidos. Hasta el momento se registran los siguientes datos en documentos varios: Para cada cliente: Número de cliente (único), Direcciones de envío (varias por cliente), Saldo, Límite de crédito (depende del cliente, pero en ningún caso debe superar los 3.000.000), Descuento. Para cada artículo: Número de artículo (único), Fábricas que lo distribuyen, Existencias de ese artículo en cada fábrica, Descripción del artículo. Para cada pedido: Cada pedido tiene una cabecera y el cuerpo del pedido. La cabecera está formada por el número de cliente, dirección de envío y fecha del pedido. El cuerpo del pedido son varias líneas, en cada línea se especifican el número del artículo pedido y la cantidad. Además, se ha determinado que se debe almacenar la información de las fábricas. Sin embargo, dado el uso de distribuidores, se usará: Número de la fábrica (único) y Teléfono de contacto. Y se desean ver cuántos artículos (en total) provee la fábrica. También, por información estratégica, se podría incluir información de fábricas alternativas respecto de las que ya fabrican artículos para esta empresa. Nota: Una dirección se entenderá como Nº, Calle, Comuna y Ciudad. Una fecha incluye hora. Se pide hacer un modelo de base de datos relacional que represente esta información. Ejercicio 2: Se le ha encargado el desarrollo de una aplicación que se gestione la reserva de pasajes de avión en una agencia de viajes. Tras analizar el problema con los clientes se ha recopilado la siguiente lista de requisitos: La agencia de viajes desea mantener información de contacto relativa a cada cliente que ha utilizado los servicios de reserva de pasajes a través de la agencia. Cuando un cliente hace una reserva, compra un pasaje para trasladarse de una ciudad a otra. El pasaje debe incluir, aparte del nombre del viajero y las ciudades de origen y destino, su fecha de emisión y su precio total. Los pasajes pueden ser de distintas categorías (ejecutivo, turista…). Dado que no siempre hay vuelos directos entre dos ciudades, el trayecto realizado por el cliente puede estar formado por distintos tramos. Cada tramo corresponde a un vuelo concreto entre dos aeropuertos y viene definido por el código de vuelo, la fecha y la hora de salida. En algunas ocasiones, la agencia es capaz de reservar un asiento concreto dentro del avión. El código de cada vuelo está formado por el código de la compañía aérea y un número. Por ejemplo, el vuelo LAN-365 es el vuelo número 365 de la compañía LAN. Cada tiene un número determinado de asientos para cada categoría y cada categoría tiene asociada una tarifa diferente para un mismo vuelo. Los aeropuertos vienen identificados unívocamente por un código de tres letras (por ejemplo, GRX corresponde al aeropuerto de Granada). En el caso de los pasajes de ida y vuelta, lo único que tenemos que hacer es incluir los tramos que sean necesarios para realizar el recorrido completo. Diseñe una base de datos relacional para el problema planteando siguiendo los siguientes pasos: a) Identifique las entidades del modelo y los atributos correspondientes a cada una de estos, indicando explícitamente cuáles de esos atributos forman las claves primarias de las distintas entidades. b) Dibuje un esquema relacional a partir de las tablas y relaciones obtenidas en la pregunta anterior.