UNIVERSIDAD SALESIANA DE BOLIVIA CARRERA DE INGENIERIA DE SISTEMAS BASE DE DATOS I EJERCICIOS MODELO ENTIDAD RELACIÓN De los siguientes ejercicios realizar un diagrama entidad relación con la información relevante según el enunciado, describiendo brevemente cada entidad y enumerando los atributos (tanto de entidades como de relaciones). Marcar claramente los atributos clave 1) Una revista nueva que acaba de salir al mercado desea tener la información de sus suscriptores en una base de datos. Cada suscriptor realiza un contrato por un año (12 números) que puede comenzar en cualquier número. Los contratos se van renovando de año en año. Se desea un listado mensual de los lectores que les toca recibir la revista y de los que deben renovar la suscripción el mes que viene. 2) Una compañía de líneas aérea quiere construir una base de datos a la que se pueda acceder a través de ventanillas abiertas al público mediante terminales. En particular, interesa mantener información sobre los vuelos genéricos ( número de vuelo, ciudad de origen y ciudad de destino ) y sobre el estado de las reservas de plazas (número de plazas libres ). Todos los vuelos son diarios y sin escalas. En un día no puede haber dos vuelos con el mismo número. Puede haber más de un vuelo diario entre las mismas ciudades con diferente horario. Las consultas típicas serán: a) Dadas las ciudades de origen y destino, mostrar todos los vuelos entre ellas. b) Dado un número de vuelo y una fecha, listar el número de plazas libres. 3) Una empresa que se dedica al desarrollo de software, tiene una serie de departamentos que están especializados en diferentes áreas ( así tiene el departamento de animación gráfica, el de bases de datos, el de programación científica, ...). Dentro de cada área hay una serie de empleados con una determinada categoría (analista, programador, operador, ...). La empresa tiene en marcha una serie de proyectos de desarrollo. En cada proyecto pueden intervenir más de un departamento. Se quiere diseñar una base de datos para almacenar toda esta información, de manera que los programadores puedan introducir unos partes de trabajo, en donde especifiquen la fecha, las horas dedicadas, el proyecto en el que han trabajado y qué tarea han realizado ( programación en Pascal, análisis de la situación actual de una empresa, instalación de un producto, diseño de un modelo entidad-relación, ...). Una consulta muy importante para el gerente de la empresa es saber exactamente las horas dedicadas a cada proyecto desglosadas por departamentos. 4) Consideremos una universidad, con estudios formados por asignaturas. Una asignatura puede aparecer en diferentes estudios y en diferentes cursos. Supongamos que los alumnos se matriculan en una serie de asignaturas y que cada asignatura sólo la da un profesor. Además de toda esta información, queremos registrar en la base de datos todos los horarios de las asignaturas, con el aula, profesor, día y hora. Supongamos que cada alumno tiene una única calificación para cada asignatura de la que se matricula. - 1 - UNIVERSIDAD SALESIANA DE BOLIVIA CARRERA DE INGENIERIA DE SISTEMAS 5) BASE DE DATOS I El nuevo hospital de Palma va a ser el más moderno de Europa; por ello se requiere diseñar una base de datos que contenga información de los médicos y de los pacientes. Cada paciente tiene asignado un único médico de cabecera que debe tener acceso al historial clínico del paciente. Dicho historial debe registrar todas las enfermedades diagnosticadas; y de cada enfermedad, indicar el tratamiento seguido, las intervenciones realizadas y los análisis. Es interesante incorporar información de alergias o contraindicaciones que sufre cada paciente. 6) Un celler del Pla de Mallorca se dedica a producir, importar y distribuir vino. Como el negocio va bien i esto de los ordenadores parece que es la solución a todos los dolores de cabeza, han decidido comprarse uno. Junto con el ordenador compraron una contabilidad que ya tienen en marcha y ahora quieren informatizar el resto; pero lo más urgente es el control de clientes, pedidos y facturación. El funcionamiento de esta parte es el siguiente: tienen un conjunto de clientes, con todos sus datos particulares; entre los cuales destacan: el tipo de cliente ( si es mayorista o minorista ) y el descuento que se le aplica ( si es que tiene ). Estos clientes hacen una serie de pedidos, en los cuales hay líneas de pedidos para cada producto diferente que piden. De cada uno de estos pedidos se debe tener bien claro la fecha en la que se realizaron. Para cuestiones de existencias, puede ser que no se pueda servir un pedido entero. Si es así, se servirá únicamente la parte que se puede y el resto quedará pendiente de servir. Lo que sí debe estar completo es la línea de pedido; es decir, que nunca se divide una línea de pedido: o se sirve entera o se deja pendiente. De vez en cuando ( esta periodicidad depende o bien del cliente, que lo pide, o bien del propio celler, que considera que ya es hora de hacerlo ), se factura todo lo que se ha servido de un determinado cliente. Por esto una factura no tiene porque coincidir con un pedido determinado, sino que está formado por las líneas de pedido servidas hasta el momento. Se realiza la factura con los datos normales ( número de factura, fecha, tipo de pago, etc... ) y se guarda en la base de datos hasta que se cobra. Una vez que ya se tiene el dinero, toda la información asociada a dicha factura puede desaparecer de la base de datos. Los diferentes productos que vende el celler son por ejemplo: botellas de ¾ de litro de vino negro, rosado y blanco; garrafas de 5 litros de vino negro y rosado; y vino negro y rosado a granel. El problema surge si se sirve vino a granel, ya que éste se sirve en barriles. Estos barriles se llevan al cliente y éste se los queda hasta que los ha podido vaciar. El celler tiene unos 500 barriles, de los cuales siempre hay bastantes repartidos por los clientes. Quieren controlar que cliente tiene cada uno de los barriles y desde cuando lo tiene, ya que cuando lo devuelva le cobran un alquiler. - 2 - UNIVERSIDAD SALESIANA DE BOLIVIA CARRERA DE INGENIERIA DE SISTEMAS 7) BASE DE DATOS I Un científico chiflado nos ha encargado la ardua tarea de informatizar su caos. El verdadero problema es poner orden en su laboratorio, porque cuando le interesa saber los resultados de los experimentos realizados con un determinado elemento no es capaz de encontrarlo entre el maremágnum de papeles que hay en su laboratorio. Por suerte, nuestro amigo tiene a su cargo un equipo de investigadores algo más ordenados que él y siempre conservan una copia de todos los informes que redactan; cada uno de estos colaboradores suyos está especializado en un área, aunque en la práctica suelen trabajar en cualquier proyecto de investigación tanto si es de su área como si no. Lo habitual es que un proyecto de investigación esté liderado por una persona, la cual planifica el proyecto y determina una serie de objetivos a demostrar con el proyecto. Para ello se suelen llevar a cabo experimentos y son en estos experimentos donde participan aisladamente los colaboradores. Típicamente un proyecto consta de 3 ó 4 experimentos (aunque podrían ser más); y para cada experimento habitualmente se requieren varios científicos de múltiples áreas. En un experimento intervienen muchos elementos, aunque algunos sólo son secundarios. Lo ideal es que se pudiera definir el grado de importancia de cada elemento. El experiemento tiene una descripción, una fecha de realización y un resultado. Hasta aquí todo parece normal, pero nuestro amigo es muy original, y le gusta hablar de los papeles que interpreta cada investigador en un experimento. Suele haber un director del experimento, un asesor técnico, un responsable de la seguridad, un secretario (que redacta el informe), etc… Por tanto, en cada experimento tendremos una especie de reparto donde consta quien es el director, el asesor técnico, … Al final del proyecto se determinan qué objetivos se han cumplido y cuáles no. Todo ello aparece en el informe que redacta el líder del proyecto. Vuestro trabajo es diseñar un modelo de datos (diagrama entidad-relación) que recoja toda su problemática. Con dicho modelo de datos se tiene que poder responder a su pregunta: ¿Qué investigadores han participado en algún experimento donde intervenga el elemento “Plutonio X25 alterado según receta aleatoria H345” con un grado de importancia superior al 30%? Es de suponer que no lograremos poner orden en su laboratorio, pero si encuentra el ordenador, al menos sabrá a qué investigadores debe pedirle el informe del experimento. 8) LLIBRESA es una cadena de librerías que quiere informatizarse. Generalmente funciona como una librería normal; es decir, tienen una serie de libros en cada tienda; aparece un comprador anónimo y compra un libro. Les interesa poder registrar el estoc real e ideal para cada tienda ( esto último significa poder registrar los libros que idealmente debería haber en la tienda ) y periódicamente generar los pedidos - 3 - UNIVERSIDAD SALESIANA DE BOLIVIA CARRERA DE INGENIERIA DE SISTEMAS BASE DE DATOS I necesarios para reponer las existencias vendidas y tener de nuevo el estoc ideal. Evidentemente este estoc ideal puede modificarse puesto que, por ejemplo, los best-seller sólo los tendrán mientras estén de moda; después no vuelven a comprar más. Cuando un determinado libro no lo tienen en la tienda, deben poder consultar en que tiendas quedan unidades en estoc para poder informar al cliente dónde dirigirse para comprarlo. Cada libro lo suministra un único proveedor ( ya que estos proveedores son siempre directamente las editoriales ). La gestión de pedidos y albaranes no es preocupante. El sistema únicamente debe ser capaz de imprimir los pedidos para enviarlos a las editoriales; pero no interesa hacer un seguimiento posterior de estos pedido y subsiguientes albaranes. Una peculiaridad de esta librería es que periódicamente organiza subastas multitudinarias de libros. Con ello obtiene más beneficios ya que en unas ocasiones consigue liquidar existencias antiguas que no se venden normalmente; y en otras ocasiones vende libros muy cotizados por ser ediciones especiales. Para organizar la subasta, por un lado es necesario seleccionar los libros que van a participar; para ello se intenta escoger un catálogo de libros que abarque múltiples temas; será habitual que para esta tarea, se necesite consultar editoriales que en ocasiones anteriores nos han suministrado libros de temas i/o autores determinados, para ponerse en contacto con ellas. Para cada libro, se establece a priori el precio de salida en la subasta. Por otro lado, la organización de la subasta, también implica seleccionar un conjunto de clientes que les puede interesar la subasta; para ello no sólo se almacenarán los clientes que han participado en alguna subasta sino que será necesario tener los temas que más les interesan. De esta forma se escogerán los clientes que se adapten mejor al perfil de la subasta para enviarles una invitación. Durante la celebración de la subasta asistirán los clientes invitados previamente o no; ello quiere decir que se puede presentar un cliente que no ha asistido previamente a ninguna subasta. A cada participante de la subasta se le da un cartel con un número, de manera que cuando uno quiere licitar por un libro debe alzar el cartel y decir la cantidad. Esto implica controlar qué cliente tiene un determinado número. El sistema debe ser capaz de facturar al cliente que compra en una subasta todos los libros que ha comprado y realizar una liquidación de la subasta ( libros vendidos, precios de coste y precios de venta ). 9) Compañía de capacitación "Soy el administrador de una compañía de capacitación que provee cursos en técnicas de administración. Enseñamos muchos cursos, cada uno de los cuales tiene un código, un nombre y un precio. Introducción a Internet y Programación Java son dos de nuestros más populares cursos. Cursos se dictan entre uno a cuatro días. Un instructor puede enseñar varios cursos. Nosotros registramos el nombre y número de teléfono de - 4 - UNIVERSIDAD SALESIANA DE BOLIVIA CARRERA DE INGENIERIA DE SISTEMAS BASE DE DATOS I los profesores. Cada curso es enseñado por sólo un instructor. Creamos un curso y luego le asignamos un profesor. Los estudiantes pueden tomar varios cursos a la vez, y muchos de ellos lo hacen. También registramos el nombre y teléfono de cada estudiante. Algunos de nuestros estudiantes e instructores no nos dan sus números telefónicos." 10) Cadena de negocios “Mire, hace cinco años que Mamá y yo empezamos esta pequeña tienda de alimentos naturales, y ahora vea ¡tenemos cinco! ¡Y en tres estados diferentes! “Bueno, como se puede imaginar, se nos está haciendo un gran problema el controlar las cosas. Siempre ocurre que en una de las tiendas se acaba algún ítem, mientras que en la otra rebalsamos del mismo ítem. “¡Y los empleados!. Antes éramos Mamá y yo, Ahora tenemos otros seis, y ni siquiera podemos recordar quien trabaja donde. “Una cosa que definitivamente necesitamos saber es la cantidad disponible de cada ítem en cada tienda. La cantidad que se ha perdido también sería útil. También tenemos que imprimir una lista de precios con todos los ítems que cada tienda vende, para saber por cuanto venderlos - nos gusta mantener los precios iguales en todas las tiendas. “Tenemos que mantener un registro de los nombres y números de teléfono de los empleados, también, y necesitamos saber en que estado viven para poder calcular sus impuestos correctamente. (ejemplo de USA, con impuestos diferentes por estado)“y tenemos que mantener un registro del numero total de los diferentes ítems, el numero de tiendas en cada estado, el numero de empleados en cada tienda, y el numero total de empleados, para así poder imprimir todo esto en el informe anual FECHA DE PRESENTACIÓN : VIERNES 26 DE OCTUBRE PRACTICA POR: 2,5 Puntos para 3º parcial PRESENTAR EN GRUPOS DE 3 - 5 -