Guía de ejercicios # 2: Modelo Relacional Versión del 03/09/200 Introducción a las bases de datos UQ En todos los ejercicios que se pide aplicar el Modelo Relacional, se trata de construir un esquema lógico relacional, utilizando las reglas de transformación y especificando: claves primarias (PK), claves foráneas (FK), y las restricciones (supuestos semánticos) pertinentes en lenguaje natural.. Modelo Entidad-Relación incompleto Se desea mantener una base de datos para una cadena de farmacias distribuida en diferentes ciudades. Cada farmacia tiene sus empleados propios. Por cada ciudad existe un único farmacéutico; esto es, en las ciudades en las que hubiere más de una farmacia, el mismo farmacéutico estará afectado a todas las farmacias de esa ciudad. De cada empleado queremos saber la fecha de ingreso y las enfermedades que tuvo (alcanza con el nombre de cada enfermedad). Cada farmacia tiene a su vez su stock de cada medicamento que vende. De cada medicamento se conocen la o las monodrogas que lo componen, la cantidad de cada monodroga, su presentación (por ejemplo ampollas de 5 unidades, jarabe de 00ml,inyecciones por 0 unidades, etc.), el laboratorio que lo comercializa, y su acción terapéutica (analgésico, antibiótico, etc.); se identifican por nombre y presentación. Por cada medicamento se mantienen: su precio (que es el mismo para todas las farmacias), y la cantidad en existencia en cada farmacia. El sistema deberá permitir consultar la base de datos de diferentes alternativas para medicamentos compuestos por una monodroga, medicamentos de un laboratorio, medicamentos con el mismo nombre y distinta presentación, entre otras. El siguiente modelo ER supuestamente debería representar lo anterior, sin embargo está incompleto, porque le faltan todos los atributos.
Ciudad Está Farmacia Contiene Monodroga M M Esta afectado Vende Medicamento Tiene M Farmacéutico Fabricado Accion terapéutica Laboratorio Obtenga el esquema del Modelo Relacional correspondiente a este problema, siguiendo la idea del modelado de cada característica de un Modelo Entidad-Relación y definiendo los atributos necesarios. 2. Modelo Entidad-Relación a Modelo Relacional En cada caso, indicar (en lenguaje natural cuando sea necesario) como se representó cada elemento del Modelo Entidad-Relación: cada entidad, cada relación, cada atributo compuesto, cada atributo multivaluado. 2. Traducir los esquemas de los ejercicios 2.2 y 2.4 de la guía sobre Modelo Entidad-Relación al Modelo Relacional. 2.2 Traducir el esquema del ejercicio 3.3 de la guía sobre Modelo Entidad-Relación al Modelo Relacional. 2.3 Modelar, usando Modelo Relacional, los ejercicios 4.2 y 4.4 de la guía sobre Modelo Entidad-Relación. 3. Interpretación de esquemas Representar el escenario descripto por los siguiente esquemas Modelo Entidad-Relación mediante el Modelo Relacional. Si hace falta especificar supuestos semánticos. 2
3.. Biblioteca hace serefiere referencia esreferido género Titulo Libro reseñas texto fecha Tiene Edición ISB año idioma revista Escribe Pertenece nombre numero Autor nacionalidad año nacimiento Copia f_prestamo f_devolucion Pide prestado DI Usuario nombre apellido email Traducir este modelo al Modelo Relacional, y responder las siguientes preguntas a. El modelo tiene una restricción respecto de los préstamos que tal vez no es deseable; o sea, hay una situación respecto de los préstamos que es razonable querer representar y este modelo no permite. Describir esta restricción, e indicar, tanto para el Modelo Entidad-Relación como para el Modelo Relacional, qué agregar y/o modificar para evitarla. b. Qué problema de consistencia aparecería si Autor fuera un atributo de Libro, en lugar de ser una entidad separada? c. Cómo representarías en el modelo la relación de maestro-discípulo entre autores? Qué relación tiene esto con la decisión de cómo modelar los autores discutida en la pregunta anterior? d. Qué quiere decir, explicado en castellano, que la participación de las dos entidades en la relación Escribe es total? Indicar cuál es el cambio en los supuestos semánticos que provocaría que la participación del lado del autor cambiara de total a parcial. e. Qué diferencia hay entre las traducciones al modelo relacional de las relaciones Tiene y Escribe? A qué se debe esta diferencia? 3
3.2. Modelo genérico R3 rol2 atclave atrib rol atclave EntidadB R EntidadA R2 atcomp comp comp2 atsimple atcomp comp comp2 atclave atrib R4 EntidadC atmultiv Traducir este modelo al Modelo Relacional. 4. Modelo Relacional a partir de especificaciones 4. Construir un esquema usando Modelo Entidad-Relación y, a partir de él, el Modelo Relacional que refleje toda la información necesaria para almacenar la información relativa a algunos aspectos del campeonato mundial de fútbol considerando los supuestos semánticos siguientes: Un jugador pertenece a un único equipo y no hay dos jugadores con el mismo nombre. Un jugador puede actuar en varios puestos distintos, pero en un determinado partido sólo puede jugar en un puesto. En cada partido intervienen varios árbitros. Un árbitro puede realizar una función en un partido y otra distinta en otro partido. Es obligatorio en todo momento que un jugador pertenezca a un equipo determinado y no podrá cambiar de equipo a lo largo del mundial. 4.2 Diseñar el esquema del Modelo Entidad-Relación para un entorno de apoyo a la programación, y luego pasar al Modelo Relacional. En este entorno los programadores escriben programas en determinados lenguajes de programación. Cada programa es escrito por un programador, puede llamar a otros programas y puede ser utilizado por determinados usuarios. Tanto los programadores como los usuarios se identifican por un nombre de usuario. Los programadores, además, tienen cada uno un código numérico de 5 cifras que los identifica. El nombre de cada programa se compone de: un nombre propio descriptivo, una extensión, y el código del programador que lo escribió. Para cada programa puede haber varias versiones, de cada una nos interesa su número de versión, la fecha de instalación, y una descripción breve; algunos programas interactúan con una o varias bases de datos. Cada base de datos mantiene datos almacenados en forma de relaciones; cada relación incluye varios atributos y una clave primaria que está compuesta 4
por algunos de esos atributos. Cada base de datos la define un administrador de base de datos, que es un programador especializado en la administración de datos. 4.3 Diseñar el esquema del Modelo Entidad-Relación para el sistema de delivery de La Flauta Dulce, y luego pasar al Modelo Relacional. La panadería y confitería La Flauta Dulce está organizando el delivery a sus clientes. Cada repartidor tiene asignada una zona (puede haber más de un repartidor por zona). Los repartidores tienen asignados clientes; cada cliente puede ser atendido or más de un repartidor, o por ninguno. De cada repartidor queremos saber la cilindrada, marca, modelo y velocidad máxima de su moto, y los horarios (día de la semana, rango de horas) en los que trabaja. De cada cliente queremos saber la dirección, el nombre, y la fecha de nacimiento. De cada zona, el nombre y el tamaño en km 2. En caso de que alguna información incluida en el enunciado no pueda ser descripta en un Modelo Entidad-Relación, adjuntar al modelo su explicación en lenguaje natural. 5. Trabajo a partir de una BD en modelo relacional 5. Tenemos una BD cuyo esquema consta de estos esquemas de relación: factura <fact-sucursal, fact-numero, cliente-cod, fecha> recibo <rec-sucursal, rec-numero, cliente-cod, fecha> producto <prod-nombre, stkminimo> precioproducto <prod-nombre, fecha-desde, fecha-hasta, precio> cliente <cliente-cod, nombre, prov-nombre> provincia <prov-nombre, alicuotaingresosbrutos> itemfactura <fact-sucursal, fact-numero, prod-nombre, cantidad> itemrecibo <rec-sucursal, rec-numero, fact-sucursal, fact-numero, importe> con las siguientes FK: cliente-cod en factura es FK a cliente. cliente-cod en recibo es FK a cliente. prod-nombre en precioproducto es FK a producto. fact-sucursal y fact-numero en itemfactura son FK a factura. rec-sucursal y rec-numero en itemrecibo son FK a recibo. fact-sucursal y fact-numero en itemfactura son FK a factura. Tenemos una instancia de BD que corresponde a este esquema, cuyas instancias de tabla para provincia, producto y cliente son las siguientes: provincia prov-nombre alicuotaingrbrutos La Rioja 2 San Juan 3 San Luis 3.5 5
producto prod-nombre stkminimo Susik 20 Menganol 30 Bolimas 28 Pertanim Sapiko 3 cliente cliente-cod nombre prov-nombre 323 Pepe La Rioja 325 Jorge San Juan 328 Anita La Rioja 342 Ursula San Juan Se pide a. Construir un Modelo Entidad-Relación correspondiente al modelo relacional planteado. b. Si unimos la siguiente instancia de la tabla factura a las tres descriptas anteriormente, aparecen en factura las cuatro anomalías de integridad, al menos una vez cada una. Indicar todas las anomalías que encuentre. factura fact-sucursal fact-numero cliente-cod fecha null null 348 Catamarca 222 325 5/03/2008 2 222 80 5/03/2008 222 2/08/200 84 225 323 null 226 323 8/04/2004 c. Para cada una de las cuatro anomalías de integridad, describir una posible fila de la tabla cliente que, de agregarse a las que están en la instancia planteada, generarían la anomalía. d. Para cada una de las cuatro anomalías de integridad, describir una posible operación (agregar, modificar, eliminar fila/s) de la tabla producto que, de hacerse sobre la instancia planteada, generarían la anomalía. En un caso la operación no puede ser de agregar fila/s, cuál de las cuatro anomalías es esta, y por qué no se puede generar agregando filas en esta tabla. 6