UD2_Ejemplo_Centro_Estudios
UD2_Ejemplo_Centro_Estudios
UD2_Ejemplo_Centro_Estudios
Enunciado
Un centro de estudios desea diseñar una base de datos para llevar el control de los alumnos matriculados
y los profesores que imparten clases en ese centro.
De cada profesor y cada alumno se desea almacenar el nombre, apellidos, dirección, población,
dni, fecha de nacimiento, código postal y teléfono. Un alumno puede tener hermanos en el
centro, nos interesaría saber que alumnos son hermanos de otros.
Los alumnos se pueden matricular en una o más asignaturas hasta un máximo de 8 y en una
asignatura se pueden matricular hasta un máximo de 30 alumnos por cuestiones de
disponibilidad en las aulas. De cada asignatura se desea almacenar el código de asignatura,
nombre y número de horas que se imparten a la semana.
Un profesor del centro puede impartir varias asignaturas, pero una asignatura sólo es impartida
por un único profesor. De cada una de las asignaturas se desea almacenar también la nota que
saca el alumno y las incidencias que puedan darse con él.
Además, se desea llevar un control de los cursos que se imparten en el centro de enseñanza. De
cada curso se guardará el código y el nombre. En un curso se imparten varias asignaturas, y una
asignatura sólo puede ser impartida en un único curso.
Las asignaturas se imparten en diferentes aulas del centro. En el centro hay varios tipos de aulas,
entre ellas: Aulas TIC con ordenadores y acceso a Internet y aulas normales sin ordenadores. De
cada aula se quiere almacenar el código y piso del centro en el que se encuentra. De las Aulas
TIC también nos interesa saber el número de ordenadores que tiene y de las aulas normales el
número de pupitres de que dispone.
Una asignatura se puede dar en diferentes aulas, y en un aula se pueden impartir varias
asignaturas. Se desea llevar un registro de las asignaturas que se imparten en cada aula. Para ello
se anotará el mes, día y hora en el que se imparten cada una de las asignaturas en las distintas
aulas.
La dirección del centro también designa a varios profesores como tutores en cada uno de los
cursos. Un profesor es tutor tan sólo de un curso. Un curso tiene un único tutor. Se habrá de
tener en cuenta que puede que haya profesores que no sean tutores de ningún curso.
Se pide realizar el análisis y diseño de la base de datos. Para ello vamos a obtener el diagrama E/R
resultante (entidades, atributos, relaciones, claves, cardinalidades y otras características del modelo
Entidad Relación Extendido) y su posterior transformación al Modelo Relacional (conjunto de tablas con
sus claves correspondientes y sus relaciones)
Seguimos el estudio identificando los atributos. Al leer los requerimientos del sistema nos preguntamos:
¿Qué información necesitamos almacenar de las distintas entidades encontradas?
Pág. 1 / 8
EJEMPLO CENTRO DE ESTUDIOS DIAGRAMA E/R y MODELO RELACIONAL
Continuamos nuestro estudio identificando las relaciones, para ello volvemos a leer el texto.
¿De qué manera se relacionan las entidades que hemos descubierto en el paso anterior?
Un alumno puede tener hermanos en el centro que también serán alumnos, por tanto aquí nos
encontramos con una relación reflexiva o cíclica donde la entidad ALUMNO se relaciona con
ella misma mediante ‘es_hermano’.
ALUMNO se relaciona con ASIGNATURA mediante ‘matriculado’
PROFESOR se relaciona con ASIGNATURA mediante ‘imparte’
CURSO se relaciona con ASIGNATURA mediante ‘tiene’
ASIGNATURA se relaciona con AULA mediante ‘se_da’
PROFESOR se relaciona con CURSO mediante ‘es_tutor’
Ya hemos identificado todos los atributos de las entidades pero, ¿las relaciones no pueden tener
también atributos? Por supuesto que sí.
De hecho en nuestro caso de estudio encontramos que la relación „matriculado’ que asocia ALUMNO
con ASIGNATURA tendrá como atributos „nota’ e „incidencias’, ya que en los requerimientos se
especifica que para cada asignatura se quiere guardar la nota y las incidencias que puedan darse con un
alumno en dicha asignatura, esta información no es propia del alumno o de la asignatura de forma
independiente, sino que corresponde a la relación que las une, en este caso „matriculado‟.
También la relación „se_da’ entre ASIGNATURA y AULA tiene los atributos „mes’, „dia’ y „hora’. Esta
información se utilizará para llevar el control de las asignaturas impartidas en cada aula.
En cuanto a las entidades y una vez estudiadas las relaciones que hay entre ellas, ¿Podríamos
considerarlas todas como entidades fuertes, o hay alguna que en principio pueda ser una entidad
débil?
Muy sencillo, haciéndonos la siguiente pregunta para cada entidad: una instancia de la entidad que nos
interesa, ¿con cuántas instancias se relaciona de la otra entidad que estamos estudiando? La
respuesta para cada caso es la siguiente:
Un ALUMNO, ¿cuántos alumnos puede tener como hermanos? Podría tener como mínimo
ninguno o como máximo varios alumnos más que son sus hermanos. Así pues la cardinalidad en
un sentido sería (0,n).
Y en el sentido contrario y aunque en una relación reflexiva no se vea muy claro, la cardinalidad
se estudiaría así: un ALUMNO, ¿de cuántos otros alumnos podría ser hermano? En este caso la
contestación sería la misma, podría no tener ningún hermano o muchos. Cardinalidad (0,n)
Una ASIGNATURA, ¿cuántos alumnos puede tener? Según el enunciado como máximo se
pueden matricular 30 alumnos en una asignatura, no se dice nada del número mínimo de
Pág. 2 / 8
EJEMPLO CENTRO DE ESTUDIOS DIAGRAMA E/R y MODELO RELACIONAL
alumnos, suponemos que para que una asignatura se imparta debe matricularse al menos un
alumno, por tanto la cardinalidad de ALUMNO con ASIGNATURA en la relación „matriculado‟
será (1,30).
Un ALUMNO, ¿en cuántas asignaturas puede matricularse? Un alumno puede matricularse
como mínimo en 1 asignatura y como máximo en 8, la cardinalidad será (1,8).
Una ASIGNATURA, ¿cuántos profesores la pueden impartir? Se indica en el enunciado que sólo
puede ser impartida por un profesor, por lo que la cardinalidad será (1,1).
Un PROFESOR, ¿cuántas asignaturas podrá impartir? Se supone que como mínimo un profesor
imparte una asignatura, el enunciado no fija el número máximo de asignaturas que puede dar,
pero sí se dice que pueden ser varias, la cardinalidad será (1,n).
Una ASIGNATURA, ¿en cuántos cursos podrá estar? Una asignatura sólo puede ser impartida
en un único curso tal y como se dice en el enunciado. Por tanto la cardinalidad sería (1,1).
Y, un CURSO, ¿cuántas asignaturas podrá tener? Por supuesto que varias asignaturas,
normalmente un curso lo forman más de una asignatura como mínimo, así tendremos como
cardinalidad (1,n).
En un AULA, ¿cuántas asignaturas se dan? Pues como mínimo una y como máximo varias
asignaturas, por tanto la cardinalidad sería (1,n).
Una ASIGNATURA, ¿en cuántas aulas se puede dar? Según el enunciado en una o en varias
aulas así que la cardinalidad sería (1,n).
Un CURSO, ¿cuántos tutores puede tener? Cada curso debe tener un único profesor que sea
tutor por lo que la cardinalidad es (1,1).
Un PROFESOR, ¿de cuántos cursos puede ser tutor? Pues podemos encontrarnos profesores que
no sean tutores de ningún curso o bien que como máximo lo sean de uno. Así que la cardinalidad
será (0,1).
NOTA: es importante recordar que cuando representemos las cardinalidades de las entidades en el
diagrama E/R, cada cardinalidad estudiada no se representa en su propia entidad, sino junto a la
otra entidad con la que participa en la relación.
Estudiadas las cardinalidades de las entidades, pasamos a definir las cardinalidades de las relaciones
cogiendo en cada caso la cardinalidad máxima con la que participa cada entidad en una relación. Tenemos
¿Sabemos cómo identificar las claves en una entidad? En cuanto a las claves candidatas y primarias en
cada entidad debemos analizar los atributos de la especificación que hemos identificado anteriormente
para elegir entre todos ellos el que mejor identifique en cada caso a las entidades. Cabe decir que aunque
Pág. 3 / 8
EJEMPLO CENTRO DE ESTUDIOS DIAGRAMA E/R y MODELO RELACIONAL
en la vida real las claves primarias utilizadas son del tipo código, número, id, etc. debemos elegir sólo
entre aquellos atributos que se nos dan en el documento de especificación. Así tenemos que:
Con los atributos definidos como se ha hecho anteriormente, todas las entidades tienen una única clave
candidata, así que también será su clave principal.
En primer lugar el enunciado habla de dos tipos de aulas, las TIC y las normales, se diferencian en que las
primeras tienen ordenadores y acceso a Internet y las segundas no, con este matiz podemos diferenciar o
especializar la entidad AULA en dos nuevas entidades: AULA_TIC y AULA_NORMAL. La entidad
AULA almacenará la información común a los dos tipos de aula, es decir, los atributos „codigo_aula‟ y
„piso‟, mientras que los atributos „numero_ordenadores‟ y „numero_pupitres‟ corresponderán
respectivamente a las especializaciones AULA_TIC y AULA_NORMAL. Esta especialización es
exclusiva porque un AULA no puede ser a la vez AULA_TIC o AULA_NORMAL y parcial, porque
según dice el enunciado “en el centro hay varios tipos de aulas entre ellas aulas_tic y aulas normales”
pero deja a entender que también existen otros tipos de aulas.
Otra cuestión a estudiar son las entidades ALUMNO y PROFESOR. Al ser idénticos los atributos de las
ambas entidades, podríamos pensar en una generalización de estas entidades en otra superior, pero aunque
la información que almacenamos de estas dos entidades es la misma, el papel que juega cada una de ellas
en el sistema es muy diferente. Además, realizando esa generalización nuestro diagrama de entidad-
relación sería más difícil de entender y podría no cumplir algunos de los criterios de calidad, como por
ejemplo, expresividad, legibilidad o autoexplicación. No tendría mucho sentido tener mezclados a los
alumnos y a los profesores.
Comprobamos que no hay ninguna otra característica a tener en cuenta del modelo EER para nuestro caso
de estudio pero antes de representar el diagrama E/R final, tendremos que comprobar que no exista
redundancia en nuestro diagrama, sobre todo si existe algún ciclo en nuestro diseño. En nuestro caso,
ninguna de las relaciones que forman el ciclo se puede eliminar porque no existe ningún camino
alternativo para relacionar las entidades que están unidas mediante las distintas relaciones.
Y por último tendremos que comprobar que se cumplen los criterios de calidad mencionados en la
unidad, es decir, la cualidad de ser completo, la corrección, la minimalidad, la sencillez, la legibilidad y
la flexibilidad del diagrama
Pág. 4 / 8
EJEMPLO CENTRO DE ESTUDIOS DIAGRAMA E/R y MODELO RELACIONAL
(1,n)
Pág. 5 / 8
EJEMPLO CENTRO DE ESTUDIOS DIAGRAMA E/R y MODELO RELACIONAL
Todas las entidades se convierten en tablas y sus atributos en sus propios campos. Las claves
primarias las pondremos en primer lugar y las identificaremos de forma subrayada y en negrita para
distinguirlas del resto de campos de la tabla. Así tenemos las siguientes tablas de momento:
Pasamos la especialización a tablas: En este caso debido a que las entidades especializadas
tienen atributos propios optamos por pasar las entidades subtipo a tablas. Además, debemos
tener en cuenta que el tipo de generalización es PARCIAL, lo que nos indica que no todas las
ocurrencias están representadas en las entidades especializadas, por tanto también es necesario
pasar a tabla la entidad AULA. De esta forma, al tener que pasar las tres tablas, optaremos por
pasar a tabla la entidad supertipo con todos sus atributos como campos y las entidades subtipo
heredarán la clave principal de AULA y además contendrán sus propios atributos como campos.
Las tablas quedarán de la siguiente forma:
AULA(código, piso)
AULA_TIC (código_aula, número_ordenadores)
AULA_NORMAL(código_aula, número_pupitres)
Paso a tabla de las relaciones con cardinalidad muchos a muchos: Si nos fijamos en el
diagrama E/R tenemos tres relaciones de este tipo.
Pág. 6 / 8
EJEMPLO CENTRO DE ESTUDIOS DIAGRAMA E/R y MODELO RELACIONAL
Paso a tabla de las relaciones con cardinalidad uno a uno: Si nos fijamos en el diagrama E/R
la única relación uno a uno que tenemos es la de “es_tutor” entre PROFESOR y CURSO, por
tanto nos fijamos en las cardinalidades de sus entidades para ver si debemos crear una nueva
tabla o tan sólo es necesario propagar claves. Si nos fijamos en las cardinalidades (1,1) y (0,1)
debemos propagar la clave primaria de la entidad PROFESOR a CURSO por las cardinalidades
mínimas que observamos en el diagrama. La entidad que tiene la cardinalidad mínima 1 en el
diagrama E/R propaga su clave primaria a la entidad que tiene la cardinalidad mínima 0. Así
pues la tabla PROFESOR mantiene sus campos mientras que la tabla CURSO quedaría de la
siguiente forma:
Paso a tabla de las relaciones uno a muchos: El resto de relaciones son de tipo uno a muchos,
y aunque alguna de ellas tenga atributo propio, es más común propagar la clave que crear una
nueva tabla (sólo casos muy excepcionales donde se produzca redundancia se utiliza la creación
de tablas). En nuestro caso es más efectiva la propagación de claves. La clave principal que se
debe propagar es la de la tabla que tiene junto a su entidad la cardinalidad máxima UNO,
a la tabla que tiene junto a su entidad la cardinalidad máxima MUCHOS. Por tanto, es
importantísimo fijarse en el diagrama E/R más que en el estudio de las cardinalidades previo.
Visualmente será más fácil saber qué entidad propaga su clave a la otra entidad.
Pág. 7 / 8
EJEMPLO CENTRO DE ESTUDIOS DIAGRAMA E/R y MODELO RELACIONAL
Pág. 8 / 8