Este documento presenta 7 problemas relacionados con el modelado de entidades, atributos y relaciones para diferentes situaciones. Se pide identificar las entidades principales, sus atributos y relaciones para cada problema, así como distinguir entre información personal, organizacional y de departamentos. También se solicita realizar el modelado en una herramienta como Access o MySQL.
1. INSTRUCCIONES: REALIZAR EL MODELADO DE ENTIDADES, ATRIBUTOS Y
LAS RELACIONES (NO ES NECESARIO INCLUIR LA CARDINALIDAD) ENTRE
ENTIDADES ENCONTRADAS EN LOS SIGUINENTES PROBLEMAS.
ADICIONALMENTE DISTINGUIR ENTRE LA INFORMACIÓN PERSONAL,
ORGANIZACIONAL Y DE UN DEPARTAMENTO.
LOS PROBLEMAS EN LOS QUE NO SE ALCANCEN A DEFINIR 3 ENTIDADES Y 5
ATRIBUTOS POR ENTIDAD, FAVOR DE INCORPORARLAS Y JUSTIFICAR SU
INCORPORACIÓN.
REALIZAR EL MODELADO EN UNA HERRAMIENTA DE SOFTWARE COMO MS
ACCESS O MYSQL WORKBENCH SI DESEA USAR ALGUNA OTRA FAVOR DE
REPORTARME. NO ES NECESARIO QUE EL MODELADO EN LA HERRAMIENTA
INCLUYA LAS RELACIONES ENTRE ENTIDADES.
Problema 1: Artículos y encargos
Una base de datos para una pequeña empresa debe contener información
acerca de clientes, artículos y pedidos. Hasta el momento se registran los siguientes
datos en documentos varios:
Para cada cliente: Número de cliente (único), Direcciones de envío (varias por
cliente), Saldo, Límite de crédito (depende del cliente, pero en ningún caso
debe superar los 3.000.000 pesos), Descuento.
Para cada artículo: Número de artículo (único), Fábricas que lo distribuyen,
Existencias de ese artículo en cada fábrica, Descripción del artículo.
Para cada pedido: Cada pedido tiene una cabecera y el cuerpo del pedido. La
cabecera está formada por el número de cliente, dirección de envío y fecha del
pedido. El cuerpo del pedido son varias líneas, en cada línea se especifican el
número del artículo pedido y la cantidad.
Además, se ha determinado que se debe almacenar la información de las fábricas. Sin
embargo, dado el uso de distribuidores, se usará: Número de la fábrica (único) y
Teléfono de contacto. Y se desean ver cuántos artículos (en total) provee la fábrica.
También, por información estratégica, se podría incluir información de fábricas
alternativas respecto de las que ya fabrican artículos para esta empresa.
Nota: Una dirección se entenderá como Nº, Calle, Comuna y Ciudad. Una fecha
incluye hora.
Problema 2: Habitantes y municipios
Supongamos el siguiente universo de discurso sobre municipios, viviendas y
personas. Cada persona solo puede habitar en una vivienda y estar empadronada en
un municipio pero puede ser propietaria de varias viviendas. Nos interesa también
conocer las personas que dependen de la Cabeza de Familia (C.F.)
Problema 3: Cursos y formación
El departamento de formación de una empresa desea construir una base de
datos para planificar y gestionar la información de sus empleados. La empresa
organiza cursos internos de formación de los que se desea conocer el código de
curso, el nombre, la descripción el número de horas de duración y el costo del curso.
Página 1 de 23
2. Un curso puede tener como prerrequisito haber realizado otros previamente y a
su ves la realización de un curso puede ser prerrequisito de otros puede serlo de
forma obligatoria o solo recomendable.
Un mismo curso tiene diferentes ediciones, es decir se imparten en diferentes
lugares fechas y con diferentes horarios (intensivo de mañana o de tarde). En una
misma fecha de inicio solo puede impartirse una edición de un curso.
Los cursos se imparten por personal de la propia empresa
De los empleados se desea almacenar su código de empleado y apellidos
dirección teléfono, NIF (Numero de Identifica), fecha de nacimiento, nacionalidad,
sexo, firma y salario así como si esta o no capacitado para impartir cursos.
Un mismo empleado puede ser docente en una edición de un curso y alumno
de otra edición, pero nunca puede ser ambas cosas a la vez (en una misma edición de
curso o lo imparte o lo recibe).
Problema 04: Campeonato de ajedrez
El club de ajedrez de villa tortas de arriba ha sido encargado por la Federación
Internacional de Ajedrez de la organización de los próximos campeonatos mundiales
que se celebran el la mencionada localidad. Por este motivo desea llevar a la base de
datos toda la gestión relativa a participantes, alojamientos y partidas teniendo en
cuenta que:
En el campeonato participan jugadores y árbitros; de ambos se requiere
conocer el número de asociado, nombre, dirección, teléfono de contacto y
campeonatos en los que han participado (como jugador o como árbitro). De los
jugadores se precisa el nivel de juego en una escala del 1 al 10.
Ningún árbitro puede participar como jugador.
Los países envían al campeonato un conjunto de jugadores y árbitros, aunque
no todos los países envían participantes. Todo jugador y arbitro es enviado es enviado
por un único país. Un país puede ser representado por otro país.
Cada país se identifica por un número correlativo según su orden alfabético e
interesa conocer además de su nombre, el número de clubes de ajedrez existentes en
el mismo.
Cada partida se identifica por un número correlativo (Cód_P), la juegan dos
jugadores y la arbitra un árbitro. Interesa registrar las partidas que juegan cada jugador
y el color (blancas o negras) con el que juega. Ha de tenerse en cuenta que un arbitro
no puede arbitrar jugadores enviados por el mismo país que le ha enviado a él.
Todo participante participa en al menos una partida.
Tanto jugadores como árbitros se alojan en algunos de los hoteles que se
desarrollan las partidas, se desea conocer en que hotel y en que fechas se ha alojado
cada uno de los participantes. Los participantes pueden no permanecer en Villatortas
durante todo el campeonato, sino acudir cuando tienen que jugar en alguna partida
alojándose en el mismo o distinto hotel. De cada hotel se desea conocer el nombre la
dirección y el número de teléfono.
Página 2 de 23
3. El campeonato se desarrolla a lo largo de una serie de jornadas (año, mes, día)
y cada partida tiene lugar en una de las jornadas aunque no tengan partidas todas las
jornadas.
Problema 05: Energía Eléctrica
Se pretende llevar acabo un control sobre la energía eléctrica que se produce y
consume en un determinado país. Se parte de las siguientes hipótesis.
Existen productos básicos de electricidad que se identifican por un nombre, de
los cuales interesa su producción media, producción máxima y fecha de entrada en
funcionamiento. Estos productores básicos son de una de las siguientes categorías:
Hidroeléctrica, solar, nuclear o térmica. De una central hidroeléctrica o presa nos
interesa saber su ocupación, capacidad máxima y numero de turbinas. De una central
solar nos interesa saber la superficie total de paneles solares, la media anual de horas
de sol y tipo (fotovoltaica o termodinámica). De una central nuclear, nos interesa saber
el numero de reactores que posee el volumen de plutonio consumido y el de residuos
nucleares que produce. De una central térmica, nos interesa saber el número de
hornos que posee, el volumen de carbón consumido y el volumen de su emisión de
gases.
Por motivo de seguridad nacional interesa controlar el plutonio de que se
provee una central nuclear, este control se requiere a la cantidad de plutonio que
compra a cada uno de sus posibles suministradores, (nombre y país), y que porta un
determinado transportista (nombre y matricula), ha de tenerse en cuenta que el mismo
suministrador puede vender plutonio a distintas centrales nucleares y que cada porte,
(un único porte por comprar), puede realizarlo un transportista diferente.
Cada día, los productores entregan la energía producida a una o varias
estaciones primarias las cuales pueden recibir diariamente una cantidad distinta de
energía de cada uno de estos productores. Los productores entregan siempre el total
de su producción. Las estaciones primarias se identifican por su nombre y tienen un
numero de transformadores de baja a alta tensión y son cabecera de una o varias
redes de distribución.
Una red de distribución se identifica por un número de red y solo puede tener
una estación primaria como cabecera. La propiedad de una red puede ser compartida
por varias compañías eléctricas, a cada compañía eléctrica se le identifica por su
nombre.
La energía sobrante en una de las redes puede enviarse a otra red. Se registra
el volumen de energía intercambiada en otras redes.
Una red esta compuesta por una serie de líneas, cada línea se identifica por un
número secuencial dentro del número de red y tiene una determinada longitud. La
menor de las líneas posibles abastecerá al menos a dos subestaciones.
Una subestación es abastecida solo por una línea y distribuye a una o varias
zonas de servicio, a tales efectos, las provincias (código y nombre), se encuentran
divididas en tales zonas de servicio aunque no puede haber zonas de servicio que
pertenezcan a más de una provincia. Cada zona de servicio puede ser atendida por
más de una subestación. En cada zona de servicio se desea registrar el consumo
medio y el número de consumidores finales de cada una de las siguientes categorías:
Particulares, Empresas e Instituciones.
Página 3 de 23
4. Problema 06: Conflictos bélicos
Una organización internacional pretende realizar un seguimiento de los
conflictos bélicos que se producen en todo el mundo. Para ellos creara una BD que
responderá al siguiente análisis:
Se entiende por conflicto cualquier lucha armada que afecte a uno o varios
países y en el cual se produzcan muertos y/o heridos. Todo conflicto se identificara por
un nombre que habitualmente hará referencia ala zona o causa que provoca el
conflicto, aunque dado que este nombre puede cambiar con el paso del tiempo, dentro
de la BD cada conflicto se identificara mediante un código numérico sin significado
alguno. Para cada conflicto se desea recoger los países a que afecta asi como el
número de muertos y heridos contabilizados hasta el momento.
Los conflictos pueden ser de distintos tipos según la causa que lo ha originado,
clasificándose, a lo sumo en cuatro grupos: territoriales, religiosos, económicos o
raciales en cada uno de estos grupos se recogerán diversos datos. En los conflictos
territoriales se recogerán las regiones afectadas, en los religiosos las religiones
afectadas, en los económicos las materias primas disputadas y en los raciales las
etnias enfrentadas.
En los conflictos intervienen diversos grupos armados (al menos dos) y diversa
organizaciones mediadoras (podría no haber ninguno). Los mismos grupos armados y
organizaciones mediadoras pueden intervenir en diferentes conflictos. Tanto los
grupos armados como las organizaciones mediadoras podrán entrar y salir del
conflicto, en ambos casos se recogerá tanto la fecha de incorporación como la fecha
de salida. Temporalmente, tanto un grupo armado como una organización mediadora
podrían no intervenir en conflicto alguno.
De cada grupo armado se recoge el código que se le asigna y un nombre.
Cada grupo armado dispone de al menos una división y es liderado por al menos un
líder político. Las divisiones de que dispone un grupo armado se enumeran
consecutivamente y se registra el numero de barcos, tanques, aviones y hombres de
que dispone, así mismo se recoge el numero de bajas que ha tenido. Para los grupos
armados se recoge le numero de bajas como suma de las bajas producidas en todas
sus divisiones.
Los traficantes de armas suministran diferentes tipos de arma a los grupos
armados. De cada tipo de armas se recoge un nombre y un indicador de su capacidad
destructiva de cada traficante se recoge un nombre, los diferentes tipos de arma que
puede suministrar y cantidad de armas de cada uno de los tipos de arma que podría
suministrar. Se mantiene el numero total de armas de cada uno de los diferentes tipos
de armas suministrado por cada traficante a cada grupo armado.
Los líderes políticos se identifican por su nombre y por el código de grupo
armado que lideran. Además se recoge una descripción textual de los apoyos que este
posee.
Cada división la pueden dirigir conjuntamente un máximo de tres jefes militares,
aunque cada jefe militar no dirige mas de una división. A cada jefe militar se le
identifica por un código además se recoge el rango que este posee, y dado que un jefe
militar no actúa por iniciativa propia sino que siempre obedece las ordenes de un único
Página 4 de 23
5. líder político de entre aquellos que lideran al grupo armado al que el jefe pertenece, se
registrara el líder político al que obedece.
De las organizaciones mediadoras se recogerá su código, su nombre, su tipo
(gubernamental, no gubernamental o internacional), la organización de que depende
(una como máximo), el numero de personas que mantiene desplegadas en cada
conflicto y el tipo de ayuda que presenta en cada conflicto que será de uno y solo uno
de los tres tipos siguientes, medica, diplomática o presencial.
Con diversos fines, los líderes políticos dialogan con las organizaciones; se
desea recoger explícitamente esta información. Así para cada líder se recogerán
aquellas organizaciones con que dialoga y viceversa.
Problema 07: Gestora inmobiliaria
Una determinada gestora inmobiliaria desea informatizar algunos procesos de
su negocio, para lo cual nos solicita que diseñemos una base de datos que responda a
las necesidades que tienen de cara al tratamiento y almacenamiento de la información
de la que disponen. La mayoría de esta información que pretenden gestionar gira en
torno a los constructores, clientes y las viviendas que venden/compran.
Lo primero a tener en cuenta es el control sobre las empresas constructoras
que son las que ejecutan las obras. Los datos a tener en cuenta de estas empresas
son, CIF de la empresa, domicilio, número de empleados y área en la que trabaja.
Por otra parte, estas empresas pueden agruparse de dos en dos, componiendo
una UTE (Unión Temporal de Empresas), de tal manera que el desarrollo de la obra es
compartido. Evidentemente, las empresas o UTEs podrán ejecutar tantas obras como
consideren necesario para sus intereses, pero una promoción es llevada a cabo
exclusivamente por una empresa o UTE. Una UTE solamente es válida para una obra
en concreto, con lo que se necesita conocer, además, la fecha de composición. La
gestora inmobiliaria está interesada en tener controlados todos los aspectos
señalados, tales como qué empresa es la constructora de una obra o las UTES que se
forman y que obras se ejecutan en esta modalidad.
En cuanto a las promociones (o sea, obras realizadas por una constructora), la
gestora desea almacenar un código único por promoción, el número de hectáreas
afectadas, el coste global de la promoción, la fecha de inicio, la fecha final prevista y el
estado en que se encuentra ("proyecto", "reclamaciones" "obra" ó "finalizada").
Las promociones se dividen en dos tipos excluyentes: las que se refieren a la
construcción de edificios, en cuyo caso interesa conocer la dirección, el número de
plantas, el número de viviendas por planta y el número de plazas de garaje.
El otro tipo de promoción es el que se refiere a viviendas unifamiliares, en cuyo
caso se desea conocer la dirección completa, la superficie de la parcela y la superficie
construida.
En el caso de los edificios, además se desea disponer de información de cada
una de las viviendas o locales comerciales que lo componen. Esta información es la
superficie construida, la superficie útil, el número de la vivienda (piso y letra), si es
vivienda o local comercial y si da a la fachada del edificio o no.
La gestora, que va a controlar las ventas de todos estos elementos, necesita
además, para cada uno de los elementos "a la venta" (viviendas en un edificio o
locales y viviendas unifamiliares), su precio de venta al público.
Página 5 de 23
6. Para llevar a cabo el control de estas ventas, la gestora decide almacenar los
datos de los clientes y de los créditos que solicitan para hacer frente al pago de las
mismas. De los clientes se necesita el NIF, nombre, apellidos y profesión y de los
créditos solicitados se necesita la fecha de solicitud, el importe global, el importe que
resta por pagar y el importe de la letra mensual que se le pasará al cliente. Dadas las
características de la financiación establecida, es absolutamente obligatorio para los
clientes que deseen realizar una compra el solicitar un crédito para ello, aunque este
crédito no tiene por qué cubrir el global del coste de la vivienda/local/unifamiliar. Hay
que indicar que tanto los créditos como las viviendas deben figurar a nombre,
exclusivamente, de un cliente, que será el responsable fiscal.
Evidentemente, un cliente puede comprar más de una vivienda o local (en
cualquier modalidad), pero los créditos se conceden por cada una de ellas, de tal
forma que no se puede solicitar un crédito para más de una vivienda, así que se desea
conocer qué crédito pertenece a la compra de qué vivienda, ya que es el aval
pertinente. Por otra parte, la gestora desea conocer el importe en metálico que el
cliente aporta como entrada en el momento de la compra.
A pesar de que la modalidad específica de crédito no permite la amortización
parcial voluntaria que no se corresponda con las letras mensuales, sí es posible que el
cliente solicite, en un momento dado, el retraso en el pago de alguna letra concreta
debido a dificultades económicas. Es por esto por lo que, una vez concedida el
retraso, la gestora desea registrar aquellas letras mensuales que están pendientes de
pago, indicando la fecha, importe y motivo del aplazamiento.
Por último, hay que indicar que la gestora, cuando vende un local comercial,
debe registrar el tipo de negocio que se va a instalar en dicho local (por ejemplo:
"restaurante", "supermercado", "cafetería", etc), almacenando el tipo de negocio, si
cuenta con los permisos necesarios, el horario de apertura y cierre y el número de
empleados que va a tener.
Curiosamente, la gestora realiza un descuento del 10% en el importe del local
si el comprador ha comprado, además, algún tipo de vivienda en sus promociones.
Como parte de este control, la gestora desea registrar si el cliente que compra el local
se asocia, para el negocio (que no para la compra, que debe figurar a nombre de uno
solo), con otro de sus clientes (que haya comprado otra vivienda).
Problema 08: Fitness
La cadena de centros de fitness “Salud” quiere crear una base de datos para su
gestión.
La información que contiene se describe a continuación.
El grupo tiene socios que pueden utilizar los servicios o instalaciones de
cualquiera de los centros. Los socios se identifican por su número de socio, nombre y
dirección.
Del total de servicios que tiene la cadena, cada centro puede disponer de
algunos de ellos, pero no necesariamente de todos. Uno de los servicios son las
clases colectivas de fitness. Este servicio es gratuito. Es decir, está incluido en la
cuota mensual de socio. Cada centro tiene un horario semanal de clases. La duración
de las clases es de una hora, desde las 10 de la mañana hasta las 10 de la noche. En
el horario que se publica en cada centro se identifica la disciplina y el profesor que
imparte la clase. No todas las disciplinas se imparten en todos los centros y un
profesor puede dar clase en más de un centro y de más de una disciplina, aunque sólo
Página 6 de 23
7. de aquellas en las que están registrados como especialistas (estas constan en la ficha
del profesor, además de su nombre y su código).
Los socios también pueden apuntarse a clases de entrenamiento personal con
los mismos profesores, en horas que éstos tengan libres y durante tres horas a la
semana. Cada disciplina tiene una tarifa mensual correspondiente.
Semanalmente se publica también un cuadro de sustituciones (profesores que
sustituyen a otros en las clases colectivas) y que son vigentes para la semana en
curso.
El grupo organiza también torneos de distintos deportes a los que se pueden
apuntar los socios. Estos torneos se celebran durante 1 semana en un horario
determinado (se publica al convocar el torneo). El torneo se celebra únicamente en las
instalaciones de un centro (cada vez en uno). Los torneos tienen un número límite de
participantes y cuando se completa ese límite, no se admiten más inscripciones.
Puede haber más de un torneo celebrándose simultáneamente, pero no en el mismo
centro. Cada torneo tiene una cuota de inscripción.
La diferencia entre las disciplinas (como por ejemplo aerobic, musculación etc.)
y los deportes (padel, tenis, beisbol etc.), es que las primeras se realizan todas en
salas comunes y no hay que reservar hora, excepto para las clases colectivas que hay
que apuntarse y en los deportes hay que reservar la pista correspondiente a una hora
y además se pueden organizar torneos.
Algunos centros tienen también una tienda con diferentes productos (que no
tienen que estar disponibles en todas las tiendas). Por cada producto tenemos su
código, descripción, centros en los que se vende, unidades disponibles y precio.
Mensualmente las tiendas establecen una promoción, en la cual seleccionan un
producto que se vende a mitad de precio (cada tienda de cada centro puede elegir un
producto diferente en un mes determinado)
Problema 09: Administración de fincas
Una firma de abogados dedicada a la administración de fincas desea tener una
base de datos para facilitar la gestión de la información de sus clientes, es decir, de las
distintas comunidades de vecinos que administra. La información que debe contener la
BD concierne a los aspectos que se describen a continuación.
La firma tiene varios abogados y cada uno de ellos ejerce de administrador de
una o más comunidades de vecinos, por lo que cobra a cada uno de ellas unos
honorarios anuales. Una comunidad de vecinos es gestionada por un único
administrador (Nombre, DNI y nº de colegiado). Las funciones de un administrador,
sobre las que en este caso interesa guardar información, consisten en llevar la
contabilidad de la comunidad, gestionando los recibos que pagan los vecinos
mensualmente, así como los pagos a las distintas compañías que proporcionan algún
servicio a la comunidad (limpieza, ascensores, seguridad, luz, etc.).
De las empresas que tienen contratadas las distintas comunidades de vecinos
(por ejemplo, Iberdrola, Unión Fenosa, OTIS, etc.) se guarda su nombre, CIF,
dirección, teléfono y una persona de contacto. Además interesa tener estas compañías
agrupadas en distintos sectores (luz, seguridad, ascensores, etc.).
De cada comunidad de vecinos gestionada por la firma de abogados interesa
almacenar un código identificador, su nombre, calle, código postal y población. Cada
comunidad consta de una serie de propiedades que pueden ser de tres tipos (vivienda
particular, local comercial y oficina).Cada propiedad se caracteriza por un número de
portal, planta y letra, un nombre y apellidos del propietario con su dirección completa
(que puede ser ésta u otra) y un teléfono de contacto, un porcentaje de participación
Página 7 de 23
8. en los gastos de comunidad así como los datos de la cuenta bancaria en el que el
propietario desea se le domicilie el pago de los recibos.
Si el propietario no habita en su propiedad entonces se necesitan sus datos
(nombre, apellidos, dirección y teléfonos de contacto), en caso de que esté habitada la
propiedad. Si el propietario habita la propiedad sólo son necesarios sus datos
(nombre, apellidos, teléfono de contacto).
Si la vivienda es particular se guardará el número de habitaciones de que
dispone; si es un local comercial se almacenará el tipo de comercio que se desarrolla
en él y el horario (en caso de que esté en uso); si es una oficina se guardará la
actividad a la que se destina. Cada comunidad de vecinos tiene además un presidente
y varios vocales (nombre, apellido y propiedad de la que son dueños) elegidos entre
todos los propietarios, que se encargan de tratar directamente con el administrador los
distintos problemas que pudieran surgir.
En cuanto a la contabilidad, cada comunidad de vecinos tiene una cuenta en un
banco. Delos distintos bancos se almacena el código de banco, el nombre y una
persona de contacto, mientras que para una cuenta bancaria se guarda un código de
cuenta (que consta de un código de sucursal, dos dígitos de control y un número de
cuenta) y un saldo. Para identificar una cuenta es necesario añadir al código de cuenta
el código del banco en el que se encuentra.
Es necesario almacenar dos tipos de apuntes (ingresos y gastos) para la
contabilidad de cada comunidad de vecinos
Por un lado, aunque es el banco el que emite los recibos de las cuotas
de comunidad a los distintos propietarios, el administrador guarda la
información sobre dichos recibos que se ingresan en las cuentas
bancarias de las comunidades, es decir, el número de recibo, fecha,
importe y se ha podido cobrar o no. Esta última información es
importante para realizar a final de cada trimestre una relación de
impagados
En cuanto a los apuntes relativos a los gastos se tienen los importes
que cobran las empresas contratadas por cada comunidad de vecinos.
las compañías cobran sus recibos (Número de recibo, fecha e importe)
cargándolos a la cuenta de cada comunidad.
Problema 10: Empresa automotriz
HIPERAUTO es una empresa que fabrica y distribuye coches y piezas de
repuesto. Necesita diseñar una nueva Base de Datos para mejorar el control de
pedidos y almacén de las piezas de repuesto.
HIPERAUTO tiene su sede en Alemania y consta de una serie de sucursales
que fabrican los diversos componentes, en ese país y en otros de la Unión Europea
(UE). Además, tiene una red de concesionarios, que son empresas independientes,
que venden coches nuevos o usados (cuya problemática está fuera del alcance de
este estudio) y piezas de repuesto.
Las necesidades de la empresa son:
Todas las sucursales hacen previsiones en base a las que organiza la
producción. Este aspecto queda fuera del ámbito del trabajo.
Página 8 de 23
9. Cada sucursal fabrica una o más piezas de repuesto que puede
suministrar a concesionarios o a otras sucursales (denominados
genéricamente emisores) según necesidades. Para atender a sus
concesionarios, las sucursales tienen que mantener cantidades
suficientes de todas las piezas de repuesto de los coches, incluyendo
de las que él mismo fabrica.
De las sucursales se almacenará en la BD un código, un nombre, una
dirección y ciudad. De cada concesionario se guarda un código, un
nombre, una dirección y ciudad. Cada concesionario es asignado a una
sucursal que le atiende y esta información interesa almacenarla.
Cada sucursal tiene en su almacén existencias suficientes de todas las
piezas (código de pieza, nombre) para atender a los pedidos de
concesionarios durante tres meses. No todos los productos tienen la
misma demanda por lo que para cada uno la sucursal fija la cantidad
mínima que debe tener en el almacén (stock).
Problema 11: Materiales de construcción
Una compañía de materiales de construcción quiere automatizar su sistema de
ventas y facturación. Para ello deciden contratar los servicios de una consultora
informática y, tras las reuniones iniciales, se consiguen los primeros requisitos del
futuro sistema.
En primer lugar, los materiales manejados pueden ser muy diversos, no
existiendo una clasificación muy clara entre ellos. Sin embargo, la compañía exige
mantener información de todos ellos aunque todavía no se haya realizado ninguna
compra y, por tanto, no haya existencias en el almacén. La información de partida a
considerar para el material es su código de material, nombre y descripción. Cuando
se recibe el material se sitúa en la zona y nicho que le corresponde, pudiendo haber
en los mismos nichos varios materiales de características similares.
En relación con los proveedores se dispone de un conjunto variable de ellos, a
los cuales se debe incluir en el sistema ya que de ellos se comenzará a recibir con
relativa frecuencia la información sobre los productos que ofrecen y los precios
actuales de esos productos, precios que se considerarán correctos hasta que llegue
nueva información con nuevos precios. Es evidente que un mismo material se puede
conseguir de distintos proveedores por lo que el sistema debe ser capaz de determinar
a quién hay que pedir cada material en función de los datos de que se disponga. Es
importante a la hora de hacer un pedido guardar el precio actual del material solicitado
para contrastarlo cuando llegue el albarán. La información relativa a los proveedores
es su NIF, Nombre, Dirección y teléfono. En cuanto al pedido interesa conocer el
código de identificación del mismo, los materiales solicitados y la cantidad de cada
uno.
Una vez realizado el pedido o pedidos al proveedor o proveedores, el material
llegará acompañado de un albarán que indica los materiales servidos. Por problemas
de distribución es posible que un pedido llegue en varias entregas distintas e incluso
que una entrega agrupe materiales solicitados en varios pedidos distintos. En el
albarán figura para cada artículo a qué pedido corresponde y el precio, lo que permite
determinar si respetaron el precio que figuraba en el pedido. En caso de que no se
respete el precio es posible realizar una reclamación al proveedor que indique el
material solicitado, el precio cobrado y el precio con el que se hizo el pedido.
Página 9 de 23
10. Aparte del hecho de controlar los pedidos a los proveedores, el sistema debe
poder tratar con los clientes, atender sus peticiones, facturarlos y hacer presupuestos.
La información de interés del cliente es su DNI, nombre, dirección, código postal y
posibles teléfonos de contacto. Un presupuesto refleja siempre los materiales que ha
solicitado el cliente con un precio que se mantiene durante un periodo de 10 días
aunque varíe el precio de los materiales solicitados. A los 10 días el precio caduca. Es
posible que el cliente negocie el precio de alguno de los materiales que aparecen en el
presupuesto sufriendo éstos la correspondiente variación. Si hay cambio de precios en
un presupuesto por negociación con el cliente, el presupuesto se mantiene durante 5
días desde la fecha de negociación. En el momento de hacer el pedido se determina
el precio de los materiales solicitados, el cuál se mantendrá aunque haya variaciones
en los precios. El pedido del cliente, que siempre se corresponde con un presupuesto
previo, se paga con posterioridad a su realización, siendo condición indispensable
para la posterior entrega de los materiales. Del pedido del cliente se necesita conocer
además, su número de pedido.
El sistema enviará facturas a los clientes al finalizar cada mes, englobando
todos los pedidos que los clientes hicieron a lo largo del mes en cuestión y que ya se
pagaron, es decir, si hay un pedido hecho pero aún no ha sido pagado, éste no es
incluido en la factura.
En general, la información de tipo económico tendrá siempre prioridad sobre
cualquier otra información, por ejemplo, los datos de un cliente no se podrán eliminar
mientras tenga pedidos asociados; lo mismo aplica a los materiales, no podrán
eliminarse mientras estén involucrados en pedidos o presupuestos.
Problema 12: Taller Mecánico
Se desea construir una base de datos para la gestión de un taller mecánico que
deberá contener la información referente a los clientes, los vehículos que repara, los
mecánicos que trabajan en su taller y los repuestos que se han utilizado para realizar
una determinada reparación.
El funcionamiento del taller es el siguiente:
1. Se registra tanto el cliente como el vehículo que trae al taller para su
reparación.
Este registro recoge el DNI, Nombre y Apellidos, Dirección y Teléfono de
contacto del cliente. Del vehículo se recogen la matrícula, el modelo y el color.
También se registra la fecha de entrada del vehículo en el taller y su hora.
2. Una vez registrado, se le asigna un mecánico (libre) que se encargará de
evaluar los daños.
3. Posteriormente, este mecánico puede rodearse de otros mecánicos que le
ayudarán en la reparación.
4. Los mecánicos que participan en la reparación irán anotando en una hoja de
parte todos aquellos repuestos que les han sido necesarios para llevar a cabo
la reparación y el precio de la mano de obra.
5. Una vez terminada la reparación, la hoja de parte se pasa a la persona que
mantiene el sistema de información, la cual introducirá los datos que
generarán la correspondiente factura para el cliente. La factura por tanto, debe
contener todos los datos del cliente, los datos del mecánico al que ha sido
asignado y el desglose de qué repuestos se han utilizado con su precio por
unidad, el precio de la mano de obra y el total de la factura. A este total se le
aplica el 16 % de IVA y además deberá el precio total de la reparación
aparecerá en pesos y en dólares.
Página 10 de 23
11. Problema 13: Consultora
Una conocida empresa del mundo de la consultoría informática ante los elevados
costes de adaptación de su antiguo sistema de información contra el inminente efecto
del año 2000 y el factor añadido de que dicho sistema procedía de un diseño
absolutamente obsoleto que ya no recogía de forma completa la información necesaria
para la buena marcha del negocio, ha decidido recientemente la creación de un nuevo
sistema de información con las siguientes especificaciones.
Se necesita almacenar información sobre todas las empresas clientes de la
consultora, considerando como información relevante el nombre de la empresa
cliente, su dirección, CIF y probablemente varios teléfonos de cada una de
ellas.
En la consultora se gestionan muchos proyectos que podrían venderse a una o
varias empresas clientes a un precio que determine para cada venta en
particular el consultor responsable del proyecto.
Gracias a la excelente política de calidad mantenida las empresas clientes
tienden a comprar más de dos o tres proyectos distintos a la consultora. Se
desean almacenar estas compras, así como las fechas previstas de inicio y fin
de proyecto.
Independientemente de los precios a los que se pueda vender un proyecto este
tiene un coste asociado.
Todos los proyectos generalmente llevan asociada una breve descripción de
sus objetivos.
Los consultores se caracterizan por un código de empleado, cobran un sueldo
determinado que no tiene por qué corresponder con el salario recomendado de
la categoría profesional a la cual pertenezca (a mayor categoría mayor salario).
Además del sueldo y del salario recomendado se desea almacenar el nombre
del consultor.
Cada consultor puede depender de otro consultor de categoría inmediatamente
superior.
Problema 14: El metro
Se desea recoger información de las líneas de metro de una determinada ciudad.
Los supuestos considerados son los siguientes:
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 estación pertenece al menos a una línea, pudiendo pertenecer a varias.
Una estación nunca puede dejar de pertenecer a una línea a la que
anteriormente perteneciera (por ejemplo Portazgo que pertenece a la línea 1
nunca podrá dejar de pertenecer a esta).
Cada estación puede tener varios accesos, obviamente un acceso sólo puede
pertenecer a una estación.
Un acceso nunca podrá cambiar de estación.
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.
Cada línea tiene asignados como mínimo tantos trenes como estaciones tenga
y como máximo el doble del número de estaciones.
Algunas estaciones tienen asignadas cocheras, y cada tren tiene asignada una
cochera.
Un tren puede cambiar de cochera, pero no quedar sin ella.
Página 11 de 23
12. Interesa conocer todos los accesos de cada línea.
Problema 15: Discografía
Don Pepe Muelas, gran aficionado la música, debido al alto volumen de
grabaciones que posee desea construir una base de datos que gestione toda su
discografía. La base de datos deberá contener las grabaciones, intérpretes y
compañías que editan cada grabación, teniendo en cuenta que.
De cada grabación se debe almacenar el título, la categoría musical a la que
pertenece (jazz, rock, ...), el número de temas que lo componen y un campo
descripción que pueda almacenar aspectos especiales de la grabación.
Además cada grabación se distingue de las otras por su título.
Cada grabación tiene un formato asociado (CD, cinta,...) y una grabación
puede existir en diferentes formatos. Para cada una de ellas se desea conocer
su estado de conservación (bueno, malo, regular).
De los intérpretes se desean registrar su nombre y una breve descripción que
contenga los aspectos más relevantes de su discografía, así como las
grabaciones en las que ha participado cada uno y en qué fecha participó.
Toda grabación es editada por una compañía discográfica, la cual se desea
almacenar.
Una compañía discográfica se diferencia de otra por un Identificador de
compañía, tiene un nombre y una dirección.
Problema 16: Camino de Santiago
La Consejería de Cultura de la Comunidad Gallega ha decidido guardar
información referente al Camino de Santiago en una Base de Datos. La información
que desea almacenar es la siguiente:
Teniendo en cuenta que la peregrinación a Santiago se puede realizar por
distintos caminos (el camino francés, el aragonés, etc.), se quiere guardar
información acerca de éstos. Esta información se refiere al nombre (que los
identifica), el número de kilómetros totales y el tiempo estimado para la
realización del camino.
Cada camino se compone de distintas etapas que se identifican por un número
correlativo dentro de cada camino, y para cada una de ellas se desea saber el
número de kilómetros, el tiempo estimado y las distintas localidades por las que
pasa. Además se quiere recoger la localidad de salida y de llegada de la
correspondiente etapa.
Se recogerán las distintas localidades por las que pasa cada camino. La
información que se recogerá de cada localidad será: nombre de la misma,
Comunidad Autónoma a la que pertenece y código postal. Se debe tener en
cuenta que pueden existir localidades comunes a distintos caminos.
Se desea guardar información sobre los albergues para peregrinos que existen
en algunas de las localidades que pertenecen al camino. Esta información
consta de: nombre del albergue, capacidad y precio (si lo tuvieran).
Por último, se quiere registrar los peregrinos que realizan el camino. Para llevar
este control cada uno de ellos lleva un carnet que consta de un número de
identificación, el nombre completo del peregrino, su dirección y las localidades
por las que ha ido pasando a lo largo del recorrido junto con el día que llegaron
a dicha localidad.
Página 12 de 23
13. Problema 17: Video Club
La cadena de Video-Clubs Glob-Gusters ha decidido, para mejorar su servicio,
emplear una base de datos para almacenar la información referente a las películas
que ofrece en alquiler. Esta información es la siguiente:
Una película se caracteriza por su título, nacionalidad, productora y fecha (p.e.,
“Quo Vadis”, “Estados Unidos”, “M.G.M.”, 1955).
En una película pueden participar varios actores (nombre, nacionalidad, sexo)
algunos de ellos como actores principales.
Una película está dirigida por un director (nombre, nacionalidad).
De cada película se dispone de uno o varios ejemplares diferenciados por un
número de ejemplar y caracterizados por su estado de conservación.
Un ejemplar se puede encontrar alquilado a algún cliente (DNI, nombre,
dirección, teléfono). Se desea almacenar la fecha de comienzo del alquiler y la
de devolución.
Cada socio puede tener alquilados, en un momento dado, 4 ejemplares como
máximo.
Un socio tiene que ser avalado por otro socio que responda de él en caso de
tener problemas en el alquiler.
Problema 18: Academia
En una academia de formación profesional se quiere automatizar la gestión de
profesores y clases. En la academia se imparten clases de primer y segundo grado en
diferentes especialidades (administración, informática, delineación y electrónica),
existiendo varios grupos por cada curso y especialidad, de forma que existen, por
ejemplo, un 1º A en la especialidad de Administración, un 1º A en la especialidad de
Informática, un 1º B de Administración, etc.
Cada especialidad se caracteriza por un código de especialidad, nombre,
número de asignaturas totales y titulo oficial otorgado. Los cursos se componen de un
número de curso (1º, 2º, 3º, 4º o 5º) y de la lista de asignaturas del curso. Por su parte,
los grupos incluyen el código de grupo (A, B o C) y el número de alumnos que lo
componen, siendo una prioridad del centro mantener un límite máximo de 15 alumnos
por grupo.
Cada grupo tiene un profesor al que se considera tutor del grupo y que se
encarga de dar algunas de las asignaturas consideradas como troncales del curso:
matemáticas, literatura, etc. Además, debido a las características particulares de cada
especialidad, existen profesores encargados de impartir clases especializadas como
contabilidad, sistemas operativos, etc. Tanto los profesores “tutores” como los
“especialistas” se consideran personal fijo de la academia y la información que se
deberá almacenar de ellos es su DNI, nombre y apellidos, domicilio, nivel de estudios
alcanzados y titulación. Un profesor puede ser “tutor” de un grupo y “especialista” en el
mismo u otro grupo distinto y nada impide que un profesor sólo pertenezca a la
categoría de “especialistas”.
Uno de los principales objetivos de la academia es llevar un riguroso control de
las clases impartidas por los profesores y también de las clases recibidas por los
alumnos de forma individualizada (con el objetivo de realizar posteriores estadísticas
de absentismo académico) para lo que establece las siguientes medidas:
Página 13 de 23
14. I. Todos los profesores deben firmar diariamente una hoja de actividad que
justifica las clases que ha dado. Existe una hoja de actividad diaria por cada
grupo y en dicha hoja se registra la fecha, el nombre del profesor y las
horas de inicio y de fin de la clase dada por el profesor.
II. Además de firmar la hoja de actividad, los profesores deben firmar a cada
alumno una ficha individual en la que consta el mes, el día del mes, la clase
impartida y la firma del profesor. Estas fichas individuales se renuevan cada
mes de forma que cada una contiene tantas casillas con los tres campos
(día, clase y firma) como días tenga el mes
Como la academia está muy preocupada porque el ritmo de las clases no se altere
bajo ningún concepto mantiene un grupo de profesores “candidatos” que permiten
impartir las clases cuando alguno de los profesores tutores o especialistas no puede
hacerlo por cualquier motivo (enfermedad, vacaciones, etc.). Los interesados en cubrir
vacantes deben dejar en la academia una copia de su Currículum Vitae y rellenar un
formulario en el que indiquen las materias que desean impartir y si desean trabajar
como tutores, como especialistas o como ambas cosas.
Cuando se necesita cubrir una vacante se consulta la lista de candidatos y en
función de las clases a cubrir se contacta telefónicamente con algunos de los
candidatos para concertar una entrevista. De la llamada interesa almacenar la fecha y
hora de la misma y la disposición del candidato a mantener la entrevista: “no
localizado”, “no está interesado” o “entrevista concertada”. Una vez realiza la
entrevista, se emite un informe con la fecha de la entrevista, el nombre del candidato
entrevistado, la materia a cubrir y la valoración que se le asigna.
El proceso de selección de candidatos (llamada y entrevista) es realizado por un
grupo de profesores tutores o especialistas que forman parte de un comité selectivo
encargado de estas labores. Este comité es por tanto el encargado de elegir al
candidato en función de la valoración que se le haya dado. Una vez elegido el
candidato la formalización de su contrato laboral no es objeto de este modelo de
datos. El comité se compone de un presidente, un secretario y un vocal. La
pertenencia al comité es optativa y sus miembros se eligen anualmente, pero la
academia está interesada en mantener un historial de los sucesivos comités de
selección por lo que deberá guardarse también el año de constitución de cada comité.
Problema 19: Plataforma automática de materiales
La universidad ESTUDIA de Madrid desea desarrollar un nuevo sistema
informático con el doble objetivo de automatizar la gestión de las fotocopias de los
ejercicios, apuntes y exámenes anteriores que compran los alumnos de las diferentes
asignaturas que se imparten en la universidad y de controlar la facturación de
empresas de fotocopias que tiene subcontratadas.
Para ello, se desea almacenar información sobre qué alumnos están
matriculados en las diferentes asignaturas de cada titulación (y por lo tanto tienen
permiso para realizar fotocopias de los apuntes/ejercicios/exámenes anteriores de esa
asignatura) y qué empresa de fotocopias es la que se encarga de las fotocopias de
cada asignatura.
Sobre los alumnos, se desea almacenar información sobre su código
identificador dentro de la universidad (NIA), su NIF, nombre y apellidos, dirección,
teléfonos de contacto (en el caso de que tuviera) y la descripción de los números
telefónicos, así como las asignaturas en las que se encuentra matriculado en el curso
actual. Además, cuando los alumnos se matriculan en la universidad, ésta les
Página 14 de 23
15. proporciona una dirección de correo electrónico gratuita que también se desea
mantener almacenada en la base de datos. Esta dirección se crea automáticamente
uniendo su NIA a la cadena de caracteres “@alumnos.estudia.es”.
Las asignaturas en las que se matriculan los alumnos pertenecen a una carrera
y un curso y se identifican mediante un código de asignatura. Además, se almacena
también el nombre de la asignatura. Por supuesto, en la misma titulación no pueden
existir varias asignaturas con el mismo nombre.
Para controlar de forma más sencilla la gestión de las fotocopias de una
determinada asignatura, únicamente una empresa fotocopiadora es la encargada de
realizar todas las fotocopias de los materiales asociados a la asignatura. Cada
empresa de fotocopias determina el precio por fotocopia en cada asignatura a la que
se encuentra asociada. Se debe almacenar el CIF, nombre y dirección de las
empresas de fotocopias asociadas a la universidad.
Cuando un alumno solicita fotocopias de material de una asignatura (apuntes
de un tema concreto, ejercicios de un tema o exámenes anteriores de la asignatura),
esta información quedará recogida en la base de datos de nuestro sistema
informático, así como el número de copias del material a fotocopiar en cada pedido y
el número de páginas que posee cada material. El material a fotocopiar (cada bloque
de fotocopias) pertenece a una única asignatura. Además, solamente existirá, como
mucho, un bloque de fotocopias de apuntes y/o ejercicios por tema en cada
asignatura. En cuanto a los exámenes anteriores de cada asignatura, éstos se
identifican mediante el código de la asignatura correspondiente, la convocatoria a la
que pertenecen (febrero, junio, septiembre) y el curso académico (por ejemplo, curso
2006/07). NOTA: observad que para poder identificar todo material a fotocopiar se
necesita, al menos, el código de la asignatura a la que pertenece.
Es necesario tener en cuenta que en algún caso, los profesores de la
asignatura pueden proporcionar información sobre una o varias soluciones a los
ejercicios de clase. Tanto los enunciados como las soluciones de los ejercicios (en el
caso de que existan), formarán parte del mismo bloque de fotocopias. Se deseará
mantener información en la base de datos sobre cuántos ejercicios de clase se
presentan en cada bloque de fotocopias y cuántas soluciones se proporcionan por
cada ejercicio de clase.
Para encargar material a fotocopiar de una asignatura, el alumno deberá
rellenar, a través de la interfaz de la aplicación, una ficha de petición indicando la
asignatura, el número de copias (no confundir el número de copias con el número de
páginas) y el tema (si se trata de apuntes o ejercicios) o el curso y convocatoria (si se
trata de un examen). El sistema generará automáticamente la fecha de solicitud. Un
alumno no puede rellenar varias fichas de petición del mismo material el mismo día,
aunque sí puede hacerlo en fechas distintas. Si está permitido hacer diferentes
solicitudes de diferentes materiales en el mismo día.
Como resultado de la petición el sistema permitirá que el alumno seleccione la
forma en que prefiere recibir el aviso cuando sus fotocopias estén preparadas. Las
dos opciones disponibles inicialmente son a través de correo electrónico o mediante
un mensaje al móvil. Como es lógico el alumno debe indicar su dirección de correo
electrónico o su número de teléfono según la opción elegida. NOTA: un alumno puede
proporcionar diferentes direcciones de correo electrónico o teléfonos en diferentes
fichas de petición de copias.
Página 15 de 23
16. Por último, para gestionar la facturación con las empresas de fotocopias, se
tendrá en cuenta el número de copias solicitadas por los alumnos sobre materiales de
la asignatura de la que se encarga cada empresa, así como el precio unitario por
fotocopia. Conocida la cantidad de copias realizada por la empresa y lo que cobra por
cada copia, se emite mensualmente una factura con un importe que será el 5% de la
cantidad cobrada por la empresa de fotocopias a los alumnos en concepto de
adjudicación del contrato. El sistema generará secuencialmente el número de la
factura y en la misma figurará, además, la fecha de emisión.
Problema 20: Red Social
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).
Página 16 de 23
17. 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.
Problema 21: Agencia de viajes
Supongamos que se nos ha encargado el desarrollo de una aplicación que se
encargue de gestionar la reserva de billetes 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 billetes a través de la
agencia.
Cuando un cliente hace una reserva, compra un billete para trasladarse de una
ciudad a otra. El billete 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 billetes 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 billetes de ida y vuelta, lo único que tenemos que hacer es
incluir los tramos que sean necesarios para realizar el recorrido completo.
Problema 22: Control de calidad
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.
Página 17 de 23
18. 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.
Problema 23: Empresa de transporte
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 costes 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, coste 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.
Problema 24: Billetes de tren
Supongamos que se nos ha encargado el desarrollo de una aplicación que se
encargue de gestionar reservas de billetes 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.
Página 18 de 23
19. 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.
vg: Para viajar de Granada a Zaragoza, el viajero hace una reserva de un
billete que incluye una plaza para el TALGO Granada-Madrid y otra plaza para
el tren Intercity Madrid-Zaragoza
Problema 25: Recuperación 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).
Página 19 de 23
20. 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.
Problema 26: Sistema de Información Geográfica (SIG)
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 la provincia de Granada. 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 CIF, pueden ser personas
físicas (con nombre, apellidos, DNI [CIF de una persona], fecha de nacimiento,
dirección y teléfono de contacto) o entidades jurídicas (con nombre, CIF,
dirección de la sede social y responsable administrativo, que es una persona).
Las parcelas pertenecen a términos municipales. Cada municipio tiene un
nombre único dentro de su provincia, aunque distintas provincias 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.
Problema 27: Galería de arte
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:
Página 20 de 23
21. 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.
Problema 28: Manejo de proyectos
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 (DNI, 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.
Problema 29: Liga de baloncesto
Supongamos que se nos ha encargado el diseño de una aplicación para gestionar la
liga BCD 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.
Página 21 de 23
22. Cada equipo tiene una plantilla con una serie de jugadores (dorsal, 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…).
Problema 30: Congreso científico
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 primer
apellido (fuera de España no se usa el segundo apellido), 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).
Problema 31: Búsqueda de empleo
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:
Página 22 de 23
23. 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 currículum.
El currículum 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.
Página 23 de 23