Está en la página 1de 18

1 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el desarrollo de un sistema de información para una galería de
arte. Tras analizar el problema, hemos obtenido la siguiente lista de requisitos:
• El sistema ofrecerá información acerca de las distintas exposiciones que estén programadas
(título, descripción, fecha de inauguración y fecha de clausura).
• En cada exposición se expondrán obras de distintos artistas. Cada obra vendrá identificada por un
número de registro. El sistema informará acerca del título, artista, estilo y precio de salida de cada una
de las obras de arte expuestas en las exposiciones.
• Cada obra tiene un propietario, que suele ser el artista que la creó, aunque esto no es necesariamente
así.
• Las obras expuestas se pueden comprar haciéndole ofertas a sus propietarios. Al término de la
exposición, el propietario de una obra puede vender la obra a la persona que haya realizado la mejor
oferta.
NOTA: Es esencial que en la base de datos no se almacenen datos de forma redundante, para lo cual
hemos de tener en cuenta que una misma persona puede ser propietaria de una obra de arte y realizar
ofertas para comprar otras obras de arte. De hecho, incluso puede ser responsable de la creación de
alguna de las obras expuestas.
Diseñe una base de datos relacional para el problema planteado:
a) Identifique las entidades y los atributos correspondientes a cada una de las entidades, indicando
explícitamente cuáles serán las claves primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad.
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las entidades y
las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permita implementar nuestro modelo en
un sistema gestor de bases de datos relacionales, indicando las claves primarias de todas y cada una de
las tablas de nuestra base de datos.
2 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el diseño de una biblioteca digital. Para realizar nuestra tarea,
hemos de comenzar diseñando la base de datos que dará soporte a las distintas aplicaciones que
poesteriormente se irán implementando. En principio, la única información de la que disponemos es la
siguiente:
• Nuestra biblioteca digital ha de almacenar información bibliográfica (título, autor, edición,
ISBN...) de distintos títulos.
• Cada título de nuestra biblioteca digital se encuentra almacenado en una o varias URLs
alternativas.
• Además, cada título se encuentra catalogado: un título puede corresponder a una o más categorías
diferentes. Dichas categorías, por su parte, se encuentran organizadas de forma jerárquica (una
categoría puede tener varias subcategorías, si bien sólo puede estar englobada por una supercategoría).
• Los usuarios del sistema han de identificarse para poder utilizar nuestra biblioteca digital, que
utilizará las técnicas más avanzadas de protección de datos.
• Al estilo de algunas librerías de Internet como Amazon, los usuarios del sistema podrán evaluar y
escribir comentarios acerca de los títulos albergados en la biblioteca. La evaluación se hará clasificando
los títulos de 1 a 5 estrellas en función de las preferencias del usuario y el conjunto de las evaluaciones
realizadas por los distintos usuarios servirá para recomendar unos títulos frente a otros.
Diseñar una base de datos relacional que nos permita almacenar toda la información relativa a nuestra
biblioteca digital:
a) Identificar las entidades de nuestro modelo y los atributos correspondientes a cada una de tales
entidades.
b) Analizar las relaciones existentes entre las distintas entidades y determinar su cardinalidad (uno a
uno, uno a muchos, muchos a muchos).
c) Dibujar un diagrama entidad/relación que represente el esquema lógico correspondiente al modelo
de datos definido por las entidades y relaciones obtenidas en los apartados anteriores.
d) A partir del diagrama, obtener el conjunto de tablas que nos permitirá implementar nuestro modelo
en un sistema gestor de bases de datos relacionales.
3 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el desarrollo de una aplicación que se encargue de gestionar la
reserva de boletos de avión en una agencia de viajes. Tras analizar el problema con nuestros clientes
hemos recopilado la siguiente lista de requisitos:
· La agencia de viajes desea mantener información de contacto relativa a cada cliente que ha utilizado
los servicios de reserva de boletos a través de la agencia.
· Cuando un cliente hace una reserva, compra un boleto para trasladarse de una ciudad a otra.
El boleto ha de incluir, aparte del nombre del viajero y las ciudades de origen y destino, su fecha de
emisión y su precio total.
· Los boletos pueden ser de distintas categorías (business, turista…).
· Dado que no siempre hay vuelos directos entre dos ciudades, el trayecto realizado por el cliente puede
estar formado por distintos tramos. Cada tramo corresponde a un vuelo concreto entre dos aeropuertos
y viene definido por el código de vuelo, la fecha y la hora de salida. En algunas ocasiones, la agencia es
capaz de reservar un asiento concreto dentro del avión.
· El código de cada vuelo está formado por el código de la compañía aérea y un número. Por ejemplo,
el vuelo IB-365 es el vuelo número 365 de la compañía Iberia.
· Cada vuelo oferta un número determinado de plazas para cada categoría y cada categoría tiene
asociada una tarifa diferente para un mismo vuelo.
· Los aeropuertos vienen identificados unívocamente por un código de tres letras (por ejemplo, GRX
corresponde al aeropuerto de Granada).
· En el caso de los boletos de ida y vuelta, lo único que tenemos que hacer es incluir los tramos que
sean necesarios para realizar el recorrido completo.
Diseñe una base de datos relacional para el problema planteando siguiendo los siguientes pasos:
a) Identifique las entidades de nuestro modelo y los atributos correspondientes a cada una de tales
entidades, indicando explícitamente cuáles de esos atributos forman las claves primarias de las distintas
entidades.
b) Analice las relaciones existentes entre las distintas entidades y determinar su cardinalidad (uno a
uno, uno a muchos, muchos a muchos). Cuando resulte necesario, especificar los atributos que puedan
corresponder a las relaciones obtenidas.
c) Dibuje un diagrama entidad/relación que represente el esquema lógico correspondiente al modelo de
datos definido por las entidades y relaciones obtenidas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permitirá implementar nuestro modelo
en un sistema gestor de bases de datos relacionales, indicando las claves primarias de cada una de las
tablas.
4 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el desarrollo de una aplicación que se encargue de gestionar los
ensayos realizados en un laboratorio de control de calidad y emitir los informes pertinentes. Para
realizar nuestra tarea, hemos de comenzar diseñando la base de datos que dará soporte a nuestra
aplicación.
REQUISITOS:
• Nuestro laboratorio se encarga de hacerle controles de calidad a distintos productos. En concreto, la
función del laboratorio consiste en realizar el control de calidad de muestras tomadas de un lote
concreto del producto analizado.
• En control de calidad viene avalado por la realización de uno o varios ensayos (experimentos de
laboratorio que se realizan expresamente sobre muestras del producto para certificar la calidad del lote
analizado).
• Cada ensayo se realiza sobre una muestra del lote analizado del producto, la cual viene identificada
por un código asignado por el jefe de laboratorio y, en ocasiones, puede reutilizarse para distintos
ensayos.
• Cada ensayo toma una serie de medidas de la muestra analizada. Dichas medidas serán las que
aparezcan en el informe final de control de calidad.
• Cuando los ensayos demuestren que el producto cumple con las exigencias de calidad establecidas
por ley, nuestra aplicación se encargará de emitir un certificado que garantice la calidad del producto.
Dicho certificado sólo tiene validez para el lote concreto analizado y deberá ir firmado por el director
de laboratorio para que tenga validez.
• Cada ensayo de los realizados en el laboratorio es de un tipo concreto (especificado por la normativa
vigente) y su tipo determina cuáles son las condiciones mínimas exigibles a los resultados obtenidos en
el laboratorio para poder emitir el certificado de calidad.
Diseñe una base de datos relacional para el problema planteando siguiendo los siguientes pasos:
a) Identifique las entidades de nuestro modelo y los atributos correspondientes a cada una de
tales entidades, indicando explícitamente cuáles de esos atributos forman las claves
primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determinar su cardinalidad
(uno a uno, uno a muchos, muchos a muchos). Cuando resulte necesario, especificar los
atributos que puedan corresponder a las relaciones obtenidas.
c) Dibuje un diagrama entidad/relación que represente el esquema lógico correspondiente al modelo de
datos definido por las entidades y relaciones obtenidas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permitirá implementar nuestro modelo
en un sistema gestor de bases de datos relacionales, indicando las claves primarias de cada una de las
tablas.
5 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el desarrollo de una aplicación que se encargue de gestionar la
flota de autobuses de una empresa de transporte urbano. El objetivo de la aplicación es analizar el
funcionamiento de las distintas líneas de autobús urbano para decidir cómo se podrían modificar dichas
líneas y prestar un mejor servicio al ciudadano. Para comparar distintas alternativas, no sólo hemos de
tener en cuenta los beneficios que las modificaciones podrían suponer, sino también los costos
asociados que pueden conllevar. Tras analizar el problema, hemos obtenido la siguiente lista de
requisitos:
• La compañía tiene una flota de autobuses de distintas características. Según el modelo de
autobús, éste tiene mayor o menor capacidad y su consumo de combustible es diferente.
• Para cada autobús se ha de mantener un parte de incidencias en el que queden registradas las
revisiones y reparaciones a las que ha sido sometido. En el parte han de figurar fecha, costo y
descripción, tanto de las revisiones y reparaciones.
• Cada línea de autobús consta de una serie de paradas. Las paradas están identificadas por el
nombre de la calle donde están situadas y un número (p.ej. Gran Vía 3).
• Cada día, los autobuses realizan varias veces los recorridos marcados por las distintas líneas, para las
cuales existe un horario oficial (el cual, desgraciadamente, no suele cumplirse).
• En los autobuses se instalarán los dispositivos necesarios que permitan contar el número de viajeros
que suben y bajan en cada parada, así como controlar el cumplimiento de los horarios.
Diseñe una base de datos relacional para el problema planteado:
a) Identifique las entidades y los atributos correspondientes a cada una de las entidades, indicando
explícitamente cuáles serán las claves primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad.
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las entidades y
las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permita implementar nuestro modelo en
un sistema gestor de bases de datos relacionales, indicando las claves primarias de todas y cada una de
las tablas de nuestra base de datos.
6 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el desarrollo de una aplicación que se encargue de gestionar
reservas de boletos de tren. Tras analizar el problema, hemos obtenido la siguiente lista de requisitos:
• RENFE tiene una serie de trenes que hacen rutas fijas todos los días. Los trenes se identifican por el
código asociado a su locomotora y tienen una capacidad máxima de pasajeros que viene determinada
por el número y tipo de sus vagones.
• Las rutas realizadas por los trenes están compuestas por tramos que conectan ciudades. Los tramos se
identifican por las ciudades que conectan y la hora de salida de la ciudad origen. Además, para poder
automatizar la realización de reservas, también se mantiene información acerca de la duración del
trayecto asociado a cada tramo.
• Los pasajeros hacen sus reservas para ir de una ciudad a otra a través de un sistema informatizado que
les ofrece distintas rutas alternativas. Cada reserva tiene asociado un localizador único, una fecha de
emisión, una ciudad de origen y una ciudad de destino.
• El trayecto asociado a la reserva de un pasajero está compuesto por un conjunto de tramos, que
corresponden a los tramos efectuados diariamente por los ferrocarriles de RENFE. Para cada tramo, el
viajero tiene reservado un asiento que viene determinado el número del vagón en el convoy, la fila del
asiento en el vagón y una letra que identifica la posición del asiento dentro de la fila.
• Obviamente, cuando un viajero efectúa su reserva, puede que todo el trayecto no se realice en el
mismo tren. Esto es, el pasajero puede que tenga que hacer transbordos.
Ejemplo:
Para viajar de D.F. a Cd. Juarez, el viajero hace una reserva de un boleto que incluye un ligar para el
TALGO D.F. - Guadalajara y otra plaza para el tren Intercity Guadalajara-Cd. Juarez.
Diseñe una base de datos relacional para el problema planteado:
a) Identifique las entidades y los atributos correspondientes a cada una de las entidades, indicando
explícitamente cuáles serán las claves primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad.
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las entidades y
las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permita implementar nuestro modelo en
un sistema gestor de bases de datos relacionales, indicando las claves primarias de todas y cada una de
las tablas de nuestra base de datos.
7 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el diseño de un sistema de recuperación de información (SRI)


mediante el que se pueda acceder a una base de datos documental. Tras analizar detenidamente el
problema, enumeramos los requisitos que ha de cumplir el SRI:
• Hemos de mantener un registro de documentos, cada uno de los cuales viene identificado por un
número de registro.
• Todos los documentos tienen título e incluyen una URL mediante la que se puede acceder al
documento en sí.
• Los documentos aparecen indexados en la base de datos en función de los términos (palabras) que
aparecen en ellos.
• En la base de datos se ha de mantener la frecuencia de cada término en cada documento.
• Para facilitar la actualización del índice, junto con los datos de cada documento, se almacena el
tamaño en bytes del documento, la fecha de última actualización del documento en el índice y el valor
de una función hash (checksum) que se utilizará para comprobar si el documento actual es el que ya
está indexado en la base de datos.
• Aparte de poder realizar búsquedas por palabras clave (al estilo de un buscador como Google o
Altavista), el sistema de recuperación de información también ha de permitir al usuario navegar por la
base de datos documental. Para ello, se han de mantener los documentos clasificados por temas (al
estilo de un directorio como Yahoo! o dmoz.org).
• Los temas se organizan de la forma tradicional formando una taxonomía (un tema puede tener varios
subtemas y ha de estar situado en una posición concreta dentro de la jerarquía de temas).
• Además, también se mantienen relaciones entre temas afines para facilitar la navegación del
usuario por la base de datos documental (por ejemplo, los algoritmos de generación de números
pseudoaleatorios usados en simulación están obviamente relacionados con la Estadística, aunque
probablemente no aparezcan dentro del tema “Estadística” en nuestra clasificación oficial por temas).
Por cuestiones de eficiencia, la base de datos del sistema de recuperación de información almacenará
de forma redundante los siguientes datos (por ejemplo, para permitir la ordenación de los resultados
obtenidos para una consulta):
• Para cada término, el número de documentos distintos en los que aparece y el número total de veces
que aparece en todos los documentos de la base de datos.
• Para cada documento, su tamaño (en palabras), el número de palabras diferentes que incluye y la
frecuencia de la palabra que más se repite en el documento.
Diseñe una base de datos relacional para el problema planteado anteriormente:
a) Identifique las entidades y los atributos correspondientes a cada una de las entidades, indicando
explícitamente cuáles serán las claves primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad.
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las entidades y
las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permita implementar nuestro modelo en
un sistema gestor de bases de datos relacionales, indicando las claves primarias
de todas y cada una de las tablas de nuestra base de datos.
8 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el desarrollo de un sistema de información geográfica (SIG). El


objetivo del sistema es recopilar información acerca del uso del suelo en el municipio de Cuautitlán.
Tras analizar el problema, hemos obtenido la siguiente lista de requisitos:
• El SIG almacenará datos acerca de la división administrativa del terreno en parcelas, tal como figuran
en el catastro (coordenadas, superficie, altitud...).
• A parte de las parcelas en sí, nos interesa almacenar datos geológicos acerca de la composición de los
suelos de la parcela. Ya que una parcela puede tener zonas con distintos tipos de suelos, utilizaremos
una capa diferente en nuestro GIS para almacenar la información geológica acerca del suelo.
NOTA: Para ver qué zonas de terreno pertenecen a cada parcela utilizaremos la capacidad del GIS de
realizar consultas a partir de las coordenadas de las distintas áreas.
• Nuestro sistema deberá mantener información acerca de los propietarios de las distintas parcelas,
teniendo en cuenta que una parcela puede tener varios propietarios.
• Los propietarios de una parcela, identificados por su CURP, pueden ser personas físicas (con nombre,
apellidos, RFC, fecha de nacimiento, dirección y teléfono de contacto) o entidades jurídicas (con
nombre, dirección de la sede social y responsable administrativo, que es una persona).
• Las parcelas pertenecen a municipios. Cada municipio tiene un nombre único dentro de su estado,
aunque distintos estados pueden tener municipios con el mismo nombre.
• También registraremos datos climáticos en nuestro SIG, para lo cual mediremos las temperaturas
(máxima y mínima) y precipitaciones diarias para cada municipio, ya que no disponemos de los medios
necesarios para medir diariamente dichos datos en todas las parcelas en que se divide la zona
geográfica abarcada por nuestro GIS.
Diseñe una base de datos relacional para el problema planteado:
a) Identifique las entidades y los atributos correspondientes a cada una de las entidades, indicando
explícitamente cuáles serán las claves primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad.
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las entidades y
las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permita implementar nuestro modelo en
un sistema gestor de bases de datos relacionales, indicando las claves primarias de todas y cada una de
las tablas de nuestra base de datos.
9 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el diseño de una aplicación para la gestión de un videoclub. Tras
analizar detenidamente el problema, enumeramos los datos que nuestra aplicación debe gestionar
adecuadamente:
• Hemos de mantener un registro de los clientes del videoclub (RFC, nombre, apellidos, dirección y
teléfono).
• Nuestro videoclub oferta un amplio catálogo de películas (título, año, director, reparto...).
• Cada película la suministra una distribuidora (nombre, dirección, url...).
• De cada película, el videoclub dispone de una o varias copias para alquilárselas a sus clientes. Cada
copia viene identificada por un número de registro.
• Nuestra aplicación gestiona los alquileres de las copias de las películas. De cada alquiler se
almacenan, al menos, su fecha, la fecha de devolución de la copia y el importe que el cliente ha de
pagar.
• Cada película tiene asociada una tarifa (p.ej. los alquileres de últimas novedades, títulos clásicos y
películas infantiles tienen precios diferentes). Para calcular el importe de un alquiler, se utiliza la
siguiente fórmula: total = base + extra*penalización, donde extra es el número de días de más que el
cliente se queda la copia de la película sin devolverla. En otras palabras, cada tarifa tiene un precio base
(en pesos), un período de tiempo (expresado en días) en el que el cliente puede quedarse su copia
alquilada sin costo adicional y una penalización para quien no devuelve las copias que alquila (en pesos
por día extra).
Diseñe una base de datos relacional para el problema planteado en la página anterior:
a) Identifique las entidades y los atributos correspondientes a cada una de las entidades, indicando
explícitamente cuáles serán las claves primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad.
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las entidades y
las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permita implementar nuestro modelo en
un sistema gestor de bases de datos relacionales, indicando las claves primarias de todas y cada una de
las tablas de nuestra base de datos.
10 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el diseño de una aplicación para facilitar la gestión de los
proyectos de una empresa. Tras analizar detenidamente el problema, averiguamos que nuestra
aplicación debe cumplir los siguientes requisitos:
• Se ha de mantener un registro de los proyectos de la empresa (nombre en clave, denominación
comercial, fecha de inicio, fecha de finalización, estado actual...)
• Nuestra aplicación gestionará los recursos humanos de la empresa y le permitirá al usuario
visualizar la ficha de cada empleado (RFC, nombre, apellidos, dirección, teléfono, correo
electrónico, fecha de contratación...).
• Cada proyecto tiene un promotor, que ha de ser uno de los empleados de la empresa y que ejercerá de
jefe de proyecto durante la duración del mismo.
• Cada proyecto se descompone en una serie de tareas (descripción, tipo, fecha de inicio estimada,
fecha de inicio real, duración estimada, duración real...).
• Los empleados de la empresa se adscriben a las distintas tareas en las que se descomponen los
proyectos que en cada momento estén en marcha.
• Asociados a cada tarea se genera una serie de documentos (p.ej. el documento de especificación de
requisitos, el código fuente de un componente...). Cada documento viene caracterizado por su código
(único dentro del ámbito del proyecto al que corresponde), una descripción y su tipo.
• Nuestro sistema también se encarga de mantener almacenadas las distintas versiones de los
documentos que se van generando a lo largo del proyecto. A cada versión de cada documento, que se
almacena digitalizada en nuestro sistema, se le asocia también una descripción y una fecha.
Diseñe una base de datos relacional para el problema planteado:
a) Identifique las entidades y los atributos correspondientes a cada una de las entidades, indicando
explícitamente cuáles serán las claves primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad.
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las entidades y
las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permita implementar nuestro modelo en
un sistema gestor de bases de datos relacionales
11 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el diseño de una aplicación para gestionar la liga ABCD de
baloncesto. Tras analizar detenidamente el problema, averiguamos que nuestra aplicación debe cumplir
los siguientes requisitos:
• En la liga participan 18 equipos.
• Cada uno de los equipos tiene su sede en un pabellón con una capacidad que determina el número
máximo de asistentes a un encuentro.
• Cada equipo tiene una plantilla con una serie de jugadores (numero, nombre, estatura, posición...).
Para simplificar, suponemos que un jugador, una vez que juega con un equipo, no puede competir con
otro equipo distinto durante la misma temporada.
• Todos los equipos se enfrentan entre sí en una liga a doble vuelta de 34 jornadas. Esto es, cada equipo
juega 34 partidos (17 como local y 17 como visitante).
• Nuestro sistema ha de encargarse de mantener el calendario de encuentros de cada jornada, los
resultados de los partidos y las estadísticas de los distintos jugadores para cada partido (minutos
jugados, puntos, rebotes, asistencias, faltas personales...).
Diseñe una base de datos relacional para el problema planteado:
a) Identifique las entidades y los atributos correspondientes a cada una de las entidades identificadas,
indicando explícitamente cuáles serán las claves primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad.
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las entidades y
las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permita implementar nuestro diseño en
una base de datos relacional.
12 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el diseño de una aplicación que sirva de soporte a la
organización de una reunión científica (congreso o seminario). Tras analizar detenidamente el
problema, averiguamos que nuestra aplicación debe cumplir los siguientes requisitos:
• Los congresistas (asistentes al congreso) se registran para poder asistir a las sesiones del congreso. Al
registrarse, han de indicar su nombre y apellidos, la institución a la que pertenecen, una dirección de
correo electrónico válida y, opcionalmente, un número de teléfono móvil en el que recibirá
notificaciones vía SMS.
• En el congreso se presentan trabajos remitidos por los propios congresistas. Cada trabajo tiene un
título, un “abstract” (un resumen del trabajo presentado) y una lista de autores asociada. NOTA: Al
menos uno de los autores debe estar registrado como asistente al congreso.
• En cada sesión del congreso se presenta un subconjunto de los trabajos aceptados para su
publicación. Cada sesión tiene asignada una sala donde se realizan las presentaciones en el día y la hora
establecidos por los organizadores del congreso. Cada trabajo se presenta en una única sesión.
• Cada trabajo de los presentados en una sesión es defendido por un ponente, que ha de ser uno de los
coautores del trabajo y debe aparecer registrado como asistente al congreso.
• Cada sesión es moderada por el “chairman” de la sesión, que también es un asistente al
congreso (usualmente, miembro del comité de organización del mismo).
Diseñe una base de datos para el problema planteado:
a) Identifique los conjuntos de entidades y los atributos correspondientes a cada uno de los conjuntos
de entidades, indicando explícitamente cuáles se seleccionarán como claves primarias de los distintos
conjuntos de entidades.
b) Analice las relaciones existentes entre los distintos conjuntos de entidades, determine su cardinalidad
e identifique los atributos propios de las relaciones (si los hubiera).
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por los conjuntos de
entidades y las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama E/R, obtenga un conjunto de tablas que nos permita implementar nuestro
modelo de datos en una base de datos relacional.
13 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el diseño de una aplicación que sirva de soporte al
funcionamiento de una red social online (una comunidad de usuarios con intereses comunes que
deciden ponerse en contacto e intercambiar opiniones e información acerca de sus temas de interés).
Tras analizar detenidamente el problema, averiguamos que nuestra aplicación debe cumplir los
siguientes requisitos:
• Los usuarios de nuestra comunidad virtual se pueden registrar gratuitamente en nuestro sistema. Una
vez registrados, para acceder al mismo han de usar su nombre de usuario o ‘nick’ y una contraseña
que ellos mismos establecen al registrarse. El usuario también ha de indicar una dirección de correo
electrónico válida y, opcionalmente, un número de teléfono móvil en el que recibirá notificaciones vía
SMS. El perfil de un usuario puede incluir, opcionalmente, la URL de su página web personal, su lugar
de residencia (ciudad y país), su fecha de nacimiento, una fotografía (o icono) y una breve descripción
en la que el usuario podrá especificar sus aficiones o preferencias.
• Los usuarios podrán subscribirse a distintos grupos, siendo cada grupo de usuarios gestionado por uno
o varios moderadores que pueden decidir a quién aceptan y a quién rechazan en el grupo. Cualquier
usuario puede crear nuevos grupos y solicitar su acceso a grupos ya existentes. Alguno de los
moderadores deberá aceptar o rechazar las solicitudes de acceso. En cualquier momento, el
moderador puede expulsar a alguien del grupo y el usuario puede darse de baja del grupo.
• Los grupos estarán organizados jerárquicamente y se podrán dividir en subgrupos (p.ej. El grupo
“reseñas” puede estar dividido en “reseñas de libros”, “críticas de películas” y “comentarios sobre
videojuegos”).
• Los usuarios del sistema pueden enviar artículos a uno o varios grupos (textos con información de
interés para los miembros del grupo, como reseñas de libros, críticas de productos, tutoriales técnicos
de diversas materias, etc.). Cada artículo tendrá un identificador único, una fecha de creación, un
usuario responsable (el creador del artículo), un resumen (como el “subject” de un e-mail) y un texto
(el artículo en sí). También tendrá, para cada grupo al que ha sido enviado, un estado editorial asociado
(“enviado”, “aprobado” o “rechazado”) que será controlado por los moderadores de cada grupo (para
que puedan actuar como tales si fuese necesario).
• Una vez publicado un artículo, los demás usuarios de los grupos en los que se publique el artículo
podrán escribir comentarios sobre él. Cada comentario tendrá un firmante (un usuario del sistema), una
fecha, un texto y un estado editorial asociado.
• Los usuarios del sistema podrán enviar mensajes privados a otros usuarios del sistema (el sistema,
automáticamente, notificará por e-mail al recipiente del mensaje).
• Los usuarios también podrán publicar noticias de interés general que aparecerán en la página de
bienvenida del sistema. Las noticias, que estarán moderadas por los administradores del sistema,
llevarán una fecha asociada y caducarán automáticamente pasada esta fecha.
El sistema incluirá un servicio automático de notificaciones, por lo que deberá mantener información
de contacto de cada usuario registrado (p.ej. e-mail o teléfono móvil para envío de SMSs), si bien esta
información será privada y no se compartirá con los demás miembros de la comunidad salvo que así lo
desee el usuario.
• Cada usuario podrá mantener una lista de contactos personales (otros usuarios con los que nuestro
usuario quiere mantenerse en contacto). El sistema enviará notificaciones a un usuario cada vez que
alguien de su lista de contactos envíe algún artículo o escriba un comentario.
• Un usuario también podrá añadir artículos concretos a su lista de marcadores (para poder acceder en
cualquier momento a los artículos que considere especialmente relevantes).
Diseñe una base de datos para el problema planteado:
a) Identifique los conjuntos de entidades y los atributos correspondientes a cada uno de los conjuntos
de entidades, indicando explícitamente cuáles se seleccionarán como claves primarias de los distintos
conjuntos de entidades.
b) Analice las relaciones existentes entre los distintos conjuntos de entidades, determine su cardinalidad
e identifique los atributos propios de las relaciones (si los hubiera).
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por los conjuntos de
entidades y las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama E/R, obtenga un conjunto de tablas que nos permita implementar nuestro
modelo de datos en una base de datos relacional.
e) Suponga ahora que se nos encarga construir un data warehouse para analizar el funcionamiento de
las redes sociales que se crean en nuestro sistema. ¿Qué cubos de datos crearía y con qué finalidad?
Indique explícitamente las dimensiones y medidas asociadas a cada uno de los cubos de datos
propuestos.
14 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el diseño de una aplicación que sirva de soporte a un sistema de
compraventa de artículos mediante subastas a través de Internet (tipo eBay). Tras analizar
detenidamente el problema, averiguamos que nuestra aplicación debe cumplir los siguientes requisitos:
• Para poder realizar una operación de compraventa, los usuarios deben registrarse en el sistema
rellenando un formulario en el que han de especificar sus datos personales (nombre, apellidos,
dirección, e-mail).
• Cuando un usuario desea poner en venta un artículo, ha de rellenar otro formulario en el que
especifica los datos del artículo que se pone en venta (nombre y descripción), su estado (nuevo,
usado...), su precio de salida y la fecha límite de la subasta.
• Para facilitar la búsqueda de artículos en venta, los artículos se organizan en categorías. Cada
categoría de artículos puede, a su vez, englobar otras categorías. Por ejemplo, la categoría “libros”
puede incluir a categorías como “ficción” [obras literarias], “no ficción”, “primeras ediciones” o “libros
firmados” y un libro concreto puede pertenecer a varias categorías (p.ej. un ejemplar de la primera
edición de una novela firmado por el autor).
• Los usuarios pujan por los artículos que desean comprar ofreciendo un precio mayor al ya ofrecido
por otros usuarios. El sistema registra el momento en que se realiza cada puja, la identidad del postor y
el precio que éste ofrece por el artículo subastado.
• Finalmente, un artículo se adjudica al usuario que, llegada la fecha límite de la subasta, haya
realizado una puja mayor. Si la puja mayor no alcanza el precio de salida del artículo, el propietario del
artículo tiene la posibilidad de declarar nula la subasta. Si no es así, tiene la obligación de vender el
artículo al precio ofrecido por el mejor postor.
Diseñe una base de datos para el problema planteado:
a) Identifique los conjuntos de entidades y los atributos correspondientes a cada uno de los conjuntos
de entidades, indicando explícitamente qué atributos se utilizarán como claves primarias de los
distintos conjuntos de entidades identificados.
b) Analice las relaciones existentes entre los distintos conjuntos de entidades, determine su cardinalidad
e identifique los atributos propios de las relaciones (si los hubiera).
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por los conjuntos de
entidades y las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama E/R, obtenga un conjunto de tablas que nos permita implementar nuestro
modelo de datos en una base de datos relacional.
15 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el diseño de una base de datos que sirva de soporte a un servicio
web de búsqueda de empleo (tipo infojobs.net o monster.es). Tras analizar detenidamente el problema,
averiguamos que nuestro sistema debe cumplir los siguientes requisitos:
• Los usuarios de nuestro sistema pueden ser demandantes de empleo (candidatos) o clientes
corporativos (empresas) que usarán nuestro sistema para insertar ofertas de trabajo y realizar procesos
de selección.
• Una vez registrados, los candidatos introducirán sus datos de contacto (nombre, dirección,
teléfono, e-mail) y podrán detallar su curriculum.
• El curriculum de un candidato incluirá su experiencia profesional (puesto, empresa, descripción de
responsabilidades, fecha de inicio y fecha de finalización de cada una de las actividades profesionales
que haya desempeñado) y su formación académica (título, especialidad, institución y fecha, para cada
una de sus titulaciones oficiales), así como otros méritos que el candidato desee hacer constar.
• Por su parte, las empresas serán las que podrán introducir nuevas ofertas de empleo en nuestro
sistema.
• Entre los datos de cada oferta de empleo se incluirán una descripción del puesto vacante, el
número de vacantes que se ha de cubrir, la fecha de la oferta, su ubicación (población, provincia y país)
y los requisitos del puesto, así como la duración del contrato, el horario de la jornada laboral y el
salario asociado al puesto.
• Los requisitos asociados a una oferta de trabajo pueden ser requisitos mínimos que han de cumplir los
candidatos (nivel de estudios, experiencia previa, idiomas, etc.) o, simplemente, requisitos deseables
para el puesto. Obviamente, pueden ser varios para una misma oferta.
• Los candidatos, al ver una oferta de empleo de su interés, se inscribirán en ella para poder
participar el proceso de selección correspondiente.
• Las ofertas de empleo se clasificarán por categorías profesionales y estas categorías se
organizarán de forma jerárquica para facilitar la búsqueda de ofertas por parte de los demandantes de
empleo (p.ej. “Business Intelligence” como subcategoría de “Sistemas de Información” o “Estadística”
como especialidad de “Matemáticas”).
• Los candidatos podrán subscribirse a un servicio de notificaciones por correo electrónico de las
ofertas de empleo correspondientes a las categorías que sean de su interés.
Diseñe una base de datos para el problema planteado:
a) Identifique los conjuntos de entidades y los atributos correspondientes a cada uno de los conjuntos
de entidades, indicando explícitamente qué atributos se utilizarán como claves primarias.
b) Analice las relaciones existentes entre los distintos conjuntos de entidades, determine su cardinalidad
e identifique los atributos propios de las relaciones (si los hubiera).
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por los conjuntos de
entidades y las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama E/R, obtenga un conjunto de tablas que nos permita implementar nuestro
modelo de datos en una base de datos relacional.
16 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el diseño de una base de datos que sirva de soporte al sistema de
gestión de las nóminas de una empresa. Tras analizar detenidamente el problema, averiguamos que
nuestro sistema debe cumplir los siguientes requisitos:
• La empresa tiene un conjunto de empleados trabajando con contrato (un empleado puede firmar
varios contratos a lo largo de su carrera profesional).
• Para cada empleado, el sistema almacena sus datos personales (RFC, CURP, nombre, apellidos,
teléfono, dirección) y el número de su cuenta corriente para realizar las transferencias
correspondientes a las nóminas.
• Cada contrato firmado por un empleado tiene una fecha de alta, una fecha de baja (nula si el
contrato es indefinido), una categoría asociada y un puesto de destino.
• El sueldo base de un empleado depende de su categoría.
• En función del puesto de destino del empleado, el empleado puede recibir uno o varios
complementos, que se sumarán al sueldo base del empleado.
• Además, por su antigüedad en la empresa, el empleado cobrará trienios (cuyo importe depende de la
categoría de su contrato actual).
• Por último, el empleado también cobrará complementos por los cargos que desempeñe (durante la
duración de su ocupación del cargo, que no tiene por qué coincidir con la de su contrato).
• De las percepciones salariales indicadas en los puntos anteriores, la nómina de cada empleado
incluirá una serie de deducciones (p.ej. aportaciones a la I.M.S.S., desempleo, formación profesional e
I.S.R.).
• Algunas de estas deducciones se calculan mediante un porcentaje fijo (p.ej. 4.7% de contingencias
comunes), mientras que otras se calculan por cuotas.
• El sistema debe almacenar todas las nóminas emitidas mensualmente e incluir automáticamente tanto
los distintos conceptos correspondientes a percepciones salariales del empleado como los distintos tipos
de deducciones a los que está sujeta su nómina.
17 Problema de diseño de bases de datos y sistema de información.

Supongamos que se nos ha encargado el diseño de un sistema para la gestión de proyectos de una
empresa, su planificación temporal y el uso que hacen de recursos de distintos tipos. Tras analizar
detenidamente el problema, enumeramos los requisitos que ha de cumplir el sistema:
• Hemos de mantener un registro de proyectos, cada uno de los cuales tiene un nombre en clave que lo
identifica, un título, una descripción, una fecha de inicio y una fecha de finalización estimada.
• Cada proyecto se descompone en un conjunto de tareas, cada una de las cuales tiene un nombre y
una duración estimada, así como una fecha de inicio prevista.
• Cada tarea, a su vez, también puede descomponerse en un conjunto de tareas (en tal caso, su
duración estimada será la suma de las duraciones estimadas de las tareas que la componen).
• Cada tarea de un proyecto hace uso de una serie de recursos, que pueden utilizarse a tiempo
completo o a tiempo parcial. La utilización de un recurso por parte de una tarea se expresa mediante un
porcentaje (%).
• Los recursos pueden compartirse entre distintas tareas siempre y cuando no se supere la
disponibilidad de un recurso en un momento determinado, que también se especifica como un tanto por
ciento (p.ej. 200% indica dos unidades disponibles del recurso).
• Los empleados de la empresa son un tipo más de los recursos que pueden ser requeridos para la
realización de una tarea (obviamente, su disponibilidad nunca puede superar el 100%).
• Cada proyecto tiene un jefe de proyecto, que ha de ser un empleado de la empresa, y cada tarea
tiene también un responsable, que puede o no coincidir con el jefe del proyecto al que corresponde
(NOTA: el responsable de una tarea siempre será alguien del personal de la empresa).
• Algunas tareas tienen dependencias (esto es, para comenzar la realización de una tarea han de
haberse completado previamente las tareas de las que depende) y estas dependencias han de
identificarse para poder elaborar la planificación temporal de un proyecto concreto, que también
tendrá en cuenta el uso de recursos requerido por cada tarea (para evitar sobreasignaciones).
Diseñe una base de datos para el problema planteado:
a) Identifique las entidades y los atributos correspondientes a cada una de las entidades, indicando
explícitamente cuáles serán las claves primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad, así como
sus atributos específicos cuando los haya.
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las entidades y
las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permitan implementar nuestro modelo
E/R en una base de datos relacional, indicando las claves primarias de todas y cada una de las tablas de
nuestra base de datos.

También podría gustarte