You are on page 1of 5

Examen resuelto de Informtica Aplicada de 1 de Bachillerato: Diseo de Bases de Datos Relacionales Zalovic Web: http://www.uco.es/~i62zalov e-mail: zalovicweb@hotmail.

com

Se desea crear una Base de Datos que mantenga informacin relativa al registro de alquileres de un videoclub. Para ello, de cada socio, adems de registrar su nombre, direccin y telfono de contacto, se le asignara un nmero de socio. De cada pelcula, se registrar un cdigo identificativo, el ttulo, director y reparto. Asimismo, el sistema deber reflejar la fecha de alquiler de cada ejemplar.

Enunciado del problema

Preguntas

1. Obtenga el diagrama E/R (conceptual) del enunciado. 2. Obtenga el modelo relacional (tablas) detallando cada una las opciones de transformacin.

Solucin

1. Modelo conceptual

Antes de empezar a conceptualizar el problema, es conveniente que entienda el enunciado del problema al completo con el fin de obtener una perspectiva global del problema. En el enunciado del problema, se puede observar que se pretende implementar una Base de Datos que nos permita registrar el alquiler de pelculas de un videoclub Ya en este punto, sin que el enunciado lo especifique, se intuye la existencia de dos entidades 1 : pelcula y socio (socio alquiler pelculas). En este punto, es importante tener claro qu representa cada entidad y sus relaciones con las otras entidades. Hagmoslo: Socio: representa a cada uno de los socios del videoclub, que una vez dado de alta en la Base de Datos puede proceder a alquilar pelculas. Pelcula: representa a cada una de las copias de una pelcula que dispone el videoclub. Cabe destacar que estamos hablando de copia, es decir, de una pelcula, por ejemplo El seor de los anillos, podemos disponer ms de una. Alquileres: cabra preguntarse si se desea mantener informacin de las pelculas que estn alquiladas en el momento de consulta, el histrico de pelculas alquiladas por un socio o el histrico de socios que han alquilado una pelcula. La respuesta no queda explicitada, pero si nos remitimos al enunciado, implcitamente observamos que no hay ningn indicio que muestre la necesidad de mantener el histrico de alquileres de una pelcula, ni tampoco el caso complementario, mantener el histrico de alquileres de un socio, por ello, optamos por la nica opcin que nos queda: slo nos interesa mantener informacin de las pelculas que estn alquiladas en el presente. El sistema mantendr informacin de aquellas pelculas que estn alquiladas hasta que el socio devuelva el ejemplar al videoclub.

La identificacin de entidades es el primer paso para hacer un buen modelo Entidad/Relacin.

Pgina 1 de 5

Examen resuelto de Informtica Aplicada de 1 de Bachillerato: Diseo de Bases de Datos Relacionales Zalovic Web: http://www.uco.es/~i62zalov e-mail: zalovicweb@hotmail.com

2.1 Descripcin previa de solucin

Antes de comenzar a transformar el modelo conceptual a tablas buscaremos un ejemplo que sea lo suficientemente expresivo para representar todos los posibles casos. Analice el siguiente ejemplo. Nuestro videoclub cuenta con dos socios (001, 002) y tres pelculas (A, B, C), de forma tal que el socio 001 tiene alquiladas las pelculas A y B. El socio 002 no tiene alquilada ninguna pelcula 2 . Este ejemplo tiene la particularidad de representar cada uno de los posibles casos entre un socio y una pelcula. El socio 002 no tiene alquilada ninguna pelcula. El socio 001 tiene alquiladas n pelculas. La pelcula C no est alquilada. Las pelculas A y B estn alquiladas.

2.2 Transformacin del modelo conceptual

A continuacin nos disponemos a transformar el modelo conceptual en tablas. Para ello, en principio basta con crear de cada entidad su tabla derivada. Acto seguido, de alguna forma tendremos que reflejar mediante tablas la relacin que hemos identificado entre un socio y una pelcula: alquiler.

de la entidad socio pasa a formar parte de la tabla derivada de la entidad pelcula como atributo forneo. Como la asociacin est atribuida, tendremos que migrar tambin todos sus atributos. SOCIOS(nmero de socio, nombre, direccin, telfono) PELICULAS(cdigo pelcula, ttulo, director, reparto, nmero de socio, fecha) Apliquemos el ejemplo: numero de socio 001 002 SOCIOS nombre direccin --------telfono -----

2.2.a Opcin 1: Se generan las tablas derivadas de cada entidad, y el identificador

cdigo A B C

titulo -------

PELICULAS director reparto -------------

n socio 001 001

fecha 27/01/07 27/01/07

Como se puede observar esta solucin es factible debido a que no se viola el principio de clave (no se repite el atributo identificador), pero tiene el problema que para aquellas pelculas que no estn alquiladas se generan celdas vacas en los campos nmero de socio y fecha.

2.2.b Opcin 2: Se generan las tablas derivadas de cada entidad y el identificador

de la entidad pelcula pasa a formar parte de la tabla derivada de la entidad socio como atributo forneo. Como la asociacin est atribuida, tendremos que migrar tambin todos sus atributos.

SOCIOS(nmero de socio, nombre, direccin, telfono, cdigo de pelcula, fecha) PELICULAS(cdigo pelcula, ttulo, director, reparto)
2

Observe que la pelcula C no est alquilada.

Pgina 2 de 5

Examen resuelto de Informtica Aplicada de 1 de Bachillerato: Diseo de Bases de Datos Relacionales Zalovic Web: http://www.uco.es/~i62zalov e-mail: zalovicweb@hotmail.com

Apliquemos el ejemplo: SOCIOS direccin telfono ------------PELICULAS titulo director -------------

nmero 001 001 002

nombre -------

cdigo A B

fecha 27/01/07 27/01/07

cdigo pelcula A B C

reparto -------

Como se puede observar, esta solucin no es factible puesto que generara valores duplicados en la clave (observe que el socio 001 se repite) y por tanto, violara el principio identificador: una clave deber identificar de forma nica a cada uno de los registros de la tabla. Adems, si obviramos que esta solucin no se puede implementar y analizamos su rendimiento, podemos comprobar que adems generara valores de campo nulos en cada uno de los socios que no tuvieran alquiladas pelculas. Ni que decir queda que esta solucin queda descartada.

2.2.c Opcin 3: Se generan las tablas derivadas de cada entidad y una tercera
tabla derivada de la asociacin. Los atributos identificadores de cada entidad que participan en la asociacin pasan a formar parte de esta tercera tabla como atributos forneos.

SOCIOS(nmero de socio, nombre, direccin, telfono) PELICULAS(cdigo pelcula, ttulo, director, reparto) ALQUILERES(fecha, nmero de socio, cdigo de pelcula) Apliquemos el ejemplo: SOCIOS nombre direccin --------PELICULAS titulo director -------------

numero de socio 001 002

telfono -----

cdigo pelcula A B C

reparto -------

fecha 27/01/07 27/01/07

ALQUILERES numero de socio cdigo de pelcula 001 A 001 B

Pgina 3 de 5

Examen resuelto de Informtica Aplicada de 1 de Bachillerato: Diseo de Bases de Datos Relacionales Zalovic Web: http://www.uco.es/~i62zalov e-mail: zalovicweb@hotmail.com

Como se puede observar, esta opcin es factible 3 al tiempo que no genera valores de campo nulos. El nico inconveniente que tiene es que genera ms redundancia 4 que la primera opcin, pero esta redundancia es ms que asumible. Esta opcin casi siempre es la ptima. Pero para clarificar esta idea analicmosla con un poco ms de detalle. Ejemplo: Supongamos que nuestro videoclub posee un total de 100 pelculas con un porcentaje del 70% de pelculas alquiladas. El nmero de socios nos es indiferente, pero supongamos que son 50. Para el anlisis de este ejemplo consideraremos que cada celda de una tabla 5 ocupa un 1 byte. Clculo del espacio de la Base de Datos para la opcin 1 PELICULAS cdigo titulo director reparto n socio fecha 001 1 1 1 1 1 1 100 1 1 1 1 1 1 Subtotal 100 100 100 100 100 100 SOCIOS nombre direccin 1 1 1 1 50 50

01 50 Subtotal

nmero de socio 1 1 50

telfono 1 1 50

Una de las primeras impresiones que el lector puede tener es que los subtotales de los campos nmero de socio y fecha de la tabla pelculas son incorrectos debido a que slo el 70% de las pelculas estn alquiladas. No deberan ser 70 bytes cada uno?. La respuesta es negativa. Si bien slo 70 pelculas estn alquiladas, lo cierto es que aunque 30 de ellas no lo estn, el sistema deber reservar espacio en disco para que el alquiler de estas pueda ser registrado en un futuro. As, el total de espacio que ocupa nuestra Base de Datos en la opcin 1 es: (1006) + (504) = 600 + 200 = 800 bytes Clculo del espacio de la Base de Datos para la opcin 3 PELICULAS cdigo pelcula titulo director reparto 001 1 1 1 1 100 1 1 1 1 Subtotal 100 100 100 100

3 El atributo clave no se repite dado que una pelcula solo puede estar alquilada por un socio. Cabra la posibilidad de considerar la agregacin de los atributos cdigo pelcula y nmero de socio como clave, Pero Qu ventaja obtenemos?. Ninguna. Inconvenientes?. Si el identificador de la tabla alquileres tuviera que migrar a otra tabla, estaramos produciendo redundancia innecesaria. 4 Observe que en la primera opcin el nico campo redundante es el nmero de socio en la tabla pelculas. Sin embargo, en la tercera opcin los campos cdigo pelcula y numero de socio son redundantes en la tabla alquileres. 5 Una celda en una tabla se corresponde al campo de un registro.

Pgina 4 de 5

Examen resuelto de Informtica Aplicada de 1 de Bachillerato: Diseo de Bases de Datos Relacionales Zalovic Web: http://www.uco.es/~i62zalov e-mail: zalovicweb@hotmail.com

01 50 Subtotal

numero de socio 1 1 50

SOCIOS nombre direccin 1 1 1 1 50 50

telfono 1 1 50

001 070 Subtotal

fecha 1 1 70

ALQUILERES numero de socio cdigo de pelcula 1 1 1 1 70 70

El espacio total que ocupa la base de datos en la opcin 3 es: (1004) + (504) + (703) = 400 + 200 + 210 = 810 bytes Qu ha ocurrido?. La opcin 1 ocupa menos espacio que la opcin 3, entonces Por qu consideramos que la opcin 3 es la ptima?. La respuesta no es nica. Podramos afirmar que el volumen de almacenamiento no es el nico factor a la hora de determinar la eficiencia de una solucin. Tenga en cuenta que la existencia de valores nulos puede generar problemas a la hora de manipular la informacin 6 . Suponiendo que el volumen de almacenamiento es muy importante, analicemos los siguientes supuestos. Qu ocurrira si adems de la fecha de alquiler se almacenara la fecha de entrega?. El resultado sera el siguiente: o Opcin 1: (1007) + (504) = 700 + 200 = 900 o Opcin 3: (1004) + (504) + (704) = 400 + 200 + 280 = 880 Imagine que el grado de ocupacin de alquileres no es del 70% sino del 66%, qu ocurrira?. o Opcin 1: (1006) + (504) = 600 + 200 = 800 o Opcin 3: (1004) + (504) + (663) = 400 + 200 + 198 = 798 Imagine que el grado de ocupacin de alquileres es del 20%. o Opcin 1: (1006) + (504) = 600 + 200 = 800 o Opcin 3: (1004) + (504) + (203) = 400 + 200 + 60 = 660 Como se puede comprobar hay pocas veces en que la opcin 1 sera ms adecuada que la opcin 3, motivo por el cual optaremos siempre por la opcin 3 como solucin ms eficiente.

6 A menudo, los usuarios de Bases de Datos no distinguen entre un valor nulo, un cero en el caso de un dato numrico o en un dato de tipo texto. Y estos casos son muy diferentes. Ejemplo: no es lo mismo que un sensor tenga un valor de temperatura registrado de cero grados a que el sensor no funcione, es decir, el campo temperatura est vaco.

Pgina 5 de 5

You might also like