MODELADO DE ENTIDADES

23
Página 1 de 23 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.

description

MODELADO DE ENTIDADES Relacionales

Transcript of MODELADO DE ENTIDADES

Página 1 de 23

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 2 de 23

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 3 de 23

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 4 de 23

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 5 de 23

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 6 de 23

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 7 de 23

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 8 de 23

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 9 de 23

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 10 de 23

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 11 de 23

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 12 de 23

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 13 de 23

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 14 de 23

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 15 de 23

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 16 de 23

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 17 de 23

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 18 de 23

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 19 de 23

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 20 de 23

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 21 de 23

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 22 de 23

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 23 de 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.