Diferència entre revisions de la pàgina «M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R»

De wikiserver
Dreceres ràpides: navegació, cerca
(Biblioteca v1)
(Catastro municipal)
 
(Hi ha 15 revisions intermèdies del mateix usuari que no es mostren)
Línia 34: Línia 34:
 
:*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.
 
:*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.
 
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.
 
==Catastro municipal==
 
 
Diseñad un esquema E/R que recoja la organización de un sistema de información sobre municipios, viviendas y personas teniendo en cuenta que:
 
 
:*Cada persona sólo puede habitar en una vivienda y residir en un municipio, pero puede ser propietaria de más de una vivienda.
 
 
:*Interesa también la interrelación de las personas con su cabeza de familia.
 
  
 
==Perrera municipal==
 
==Perrera municipal==
Línia 47: Línia 39:
 
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:
 
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.
+
:*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.
+
:*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.
 
:*Una persona puede tener más de un perro.
  
:*Un perro se encuentra albergado en una jaula determinada.
+
:*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.
 
:*En las jaulas pueden haber n perros.
Línia 62: Línia 54:
  
 
:*Un determinado cliente puede tener en un momento dado varias reservas
 
:*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.
 
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.
Línia 67: Línia 61:
 
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.
 
:*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.
+
:*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.
+
:*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.
 
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.
  
:*Las entidades cliente, coche y garaje tienen una clave alfanumérica que las identifica unívocamente.
+
:*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.
 
:*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.
 +
 +
==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.
 +
 +
==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.
 +
 +
==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).
 +
 +
==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.
  
 
==líneas de metro==
 
==líneas de metro==
Línia 81: Línia 146:
 
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:
 
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:
  
:*Una línea está compuesta por una serie de estaciones en un orden determinado, siendo muy importante recoger la información de este orden.
+
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.
  
:*Cada estación pertenece al menos a una línea, pudiendo pertenecer a varias.
+
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 puede tener varios accesos, pero consideramos que un acceso sólo puede pertenecer a una estación.
+
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 línea tiene asignados una serie de trenes, no pudiendo suceder que un tren esté asignado a más de una línea, pero sí que no esté asignado a ninguna (por ejemplo, si se encuentra en reparación)
+
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.
  
:*Algunas estaciones tienen asignadas cocheras, y cada tren tiene asignada una cochera.
+
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.
  
:*Un tren puede cambiar de cochera asignada, pero no quedar sin ella.
+
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.
  
:*Interesa conocer todos los accesos de cada línea.
+
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.
  
==Banco==
+
==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.
  
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:
+
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.
  
:*El banco tiene distintas sucursales que se identifican por un código.
+
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto.  
  
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código distinto para cada cuenta. Una cuenta corriente pertenece a uno o varios clientes. 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 el privilegio de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.
+
:*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.
  
:*Por otra parte, cada cliente, que se identifica por su DNI, puede tener varias cuentas y, por supuesto, unos privilegios distintos en cada una de ellas.
+
:*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.
  
:*Cada cuenta puede tener domiciliaciones asociadas con ella.
+
:*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.
  
:*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.
+
:*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.
  
 
==Agencia de viajes==
 
==Agencia de viajes==

Revisió de 15:53, 21 gen 2021

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.

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.

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).

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.

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 socios, 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.

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.

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.

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.

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.

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.

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).

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.

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.

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.

Agencia de viajes

Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:

  • Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.
  • Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.
  • Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.
  • Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.
  • Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)
  • Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles

Centro educativo

Se tiene que diseñar una base de datos para gestionar la docencia de un curso académico en un centro educativo para controlar las notas, matriculaciones, profesores, alumnos, etc. El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.

Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.

Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S. Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.

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.

La Facultad

Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.

La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.

De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.

Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.

De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.

Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.

Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.

La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.

Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.