M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R

De wikiserver
La revisió el 14:48, 25 gen 2023 per Mfernandez (Discussió | contribucions) (Catastro municipal)
Dreceres ràpides: navegació, cerca

Gabinete abogados

Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.

Solució Gabinete abogados

Zoo

Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.

Solució Zoo

Club náutico

Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).

Solució Club náutic

Departamentos de una empresa

Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.

Solució Departaments empresa

Biblioteca v1

Diseñad un esquema E/R para gestionar los datos de una biblioteca:

  • Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.
  • La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.
  • La biblioteca también dispone de algunos libros reconocidos de autores anònimos.
  • De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.
  • Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.
Solució Biblioteca v1

Academia

Diseñad un esquema E/R para gestionar los datos de una academia:

  • Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.
  • Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.
  • Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.
  • Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.
Solució Academia

Perrera municipal

Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:

  • Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.
  • Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.
  • Una persona puede tener más de un perro.
  • Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.
  • En las jaulas pueden haber n perros.
Solució Perrera

Alquiler automóviles

Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:

  • Un determinado cliente puede tener en un momento dado varias reservas
  • De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono.
  • Una reserva la realiza un único cliente, pero puede involucrar a varios coches.
  • Es importante registrar la fecha de comienzo de la reserva y la de terminación.
  • Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.
  • Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.
  • En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.
  • Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.
  • Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.
  • Cada cliente puede ser avalado por otro cliente de la empresa.
Solució Alquiler coches

Empresa de comidas

Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:

  • El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil
  • Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.
  • Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.
  • La mayoría de trabajadores no son ni pinches ni cocineros/as
  • En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre
  • De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.
  • Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.
  • Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.
  • Necesitamos también saber qué cocineros son capaces de preparar cada plato.
  • Cada pinche está a cargo de un cocinero o cocinera.
  • La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.
Solució Empresa comidas

Colegio

Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:

La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.

Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.

Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.

Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.

Solució Colegio

Banco

Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:

  • El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.
  • Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.
  • Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.
  • Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.
  • Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.
  • Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).
Solució Banco

Catastro municipal

Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:

  • Viviendas unifamiliares o casas en las que sólo habita una familia y,
  • Bloques de pisos en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.

Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.

Deben considerarse los siguientes supuestos:

  • Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.
  • Cada vivienda tiene uno y sólo un propietario.
  • Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.
  • Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.
  • En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).
  • En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario.
  • Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.
Solució Catastro municipal

líneas de metro

Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:

Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.

Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.

Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.

Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.

Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.

Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.

En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.

Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de llegada del tren al andén y la fecha y hora de salida.

Solució Línies metro

Empresa de material informático

Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:

  • Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.
  • Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.
  • Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.
  • Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.
  • Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.
  • Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.
  • Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.
  • Un empleado trabaja en una única sección.
  • Una sección se identifica por un id y un nombre de sección.
  • En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.

Libreria OnLine

Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:

  • De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.
  • Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.
  • De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.
  • Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.
  • La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto.
  • Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.
  • La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.
  • Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.
  • Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.


Spots

Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.

En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.

Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.

Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.

De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.

Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.

Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.

Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.

Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.