domingo, 22 de febrero de 2009

¿Como diseñar una base de datos relacional?

Diseñe una base de datos relacional para un problema planteado siguiendo los siguientes pasos:

a) Identifique las entidades y los atributos correspondientes a cada una de las entidades,
indicando explícitamente cuáles serán las claves primarias de las distintas entidades.

b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad.

c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las
entidades y las relaciones identificadas en los apartados anteriores.

d) A partir del diagrama, obtenga el conjunto de tablas que nos permita implementar nuestro
modelo en un sistema gestor de bases de datos relacionales, indicando las claves primarias
de todas y cada una de las tablas de nuestra base de datos.

Ejersicio N° 1

Diseñar una base de datos que recoja la organizacion de una Universidad. Se
considera que:

1. Los departamentos pueden estar en una sola facultad o ser interfacultativos,
agrupando en este caso catedras que pertenecen a facultades distintas.
2. Una catedra se encuentra en un unico departamento.
3. Una catedra pertenece a una sola facultad.
4. Un profesor esta siempre asignado a un unico departamento y adscrito a una o varias catedras, pudiendo cambiar de catedra, pero no de departamento. Interesa la fecha en que un profesor es adscrito a una catedra.
5. Existen areas de conocimiento, y todo departamento tendra una unica area de conocimiento.










Ejercicio N° 2

Se trata de diseñar una base de datos para una red de agencias franquiciadas a TECHNOHOUSE, empresa especializada en el alquiler y compra de inmuebles.


• Cada agencia tiene un titular propio y un conjunto de vendedores. Tanto el titular como los vendedores sólo pueden pertenecer a una agencia. Sobre las agencias interesa almacenar su dirección, teléfonos (que pueden ser varios), fax, etc. Además, cada agencia tiene asignada una zona de actuación que es única.

• Las agencias disponen de inmuebles tanto para alquilar como para vender (o ambas cosas), en el primer caso figurará el precio de alquiler y la fianza a depositar, mientras que en el segundo caso, además del precio de venta, se indica si el inmueble está o no hipotecado.

• Por otro lado, los inmuebles pueden ser locales comerciales, o pisos. En ambos casos se identifican por un código, interesando conocer el propietario, la dirección y la superficie en m2.

• Además, en el caso de pisos interesa conocer el número de habitaciones (incluyendo el salón), el número de cuartos de baño, el tipo de gas (natural, ciudad, butano), y si es interior o exterior. Para los locales comerciales se debe conocer si dispone de licencia de apertura.

• Un cliente puede acudir a varias agencias, en cada una se le asigna un vendedor, que es el encargado de seleccionar los inmuebles que cumplen las características deseadas, y en caso de estar interesado, el cliente debe dar una señal para reservar el inmueble (o los inmuebles) que desea.




Ejercicio N° 3

El departamento de formación de una empresa desea construir una BD para planificar ygestionar la formación de sus empleados. Los supuestos semánticos que deben recogerse sonl os siguientes:


· La empresa organiza cursos internos de formación de los que se desea conocer elcódigo de curso, el nombre, una descripción, el número de horas de duración y elcoste del curso.

· Un curso puede tener como prerrequisito haber realizado otro(s) previamente, y, a suvez, la realización de un curso puede ser prerrequisito de otros. Un curso que esprerrequisito de otro puede serlo de forma obligatoria u opcional.

· Un mismo curso tiene diferentes ediciones, es decir, se imparte en distintos lugares,fechas y con diversos horarios (intensivo, mañana o tarde). En una misma fecha deinicio sólo puede impartirse una edición de un curso.

· Los cursos se imparten por personal de la propia empresa. Un curso puede tenervarios docentes pero una edición sólo tiene un profesor.

· De los empleados se desea almacenar su código de empleado, nombre y apellidos,dirección, teléfono, NIF, fecha de nacimiento, nacionalidad, sexo, firma y salario,así como si está o no capacitado para impartir cursos.

· Un mismo empleado puede ser docente en una edición de un curso y alumno en otraedición, pero nunca puede ser ambas cosas a la vez (en una misma edición de uncurso o lo imparte o lo recibe).



Ejercicio N° 4

La asociación "Amigos de la Fiesta" desea recoger en una base de datos toda la información acerca de las corridas de toros que se celebran en España y de todos los datos relacionados con ellas.

• Se desea tener información acerca de cada corrida, identificada conjuntamente por un número de orden, la feria en la que se celebra y el año de celebración (por ejemplo: orden = 2, feria = San Isidro, año = 1990); las corridas que no se celebran durante una feria tienen 0 en el campo Feria y se numeran correlativamente dentro de ese año.

• En una determinada corrida actúan una serie de toreros (mínimo 1 y máximo 6) de los que se desea guardar su dni, nombre, apodo y fecha en que tomó la alternativa. Además se desea saber quién fue el torero (padrino) que le dio la alternativa en su día (un torero puede dar la alternativa a varios compañeros o a ninguno).

• En cada corrida un torero obtiene una serie de premios (número de orejas, de rabos y si salió por la puerta grande) de los que se desea mantener información.

• Cada torero puede tener un apoderado. A su vez, un apoderado lo puede ser de varios toreros. De él se desea saber su dni, nombre, dirección y teléfono.

• Una corrida se celebra en una plaza de toros de la que se desea saber su nombre (que se supone único), localidad, dirección y aforo. En una misma plaza se pueden celebrar varias corridas de toros.

• Cada toro pertenece a una ganadería determinada. De cada ganadería se quiere conocer su código, nombre, localidad, procedencia y antigüedad (fecha de creación).

• En cada corrida son estoqueados al menos 6 toros. Cada toro viene identificado por el código de la ganadería a la que pertenece, el año en que nació y un número de orden. Además se desea mantener información acerca de su nombre y color, así como del orden en que fue toreado.


viernes, 20 de febrero de 2009

Ejercicio Nª 5

Autobuses

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.









Normalizacion

El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.

Las bases de datos relacionales se normalizan para:


*Evitar la redundancia de los datos.
*Evitar problemas de actualización de los datos en las tablas.
*Proteger la integridad de los datos.


En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones:

*Cada columna debe tener su nombre único.
*No puede haber dos filas iguales. No se permiten los duplicados.
*Todos los datos en una columna deben ser del mismo tipo.