Base de Datos
Base de Datos
INDICE
1. Análisis y diseño de bases de datos. ................................................................................................... 3
2.- ¿Qué es el Modelo E/R? .................................................................................................................... 4
3.- Entidades. ......................................................................................................................................... 5
3.1.- Tipos: fuertes y débiles. ...........................................................................................................................5
4.- Atributos. .......................................................................................................................................... 7
4.1.- Tipos de atributos....................................................................................................................................7
4.2.- Claves. .....................................................................................................................................................8
4.3.- Atributos de una relación. .......................................................................................................................9
5.- Relaciones. ...................................................................................................................................... 11
5.1.- Grado de una relación. ..........................................................................................................................11
5.2.- Cardinalidad de relaciones. ...................................................................................................................12
5.3.- Cardinalidad de entidades. ....................................................................................................................13
6.- Simbología del modelo E/R. ............................................................................................................ 15
7.- El modelo E/R Extendido. ................................................................................................................ 16
7.1.- Restricciones en las relaciones. .............................................................................................................16
7.2.- Generalización y especialización. ...........................................................................................................17
Ejercicio resuelto .................................................................................................................................................................. 19
7.3.- Agregación. ...........................................................................................................................................19
8.- Elaboración de diagramas E/R......................................................................................................... 21
8.1.- Identificación de entidades y relaciones. ...............................................................................................21
8.2.- Identificación de atributos, claves y jerarquías. .....................................................................................22
8.3.- Metodologías. .......................................................................................................................................23
8.4.- Redundancia en diagramas E/R. ............................................................................................................24
8.5.- Propiedades deseables de un diagrama E/R. .........................................................................................25
9.- Paso del diagrama E/R al modelo relacional. .................................................................................. 27
9.1.- Simplificación previa de diagramas. .......................................................................................................28
10.- Paso del diagrama E/R al Modelo Relacional. ............................................................................... 30
Ejercicio resuelto .................................................................................................................................................................. 32
11.- Normalización de modelos relacionales. ....................................................................................... 33
11.1.- Tipos de dependencias. .......................................................................................................................34
Ejercicio resuelto .................................................................................................................................................................. 34
11.2.- Formas Normales. ...............................................................................................................................35
1ª Forma Normal .................................................................................................................................................................. 35
2ª Forma Normal .................................................................................................................................................................. 35
3ª Forma Normal .................................................................................................................................................................. 35
Forma Normal de Boyce Codd ............................................................................................................................................. 36
Otras formas normales ......................................................................................................................................................... 36
Ejercicio resuelto .................................................................................................................................................................. 36
Interpretación de diagramas
entidad/relación.
Caso práctico
Ada está analizando la manera en la que Juan y María han comenzando a construir la base de datos
que sustentará el sitio web de juegos online. Parece que la aplicación del modelo relacional está
marchando correctamente, aunque le interesa que el proceso se realice siguiendo un método lo más
estandarizado posible y que les ofrezca independencia del SGBD que escojan.
De este modo, podrán planificar el desarrollo de cada una de las fases y ajustar mejor los tiempos
dedicados a cada una de ellas.
-2-
Desarrollo de Aplicaciones Web Tema 3
Cuando hemos de desarrollar una base de datos se distinguen claramente dos fases de trabajo:
Análisis y Diseño. En la siguiente tabla te describimos las etapas que forman parte de cada fase.
Pasos de las fases de Análisis y de Dsiseño
Fase de Análisis Fase de Diseño
Análisis de entidades: Se trata de localizar y
Diseño de tablas.
definir las entidades y sus atributos.
Análisis de relaciones: Se definirán las relaciones
Normalización.
existentes entre entidades.
Obtención del Esquema Conceptual a través del
Aplicación de retrodiseño, si fuese necesario.
modelo E-R.
Fusión de vistas: Se reúnen en un único esquema Diseño de transacciones: localización del
todos los esquemas existentes en función de las conjunto de operaciones o transacciones que
diferentes vistas de cada perfil de usuario. operarán sobre el esquema conceptual.
Diseño de sendas de acceso: se formalizan los
Aplicación del enfoque de datos relacional. métodos de acceso dentro de la estructura de
datos.
Llevando a cabo una correcta fase de análisis estaremos dando un paso determinante en el
desarrollo de nuestras bases de datos. El hecho de saltarse el esquema conceptual conlleva un
problema de pérdida de información respecto al problema real a solucionar. El esquema conceptual
debe reflejar todos los aspectos relevantes del mundo real que se va a modelar.
Para la realización de esquemas que ofrezcan una visión global de los datos, Peter Chen en 1976 y
1977 presenta dos artículos en los que se describe el modelo Entidad/Relación (entity/relationship).
Con el paso del tiempo, este modelo ha sufrido modificaciones y mejoras. Actualmente, el modelo
entidad/relación extendido (ERE) es el más aceptado, aunque existen variaciones que hacen que
este modelo no sea totalmente un estándar. Ambos modelos serán estudiados a lo largo de esta
unidad.
-3-
Interpretación de diagramas entidad/relación DAW
Juan interviene: —Me temo que ya sé por dónde van los tiros, Ada. ¿Con esa pregunta te estás
refiriendo a los esquemas gráficos que se deben crear para la construcción de bases de datos?
Ada sonríe y hace un gesto para que ambos se acerquen: —¿Sabéis lo qué es el modelo Entidad –
Relación?
El modelo de datos E-R representa el significado de los datos, es un modelo semántico. De ahí que no
esté orientado a ningún sistema físico concreto y tampoco tiene un ámbito informático puro de
aplicación, ya que podría utilizarse para describir procesos de producción, estructuras de empresa,
etc. Además, las características actuales de este modelo favorecen la representación de cualquier
tipo de sistema y a cualquier nivel de abstracción o refinamiento, lo cual da lugar a que se aplique
tanto a la representación de problemas que vayan a ser tratados mediante un sistema informatizado,
como manual.
Gracias al modelo Entidad-Relación, creado por Peter Chen en los años setenta, se puede
representar el mundo real mediante una serie de símbolos y expresiones determinados. El modelo
de datos Entidad/Relación (E/R ó E-R) está basado en una percepción consistente en objetos básicos
llamados entidades y relaciones entre estos objetos, estos y otros conceptos se desarrollan a
continuación.
-4-
Desarrollo de Aplicaciones Web Tema 3
3.- Entidades.
Caso práctico
—¿Cada una de las tablas que hemos estado generando equivale a una entidad en el modelo E/R?
—Pregunta Juan.
—Algunas de ellas corresponden a entidades y otras a relaciones, depende del problema a resolver.
Por ejemplo, la tabla USUARIO sí se correspondería con una entidad. Además, hay que tener
cuidado a la hora de identificar entidades porque algunas veces podemos confundir entidades con
atributos y viceversa —responde Ada.
Para los miembros de BK Programación va a ser necesario que conozcan bien cómo se aplica este
modelo si quieren que el proceso de creación de bases de datos sea correcto.
Si utilizamos las bases de datos para guardar información sobre cosas que nos interesan o que
interesan a una organización, ¿No crees que hay que identificar esas cosas primero para poder
guardar información sobre ellas? Para ello, vamos a describir un primer concepto, el de Entidad.
Una entidad puede ser un objeto físico, un concepto o cualquier elemento que queramos modelar,
que tenga importancia para la organización y del que se desee guardar información. Cada entidad
debe poseer alguna característica, o conjunto de ellas, que lo haga único frente al resto de objetos.
Por ejemplo, podemos establecer una entidad llamada ALUMNO que tendrá una serie de
características. El alumnado podría ser distinguido mediante su número de identificación escolar
(NIE), por ejemplo.
Entidad: objeto real o abstracto, con características diferenciadoras capaces de hacerse distinguir de
otros objetos.
¿Ponemos otro ejemplo? Supongamos que tienes que desarrollar el esquema conceptual para una
base de datos de mapas de montaña, los elementos: camping, pista forestal, valle, río, pico, refugio,
etc., son ejemplos de posibles entidades. A la hora de identificar las entidades, hemos de pensar en
nombres que tengan especial importancia dentro del lenguaje propio de la organización o sistema
que vaya a utilizar dicha base de datos. Pero no siempre una entidad puede ser concreta, como un
camping o un río, en ocasiones puede ser abstracta, como un préstamo, una reserva en un hotel o un
concepto.
Un conjunto de entidades serán un grupo de entidades que poseen las mismas características o
propiedades. Por ejemplo, al conjunto de personas que realizan reservas para un hotel de montaña
determinado, se les puede definir como el conjunto de entidades cliente. El conjunto de entidades
río, representará todos los ríos existentes en una determinada zona. Por lo general, se suele utilizar
el término entidad para identificar conjuntos de entidades. Cada elemento del conjunto de entidades
será una ocurrencia de entidad.
Si establecemos un símil con la Programación Orientada a Objetos, podemos decir que el concepto
de entidad es análogo al de instancia de objeto y que el concepto de conjunto de entidades lo es al
de clase.
-5-
Interpretación de diagramas entidad/relación DAW
Tanto las entidades fuertes como las débiles se nombran habitualmente con sustantivos en
singular.
Puede ser que haya algunos conceptos que aún no hemos desarrollado (relación, atributo y clave) y
que se están utilizando para describir los tipos de dependencias, no te preocupes, en los siguientes
epígrafes te los describimos claramente.
Identifica cuál de las siguientes entidades no podría ser considerada como entidad débil:
PROVEEDOR (perteneciente a una base de datos de gestión de stocks).
PAGO (perteneciente a una base de datos bancaria).
FAMILIAR (perteneciente a una base de datos hospitalaria).
Efectivamente, esta entidad puede existir por sí misma sin depender de otras ocurrencias de entidad. Además, posee propiedades o
atributos propios que la identifican frente a otras ocurrencias de la misma entidad.
-6-
Desarrollo de Aplicaciones Web Tema 3
4.- Atributos.
Caso práctico
Juan muestra a María qué atributos han creado para la tabla JUEGOS, pero al aplicar el modelo
Entidad-Relación se ha dado cuenta de que le falta algún atributo más.
María esta dibujando la entidad JUEGOS y sus atributos asociados. Ahora va a añadir gráficamente
un atributo que recoja la productora de software asociada a cada juego.
¿Cómo guardamos información de cada entidad? A través de sus atributos. Las entidades se
representan mediante un conjunto de atributos. Éstos describen características o propiedades que
posee cada miembro de un conjunto de entidades. El mismo atributo establecido para un conjunto
de entidades o, lo que es lo mismo, para un tipo de entidad, almacenará información parecida para
cada ocurrencia de entidad. Pero, cada ocurrencia de entidad tendrá su propio valor para cada
atributo.
Atributo: Cada una de las propiedades o características que tiene un tipo de entidad o un tipo de
relación se denomina atributo; los atributos toman valores de uno o varios dominios.
En el modelo Entidad/Relación los atributos de una entidad son representados mediante el nombre
del atributo rodeado por una elipse. La elipse se conecta con la entidad mediante una línea recta.
Cada atributo debe tener un nombre único que haga referencia al contenido de dicho atributo. Los
nombres de los atributos se deben escribir en letra minúscula. En el gráfico se representan algunos
de los atributos para la entidad PACIENTE.
Al conjunto de valores permitidos para un atributo se le denomina dominio. Todos los posibles
valores que puede tomar un atributo deberán estar dentro del dominio. Varios atributos pueden
estar definidos dentro del mismo dominio. Por ejemplo, los atributos nombre, apellido primero y
apellido segundo de la entidad PACIENTE, están definidos dentro del dominio de cadenas de
caracteres de una determinada longitud.
Aunque los dominios suelen ser amplios (números enteros, reales, cadenas de caracteres, etc.), a la
hora de llevar a cabo el desarrollo de una base de datos, es mejor establecer unos límites adecuados
para que el sistema gestor de la base de datos lleve a cabo las verificaciones oportunas en los datos
que se almacenen, garantizando así la integridad de éstos.
-7-
Interpretación de diagramas entidad/relación DAW
Atributo simple o atómico: es un atributo que no puede dividirse en otras partes o atributos,
presenta un único elemento. No es posible extraer de este atributo partes más pequeñas que
puedan tener significado. Un ejemplo de este tipo de atributos podría ser el atributo dni de la
entidad JUGADOR del gráfico.
Atributo compuesto: son atributos que pueden ser divididos en subpartes, éstas constituirán
otros atributos con significado propio. Por ejemplo, la dirección del jugador podría
considerarse como un atributo compuesto por la calle, el número y la localidad.
c. Atributos monovaluados o multivaluados.
Atributo monovaluado: es aquél que tiene un único valor para cada ocurrencia de entidad.
Un ejemplo de este tipo de atributos es el dni.
Atributo multivaluado: es aquél que puede tomar diferentes
valores para cada ocurrencia de entidad. Por ejemplo, la dirección
de e-mail de un empleado podría tomar varios valores para alguien
que posea varias cuentas de correo. En este tipo de atributos hay que tener en cuenta los
siguientes conceptos:
La cardinalidad de un atributo indica el número mínimo y el número máximo de valores
que puede tomar para cada ejemplar de la entidad o relación a la que pertenece.
La cardinalidad mínima indica la cantidad de valores del atributo que debe existir para
que la entidad sea válida. Este número casi siempre es 0 o 1. Si es 0, el atributo podría no
contener ningún valor y si es 1, el atributo debe tener un valor.
La cardinalidad máxima indica la cantidad máxima de valores del atributo que puede
tener la entidad. Por lo general es 1 o n. Si es 1, el atributo no puede tener más que un
valor, si es n, el atributo puede tener múltiples valores y no se especifica la cantidad
absoluta.
El atributo E_mail de la figura, puede ser opcional y no contener ningún valor, o bien,
almacenar varias cuentas de correo electrónico de un jugador. Como ves, la cardinalidad
representada en la imagen es (0,n).
d. Atributos derivados o almacenados: el valor de este tipo de atributos puede ser obtenido
del valor o valores de otros atributos relacionados. Un ejemplo clásico de atributo derivado
es la edad. Si se ha almacenado en algún atributo la fecha de nacimiento, la edad es un valor
calculable a partir de dicha fecha.
4.2.- Claves.
En el apartado anterior hablábamos de un tipo de atributo especial obligatorio, las claves o llaves.
Ahora es el momento de abordar con mayor detalle este concepto.
Está claro que es necesario identificar correctamente cada ocurrencia de entidad o relación, de este
modo el tratamiento de la información que se almacena podrá realizarse adecuadamente. Esta
distinción podría llevarse a cabo tomando todos los valores de todos los atributos de una entidad o
relación. Pero, en algunas ocasiones, sabemos que puede no ser necesario utilizar todos, bastando
con un subconjunto de ellos. Aunque puede ocurrir que ese subconjunto tenga idénticos valores para
varias entidades, por lo que cualquier subconjunto no será válido.
-8-
Desarrollo de Aplicaciones Web Tema 3
Por tanto, los valores de los atributos de una entidad deben ser tales que permitan identificar
unívocamente a la entidad. En otras palabras, no se permite que ningún par de entidades tengan
exactamente los mismos valores de sus atributos. Teniendo en cuenta esto, presta atención a los
siguientes conceptos:
Superclave (Superllave): Es cualquier conjunto de atributos que permite identificar de forma
única a una ocurrencia de entidad. Una superclave puede tener atributos no obligatorios, es decir,
que no identificarían por si solos una ocurrencia de entidad.
Clave candidata: Si de una superclave no es posible obtener ningún subconjunto que
sea a su vez superclave, decimos que dicha superclave es clave candidata.
Clave primaria (Primary Key): También llamada llave primaria o clave principal. De todas las claves
candidatas, el diseñador de la base de datos ha de escoger una, que se denominará clave principal o
clave primaria. La clave primaria es un atributo o conjunto de ellos, que toman valores únicos y
distintos para cada ocurrencia de entidad, identificándola unívocamente. No puede contener valores
nulos.
Claves alternativas: son el resto de claves candidatas que no han sido escogidas como
clave primaria.
Sea la entidad TRABAJADOR, con los atributos nombre, apellido_1, apellido_2, dni,
numero_afiliacion_ss, fecha_nacimiento y código_empresa. ¿Los atributos nombre,
apellido_1 y apellido_2 podrían formar una clave candidata?
Sí, y podrían ser elegidos para ser la clave primaria de TRABAJADOR.
No, para esta entidad sólo el atributo dni será la clave primaria.
No, si tenemos en cuenta que puede haber varios trabajadores con el mismo nombre y
apellidos.
Efectivamente, los atributos dni y numero_afiliacion_ss, serían dos claves candidatas adecuadas. Si escogemos dni como clave primaria,
numero_afiliacion_ss quedaría como clave alternativa.
Otro ejemplo típico son las relaciones que representan históricos. Este tipo de relaciones suele
constar de datos como fecha y hora. Cuando se emite una factura a un cliente o se le facilita un
-9-
Interpretación de diagramas entidad/relación DAW
- 10 -
Desarrollo de Aplicaciones Web Tema 3
5.- Relaciones.
Caso práctico
María ha identificado claramente las entidades y atributos que van a intervenir en su esquema, pero
duda a la hora de representar cómo se van a relacionar dichas entidades.
Ada le indica que es muy importante leer muy bien el documento de especificación de requerimientos
del caso real a modelar, ya que de éste se desprenderán las particularidades de las relaciones entre
las entidades que acaba de identificar.
—Representar una relación gráficamente en el modelo E/R es sencillo, pero lo interesante es dotar a
esa representación de los elementos gráficos adecuados que reflejen fielmente cómo es en realidad:
grado, cardinalidad, etc.—comenta Ada.
¿Cómo interactúan entre sí las entidades? A través de las relaciones. La relación o interrelación es un
elemento del modelo Entidad/Relación que permite relacionar datos entre sí. En una relación se
asocia un elemento de una entidad con otro de otra entidad.
Cuando debas dar un nombre a una relación procura que éste haga referencia al objetivo o motivo
de la asociación de entidades. Se suelen utilizar verbos en singular. Algunos ejemplos podrían ser:
forman, poseen, atiende, contrata, hospeda, supervisa, imparte, etc.
En algunas ocasiones, es interesante que en las líneas que conectan las entidades con la relación, se
indique el papel o rol que desempeña cada entidad en la relación. Como se verá más adelante, los
papeles o roles son especialmente útiles en relaciones reflexivas.
Para describir y definir adecuadamente las relaciones existentes entre entidades, es imprescindible
conocer los siguientes conceptos:
Grado de la relación.
Cardinalidad de la relación.
Cardinalidades de las entidades.
- 11 -
Interpretación de diagramas entidad/relación DAW
Relación Binaria o de grado 2: Es aquella relación en la que participan dos entidades. En general,
tanto en una primera aproximación, como en los sucesivos refinamientos, el esquema
conceptual de la base de datos buscará tener sólo este tipo de relaciones.
Relación Ternaria o de grado 3: Es aquella relación en la que participan tres entidades al mismo
tiempo.
Relación N-aria o de grado n: Es aquella relación que involucra n entidades. Este tipo de
relaciones no son usuales y deben ser simplificadas hacia relaciones de menor grado.
Relación doble: ocurre cuando dos entidades están
relacionadas a través de dos relaciones. Este tipo de
relaciones son complejas de manejar.
Cardinalidad de una relación: Es el número máximo de ocurrencias de cada entidad que pueden
intervenir en una ocurrencia de relación. La cardinalidad vendrá expresada siempre para relaciones
entre dos entidades. Dependiendo del número de ocurrencias de cada una de las entidades pueden
existir relaciones uno a uno, uno a muchos, muchos a uno y muchos a muchos.
Una posible representación de la cardinalidad de las relaciones es la que hemos visto en el ejemplo
anterior. Podríamos representar el resto de cardinalidades mediante las etiquetas 1:1, 1:N, N:1, M:N
que se leerían respectivamente: uno a uno, uno a muchos, muchos a uno y muchos a muchos.
Veamos en detalle el significado de cada una de estas cardinalidades:
Relaciones uno a uno (1:1). Sean las entidades A y B, una instancia u ocurrencia de la entidad A
se relaciona únicamente con otra instancia de la entidad B y viceversa. Por ejemplo, para cada
ocurrencia de la entidad ALUMNO sólo habrá una ocurrencia relacionada de la entidad
EXPEDIENTE y viceversa. O lo que es lo mismo, un alumno tiene un expediente asociado y un
expediente sólo pertenece a un único alumno.
Relaciones uno a muchos (1:N). Sean las entidades A y B, una ocurrencia de la entidad A se
relaciona con muchas ocurrencias de la entidad B y una ocurrencia de la entidad B sólo estará
relacionada con una única ocurrencia de la entidad A. Por ejemplo, para cada ocurrencia de la
entidad DOCENTE puede haber varias ocurrencias de la entidad ASIGNATURA y para varias
ocurrencias de la entidad ASIGNATURA sólo habrá una ocurrencia relacionada de la entidad
DOCENTE (si se establece que una asignatura sólo puede ser impartida por un único docente). O
- 12 -
Desarrollo de Aplicaciones Web Tema 3
lo que es lo mismo, un docente puede impartir varias asignaturas y una asignatura sólo puede ser
impartida por un único docente.
Relaciones muchos a uno (N:1). Sean las entidades A y B, una ocurrencia de la entidad A está
asociada con una única ocurrencia de la entidad B y un ejemplar de la entidad B está relacionado
con muchas ocurrencias de la entidad A. Por ejemplo, Un JUGADOR pertenece a un único
EQUIPO y a un EQUIPO pueden pertenecer muchos jugadores.
Relaciones muchos a muchos (M:N). Sean las entidades A y B, un ejemplar de la entidad A está
relacionado con muchas ocurrencias de la entidad B y viceversa. Por ejemplo, un alumno puede
estar matriculado en varias asignaturas y en una asignatura pueden estar matriculados varios
alumnos.
La cardinalidad de las relaciones puede representarse de varias maneras en los esquemas del modelo
Entidad/Relación. A continuación, te ofrecemos un resumen de las notaciones clasificadas por
autores, más empleadas en la representación de cardinalidad de relaciones.
Notaciones para representación de cardinalidad de relaciones.
Relaciones uno a uno. Relaciones uno a muchos. Relaciones muchos a muchos.
- 13 -
Interpretación de diagramas entidad/relación DAW
Veámoslo más claro a través del siguiente ejemplo: un JUGADOR pertenece como mínimo a ningún
EQUIPO y como máximo a uno (0,1) y, por otra parte, a un EQUIPO pertenece como mínimo un
JUGADOR y como máximo varios (1,n). Como puedes ver, la cardinalidad (0,1) de JUGADOR se ha
colocado junto a la entidad EQUIPO para representar que un jugador puede no pertenecer a ningún
equipo o como máximo a uno. Para la cardinalidad de EQUIPO ocurre igual, se coloca su cardinalidad
junto a la entidad JUGADOR para expresar que en un equipo hay mínimo un jugador y máximo varios.
Ten en cuenta que cuando se representa la cardinalidad de una entidad, el paréntesis y sus valores
han de colocarse junto a la entidad con la que se relaciona. Es decir en el lado opuesto a la relación.
La cardinalidad de entidades también puede representarse en el modelo Entidad/Relación con la
notación que se representa en la imagen de la derecha. Por tanto, el anterior ejemplo quedaría
representado así:
Supongamos que seguimos diseñando una base de datos para un sitio de juegos online.
En un punto del proceso de diseño se ha de modelar el siguiente requisito: cada usuario
registrado podrá crear las partidas que desee (a las que otros usuarios pueden unirse),
pero una partida solo podrá estar creada por un único usuario. Un usuario podrá o no
crear partidas. ¿Cuáles serían las etiquetas del tipo (cardinalidad mínima, cardinalidad
máxima) que deberían ponerse junto a las entidades USUARIO y PARTIDA
respectivamente, si éstas están asociadas por la relación CREAR (partida)?
(1,N) y (0,N)
(1,1) y (1,N)
(1,1) y (0,N)
Efectivamente, con estas cardinalidades estarías indicando que un usuario puede crear varias partidas, o ninguna. Por otra parte, una
partida deberá estar creada exclusivamente por un único usuario.
- 14 -
Desarrollo de Aplicaciones Web Tema 3
–Mira Juan, voy a imprimir estos gráficos en los que figuran los símbolos más utilizados a la hora de
generar diagramas E/R. ¿Sabías que existen diferentes notaciones? – pregunta María.
Juan, que está buscando en su cajón la caja de las chinchetas, añade: –Me parece una idea genial y
sí, sí que conocía la existencia de diferentes símbolos. Además, mientras buscaba en Internet
algunos ejemplos, he visto que se pueden representar de diferentes maneras los mismos elementos.
–Estupendo, así tendréis a mano la gran mayoría de símbolos y os será más cómodo interpretar los
ejemplos que consultéis –comenta Ada.
¿Recuerdas todos y cada uno de los símbolos que hemos utilizado a lo largo de esta unidad? Es
probable que no. Para facilitar tu aprendizaje, te ofrecemos a continuación un resumen básico de los
símbolos utilizados en el modelo Entidad/Relación. Verás que existen diferentes maneras de
representar los mismos elementos, las que aquí se resumen te servirán para interpretar la gran
mayoría de esquemas con los que te puedas encontrar.
- 15 -
Interpretación de diagramas entidad/relación DAW
Hemos visto que a través del modelo Entidad/Relación se pueden modelar la gran mayoría de los
requisitos que una base de datos debe cumplir. Pero existen algunos que ofrecen especial dificultad a
la hora de representarlos a través de la simbología tradicional del modelo E/R. Para solucionar este
problema, en el modelo Entidad/Relación Extendido se han incorporado nuevas extensiones que
permiten mejorar la capacidad para representar circunstancias especiales. Estas extensiones intentan
eliminar elementos de difícil o incompleta representación a través de la simbología existente, como
por ejemplo relaciones con cardinalidad N:M, o la no identificación clara de entidades.
A continuación, se detallan estas nuevas características que convierten al modelo E/R tradicional en
el modelo Entidad/Relación Extendido, como son: tipos de restricciones sobre las relaciones,
especialización, generalización, conjuntos de entidades de nivel más alto y más bajo, herencia de
atributos y agregación.
- 16 -
Desarrollo de Aplicaciones Web Tema 3
Siguiendo con el ejemplo anterior, supongamos que para que un monitor pueda impartir
cursos de cocina sea necesario que reciba previamente dos cursos: nutrición y primeros
auxilios. Como puedes ver, es posible que los cursos que el monitor deba recibir no tengan
que ser los mismos que luego pueda impartir. Aplicando una restricción de inclusividad entre
las relaciones imparte y recibe, estaremos indicando que cualquier ocurrencia de la entidad
MONITOR que participa en una de las relaciones (imparte) tiene que participar
obligatoriamente en la otra (recibe).
Se representará mediante un arco acabado en flecha, que partirá desde la relación que ha de
cumplirse primero hacia la otra relación. Se indicará junto al arco la cardinalidad mínima y
máxima de dicha restricción de inclusividad. En el ejemplo, (2,n) indica que un monitor ha de
recibir 2 cursos antes de poder impartir varios.
d. Restricción de inclusión.
En algunas ocasiones aplicar una restricción de inclusividad no representa totalmente la
realidad a modelar, entonces se hace necesario aplicar una restricción de inclusión que es
aún más fuerte.
En nuestro ejemplo, si hemos de modelar que un monitor pueda impartir un curso, si
previamente lo ha recibido, entonces tendremos que aplicar una restricción de inclusión. Con
ella toda ocurrencia de la entidad MONITOR que esté asociada a una ocurrencia determinada
de la entidad CURSO, a través de la relación imparte, ha de estar unida a la misma ocurrencia
de la entidad CURSO a través de la relación recibe.
- 17 -
Interpretación de diagramas entidad/relación DAW
Cuando estamos diseñando una base de datos puede que nos encontremos con conjuntos de
entidades que posean características comunes, lo que permitiría crear un tipo de entidad de nivel
más alto que englobase dichas características. Y a su vez, puede que necesitemos dividir un conjunto
de entidades en diferentes subgrupos de entidades por tener éstas, características diferenciadoras.
Este proceso de refinamiento ascendente/descendente, permite expresar mediante la generalización
la existencia de tipos de entidades de nivel superior que engloban a conjuntos de entidades de nivel
inferior. A los conjuntos de entidades de nivel superior también se les denomina superclase o
supertipo. A los conjuntos de entidades de nivel inferior se les denomina subclase o subtipo.
Por tanto, existirá la posibilidad de realizar una especialización de una superclase en subclases, y
análogamente, establecer una generalización de las subclases en superclases. La generalización es la
reunión en una superclase o supertivo de entidad de una serie de subclases o subtipos de entidades,
que poseen características comunes. Las subclases tendrán otras características que las diferenciarán
entre ellas.
Las jerarquías se caracterizan por un concepto que hemos de tener en cuenta, la herencia. A través
de la herencia los atributos de una superclase de entidad son heredados por las subclases. Si una
superclase interviene en una relación, las subclases también lo harán.
¿Cómo se representa una generalización o especialización? Existen varias notaciones, pero hemos de
convenir que la relación que se establece entre una superclase de entidad y todos sus subtipos se
expresa a través de las palabras ES UN, o en notación inglesa IS A, que correspondería con ES UN
TIPO DE. Partiendo de este punto, una jerarquía se representa mediante un triángulo invertido, sobre
él quedará la entidad superclase y conectadas a él a través de líneas rectas, las subclases.
- 18 -
Desarrollo de Aplicaciones Web Tema 3
Ejercicio resuelto
Supongamos la existencia de dos entidades TURISMO y CAMION. Los atributos de la entidad
TURISMO son: Num_bastidor, Fecha_fab, precio y Num_puertas. Los atributos de la entidad CAMION
son: Num_bastidor, Fecha_fab, precio, Num_ejes y Tonelaje.
Si analizamos ambas entidades existen algunos atributos comunes y otros que no. Por tanto,
podremos establecer una jerarquía. Para ello, reuniremos los atributos comunes y los asociaremos a
una nueva entidad superclase denominada VEHICULO. Las subclases TURISMO y CAMI0N, con sus
atributos específicos, quedarán asociadas a la superclase VEHICULO mediante una jerarquía parcial
con solapamiento. En el siguiente gráfico puedes apreciar la transformación.
Respuesta:
7.3.- Agregación.
- 19 -
Interpretación de diagramas entidad/relación DAW
Con la agregación hemos terminado de detallar las extensiones más importantes del
modelo Entidad/Relación Extendido. A lo largo de tu andadura por el mundo de las bases
de datos y, en concreto, en todo lo relacionado con los esquemas conceptuales y
diagramas Entidad/Relación, es probable que te encuentres con diferentes notaciones y
simbologías. Algunas ya las hemos representado a lo largo de esta unidad y otras podrás
encontrarlas en el enlaces que te ofrecemos a continuación. Además, puedes utilizar la
información que te proponemos para reforzar y ampliar todo lo visto.
http://www.lsi.us.es/docencia/get.php?id=4564 (páginas 1 a 9). (0.33 MB)
Si hemos de representar a través del modelo E/R Extendido los alumnos pertenecientes a
una clase, podríamos utilizar una agregación del tipo Compuesto/Componente.
Verdadero Falso
Al ser el alumnado un conjunto de elementos que representan el mismo rol en la relación, el tipo de agregación debería ser
Miembro/Colección.
- 20 -
Desarrollo de Aplicaciones Web Tema 3
Ada, está echando un vistazo a lo que llevan hecho Juan y María. – Efectivamente Juan, hay que
ser metódicos y no descartar ningún paso, pues podríamos provocar errores en nuestros desarrollos.
La confianza de nuestros clientes es vital y para ello hemos de obtener un producto con la mayor
calidad posible.
María añade: –Supongo que según vayamos realizado proyectos parecidos mejoraremos nuestra
técnica.
Llegados a este punto, te surgirán varias dudas ¿Cómo creo un diagrama E/R? ¿Por dónde empiezo?
¿Y qué puedo hacer con todo lo visto? Son cuestiones totalmente normales cuando se comienza, no
te preocupes, vamos a darte una serie de orientaciones para que puedas aplicar todos los conceptos
aprendidos hasta ahora en la elaboración de diagramas Entidad/Relación.
Sabemos que en la fase de diseño conceptual de la base de datos, en la que nos encontramos, hemos
de generar el diagrama E/R que representará de manera más sencilla el problema real a modelar,
independientemente del Sistema Gestor de Base de Datos. Este esquema será como un plano que
facilite la comprensión y solución del problema. Este diagrama estará compuesto por la
representación gráfica, a través de la simbología vista, de los requisitos o condiciones que se derivan
del problema a modelar.
Saltarnos este paso en el proceso de creación e implementación de una base de datos, supondría
pérdida de información. Por lo que esta fase, requerirá de la creación de uno o varios esquemas
previos más cercanos al mundo real, antes del paso a tablas del modelo relacional.
- 21 -
Interpretación de diagramas entidad/relación DAW
Otra forma de identificar entidades es localizando objetos o elementos que existen por sí
mismos. Por ejemplo: VEHICULO, PIEZA, etc. En otras ocasiones, la localización de varias
características o propiedades puede dejar ver la existencia de una entidad.
¿Esto puede ser una entidad o no? Es una pregunta que se repite mucho cuando estamos en
esta etapa. Algunos autores indican que para poder considerarse como entidad se deben
cumplir tres reglas:
Existencia propia.
Cada ejemplar de un tipo de entidad debe poder ser diferenciado del resto de
ejemplares.
Todos los ejemplares de un tipo de entidad deben tener las mismas propiedades.
El número de entidades obtenidas debe ser manejable y según se vayan identificando se les
otorgará nombres, preferiblemente en mayúsculas, representativos de su significado o
función. De esta manera el diagrama será cada vez más legible.
En ocasiones, el identificador de una relación está compuesto por varias palabras, como por
ejemplo: es supervisado, trabaja para, etc. Es recomendable que utilices guiones bajos para unir las
palabras que forman el identificador.
Si hemos encontrado alguna relación recursiva, reflexiva o unaria, hemos de representar en nuestro
esquema los roles desempeñados por la entidad en dicha relación.
- 22 -
Desarrollo de Aplicaciones Web Tema 3
8.3.- Metodologías.
Hasta aquí, tenemos identificados los elementos necesarios para construir nuestro diagrama, pero
¿Existe alguna metodología para llevarlo a cabo? Sí, y además podremos utilizar varias. Partiremos de
una versión preliminar del esquema conceptual o diagrama E/R que, tras sucesivos refinamientos,
será modificado para obtener el diagrama E/R definitivo. Las metodologías o estrategias disponibles
para la elaboración del esquema conceptual son las siguientes:
a. Metodología Descendente (Top-Down): Se trata de partir de un esquema general e ir
descomponiendo éste en niveles, cada uno de ellos con mayor número de detalles. Se parte
de objetos muy abstractos, que se refinan paso a paso hasta llegar al esquema final.
- 23 -
Interpretación de diagramas entidad/relación DAW
b. Metodología Ascendente (Bottom-Up): Inicialmente, se parte del nivel más bajo, los
atributos. Se irán agrupando en entidades, para después ir creando las relaciones entre éstas
y las posibles jerarquías hasta obtener un diagrama completo. Se parte de objetos atómicos
que no pueden ser descompuestos y a continuación se obtienen abstracciones u objetos de
mayor nivel de abstracción que forman el esquema.
c. Metodología Dentro-fuera (Inside-Out): Inicialmente se comienza a desarrollar el esquema
en una parte del papel y a medida que se analiza la especificación de requerimientos, se va
completando con entidades y relaciones hasta ocupar todo el documento.
d. Metodología Mixta: Es empleada en problemas complejos. Se dividen los requerimientos en
subconjuntos que serán analizados independientemente. Se crea un esquema que servirá
como estructura en la que irán interconectando los conceptos importantes con el resultado
del análisis de los subconjuntos creados. Esta metodología utiliza las técnicas ascendente y
descendente. Se aplicará la técnica descendente para dividir los requerimientos y en cada
subconjunto de ellos, se aplicará la técnica ascendente.
¿Cuál de estas metodologías utilizar? Cualquiera de ellas puede ser válida, todo dependerá de lo fácil
y útil que te resulte aplicarlas. Probablemente y, casi sin ser consciente de ello, tú mismo crearás tu
propia metodología combinando las existentes. Pero, como decíamos hace algunos epígrafes, la
práctica es fundamental. Realizando gran cantidad de esquemas, analizándolos y llevando a cabo
modificaciones en ellos es como irás refinando tu técnica de elaboración de diagramas E/R. Llegará
un momento en que sólo con leer el documento de especificación de requerimientos serás capaz de
ir construyendo en tu mente cómo será su representación sobre el papel, pero paciencia y ve paso a
paso.
- 24 -
Desarrollo de Aplicaciones Web Tema 3
¿Dónde buscamos indicios de redundancia en nuestros esquemas? Existen lugares y elementos que
podrían presentar redundancia, por ejemplo:
Atributos redundantes cuyo contenido se calcula en función de otros. Un atributo derivado
puede ser origen de redundancia.
Varias entidades unidas circularmente o cíclica a través de varias relaciones, es lo que se conoce
como un ciclo. En caso de existir un ciclo, deberemos tener en cuenta las siguientes condiciones,
antes de poder eliminar dicha relación redundante:
Que el significado de las relaciones que componen el ciclo sea el mismo.
Que si eliminamos la relación redundante, el significado del resto de relaciones es el mismo.
Que si la relación eliminada tenía atributos asociados, éstos puedan ser asignados a alguna
entidad participante en el esquema, sin que se pierda su significado.
Pero hay que tener en cuenta que no siempre que exista un ciclo estaremos ante una redundancia.
Es necesario analizar detenidamente dicho ciclo para determinar si realmente existe o no
redundancia.
Para finalizar, una apreciación. No toda redundancia es perjudicial. Existen ciertas circunstancias y
condiciones en las que es conveniente (sobre todo a efectos de rendimiento) introducir cierta
redundancia controlada en una base de datos. Por ejemplo, si el método de cálculo del valor de un
determinado atributo derivado es complejo (varias operaciones matemáticas o de cadenas de
caracteres, varios atributos implicados, etc.) y ralentiza el funcionamiento de la base de datos, quizá
sea conveniente definir dicho atributo desde el principio y no considerarlo como un atributo
redundante. La incorporación o no de redundancia controlada dependerá de la elección que haga el
diseñador.
- 25 -
Interpretación de diagramas entidad/relación DAW
Si en un diagrama E/R asociamos un atributo a una entidad, pero este atributo debe
asociarse realmente a una relación en la que interviene dicha entidad, estaríamos
incumpliendo la propiedad de:
Completitud
Corrección semántica
Corrección sintáctica
- 26 -
Desarrollo de Aplicaciones Web Tema 3
–¿Y ahora cómo se pasa este diagrama a una base de datos real? –pregunta María.
–Aún hay que obtener el "paso a tablas" de lo representado en el diagrama. En cuanto realicemos
esa transformación tendremos los elementos necesarios para implementar nuestra base de datos en
cualquier SGBD relacional –le aclara Ada.
Si analizamos todo el proceso descrito hasta el momento, la fase de diseño conceptual desarrollada,
y que se materializa en el diagrama E/R, permite una gran independencia de las cuestiones relativas a
la implementación física de la base de datos. El tipo de SGBD, las herramientas software, las
aplicaciones, lenguajes de programación o hardware disponible no afectarán, al menos hasta el
momento, a los resultados de esta fase.
Nuestro esquema conceptual habrá sido revisado, modificado y probado para verificar que se
cumplen adecuadamente todos y cada uno de los requerimientos del problema a modelar. Este
esquema representará el punto de partida para la siguiente fase, el diseño lógico de la base de datos.
Para esta transformación será necesario realizar una serie de pasos preparatorios sobre el esquema
conceptual obtenido en la fase de diseño conceptual. Nos centraremos en la simplificación y
transformación del esquema para que el paso hacia el modelo de datos elegido (en este caso el
modelo relacional) sea mucho más sencilla y efectiva.
Como paso posterior, sobre la información del esquema lógico obtenido, será necesario llevar a cabo
un proceso que permitirá diseñar de forma correcta la estructura lógica de los datos. Este proceso
recibe el nombre de normalización, que se conforma como un conjunto de técnicas que permiten
validar esquemas lógicos basados en el modelo relacional.
Entonces, ¿qué pasos son los siguientes a dar? Resumiendo un poco, simplificaremos nuestro
diagrama E/R, lo transformaremos al modelo relacional, aplicaremos normalización y obtendremos lo
que se conoce en el argot como el paso a tablas del esquema conceptual o, lo que es lo mismo, el
esquema lógico. Desde ese momento, basándonos en este esquema, podremos llevarnos nuestra
base de datos a cualquier SGBD basado en el modelo relacional e implementarla físicamente. Esta
implementación física será totalmente dependiente de las características del SGBD elegido.
- 27 -
Interpretación de diagramas entidad/relación DAW
- 28 -
Desarrollo de Aplicaciones Web Tema 3
Sea la entidad ALUMNADO que participa en la relación COLABORA con otra entidad
llamada GRUPO_TRABAJO. Un alumno o alumna puede colaborar en varios grupos
de trabajo simultáneamente y, a su vez, en un grupo de trabajo pueden colaborar un
número indeterminado de alumnos. Se necesita registrar los días en los que el alumnado
colabora con cada grupo de trabajo, para ello se asocia a la relación COLABORA un
atributo denominado fecha_colaboración. Este atributo registrará en qué fecha un
determinado alumno/a ha colaborado en un determinado grupo de trabajo.
¿Si tuvieras que hacer la transformación de esta parte del esquema conceptual para
eliminar la relación M a N COLABORA, dónde colocarías el atributo
fecha_colaboración?
En la entidad ALUMNADO, ya que en esta entidad es donde se almacenan todos los datos
asociados al alumnado. Si consultamos el alumno o alumna, sabremos cuándo a colaborado
en un grupo
En una nueva entidad que es combinación de ALUMNADO y GRUPO_TRABAJO, a la que
podríamos llamar ALUMNADO_GRUPO
En la entidad GRUPO_TRABAJO
al transformar la relación M a N, se crean dos relaciones 1 a N entre ALUMNADO-ALUMNADO_GRUPO Y GRUPO_TRABAJO-
ALUMNADO_GRUPO, siendo ALUMNADO_GRUPO una nueva entidad que tendrá por claves las claves primarias de ALUMNADO y
GRUPO_TRABAJO, recibiendo como atributo el atributo que estaba asociado a la relación COLABORA. Para cada par
ALUMNADO/GRUPO_TRABAJO tendremos registrado cuándo se realizó la colaboración.
- 29 -
Interpretación de diagramas entidad/relación DAW
Las relaciones Uno a Muchos podrán generar una nueva tabla o propagar la clave.
- 30 -
Desarrollo de Aplicaciones Web Tema 3
Las relaciones Muchos a Muchos se transforman en una tabla que tendrá como clave primaria las
claves primarias de las entidades que asocia.
- 31 -
Interpretación de diagramas entidad/relación DAW
Ejercicio resuelto
Sea la siguiente representación a través del modelo E/R de una
relación entre dos entidades, obtén el paso a tablas de dicho
esquema:
Respuesta:
Para materializar la relación de uno a muchos LABORAL, se incluye una clave foránea en la entidad
TRABAJADOR, que referencia a la entidad EMPRESA, quedando:
- 32 -
Desarrollo de Aplicaciones Web Tema 3
¿Crees que tu base de datos ya podría construirse directamente sobre el SGBD relacional que hayas
elegido? La respuesta podría ser afirmativa, pero si queremos que nuestra base de datos funcione
con plena fiabilidad, es necesario antes llevar a cabo un proceso de normalización de las tablas que
la componen.
Normalización: Proceso que consiste en imponer a las tablas del modelo Relacional una serie de
restricciones a través de un conjunto de transformaciones consecutivas. Este proceso garantizará
que las tablas contienen los atributos necesarios y suficientes para describir la realidad de la entidad
que representan, permitiendo separar aquellos atributos que por su contenido podrían generar la
creación de otra tabla.
A veces uno se pregunta ¿Quién habrá sido el ideante de estos conceptos? En el siguiente
enlace que te proponemos, puedes conocer quién fue.
http://es.wikipedia.org/wiki/Edgar_Frank_Codd
A principios de la década de los setenta, concretamente en 1972, Codd establece una técnica para
llevar a cabo el diseño de la estructura lógica de los datos representados a través del modelo
relacional, a la que denominó normalización. Pero esta técnica no ha de utilizarse para el diseño de
la base de datos, sino como un proceso de refinamiento que debe aplicarse después de lo que
conocemos como “paso a tablas”, o lo que formalmente se denomina traducción del esquema
conceptual al esquema lógico. Este proceso de refinamiento conseguirá los siguientes objetivos:
Suprimir dependencias erróneas entre atributos.
Optimizar los procesos de inserción, modificación y borrado en la base de datos.
El proceso de normalización se basa en el análisis de las dependencias entre atributos. Para ello
tendrá en cuenta los conceptos de: dependencia funcional, dependencia funcional completa y
dependencia transitiva. Estos conceptos se desarrollan seguidamente.
¿Y cómo se aplica la normalización? Es un proceso que se realiza en varias etapas secuenciales. Cada
etapa está asociada a una forma normal, que establece unos requisitos a cumplir por la tabla sobre
la que se aplica. Existen varias formas normales: Primera, Segunda, Tercera, Boyce-Codd, Cuarta,
Quinta y Dominio-Clave. Como hemos indicado, el paso de una forma normal a otra es consecutivo,
si no se satisface una determinada forma normal no puede pasarse al análisis de la siguiente. Según
vamos avanzando en la normalización, los requisitos a cumplir serán cada vez más restrictivos, lo que
hará que nuestro esquema relacional sea cada vez más robusto.
Como norma general, para garantizar que no existan problemas en la actualización de datos, es
recomendable aplicar el proceso de normalización hasta Tercera Forma Normal o incluso hasta
Forma Normal de Boyce-Codd. En los siguientes epígrafes se describen las características y requisitos
de cada una de las formas normales.
- 33 -
Interpretación de diagramas entidad/relación DAW
Para ilustrar los tipos de dependencias descritas, analiza el siguiente ejercicio resuelto.
Ejercicio resuelto
Resultado:
Apartado a)
Los atributos Nombre, y Dirección dependen funcionalmente de DNI, ya que para un DNI específico
sólo podrá haber un nombre y una dirección. Pero los atributos Nombre_hijo y Edad_hijo no
presentan esa dependencia funcional de DNI, ya que para un DNI específico podríamos tener varios
valores diferentes en esos atributos. (Consideraremos para este ejemplo que todos los empleados
registrados en esta base de datos tienen nombres distintos). Expresemos estas dependencias
funcionales mediante su notación:
DNI → Nombre
DNI → Dirección
Apartado b)
Los atributos Editorial y Precio dependen funcionalmente del conjunto de atributos que forman la
clave primaria de la tabla, pero no dependen de Título_libro o de Num_ejemplar por separado, por lo
que presentan una dependencia funcional completa de la clave. El atributo Autor depende
funcionalmente sólo y exclusivamente de Titulo_libro, por lo que no presenta una dependencia
funcional completa de los atributos que forman la clave.
- 34 -
Desarrollo de Aplicaciones Web Tema 3
Apartado c)
Los atributos Cod_Localidad y Localidad dependen funcionalmente de DNI, pero entre Cod_Localidad
y Localidad existe otra dependencia funcional. Por tanto, se establece que Localidad depende
funcionalmente de Cod_Localidad, y a su vez, Cod_Localidad depende funcionalmente de DNI. Con lo
que podemos afirmar que existe una dependencia transitiva entre Localidad y DNI. Si lo
representamos con la notación asociada a las dependencias funcionales, quedaría:
DNI → Cod_Localidad → Localidad.
1ª Forma Normal
Una tabla está en Primera Forma Normal (1FN o FN1) sí, y sólo sí, todos los atributos de la misma
contienen valores atómicos, es decir, no hay grupos repetitivos. Dicho de otra forma, estará en 1FN si
los atributos no clave, dependen funcionalmente de la clave. ¿Cómo se normaliza a Primera Forma
Normal?
a. Se crea, a partir de la tabla inicial, una nueva tabla cuyos atributos son los que presentan
dependencia funcional de la clave primaria. La clave de esta tabla será la misma clave
primaria de la tabla inicial. Esta tabla ya estará en 1FN.
b. Con los atributos restantes se crea otra tabla y se elije entre ellos uno que será la clave
primaria de dicha tabla. Comprobaremos si esta segunda tabla está en 1FN. Si es así, la tabla
inicial ya estará normalizada a 1FN y el proceso termina. Si no está en 1FN, tomaremos la
segunda tabla como tabla inicial y repetiremos el proceso.
2ª Forma Normal
Una tabla está en Segunda Forma Normal (2FN o FN2) sí, y sólo sí, está en 1FN y, además, todos los
atributos que no pertenecen a la clave dependen funcionalmente de forma completa de ella. Es
obvio que una tabla que esté en 1FN y cuya clave esté compuesta por un único atributo, estará en
2FN. ¿Cómo se normaliza a Segunda Forma Normal?
a. Se crea, a partir de la tabla inicial, una nueva tabla con los atributos que dependen
funcionalmente de forma completa de la clave. La clave de esta tabla será la misma clave
primaria de la tabla inicial. Esta tabla ya estará en 2FN.
b. Con los atributos restantes, se crea otra tabla que tendrá por clave el subconjunto de
atributos de la clave inicial de los que dependen de forma completa. Se comprueba si esta
tabla está en 2FN. Si es así, la tabla inicial ya está normalizada y el proceso termina. Si no está
en 2FN, tomamos esta segunda tabla como tabla inicial y repetiremos el proceso.
3ª Forma Normal
Una tabla está en Tercera Forma Normal (3FN o FN3) sí, y sólo sí, está en 2FN y, además, cada
atributo que no está en la clave primaria no depende transitivamente de la clave primaria. ¿Cómo se
normaliza a Tercera Forma Normal?
a. Se crea, a partir de la tabla inicial, una nueva tabla con los atributos que no poseen
dependencias transitivas de la clave primaria. Esta tabla ya estará en 3FN.
b. Con los atributos restantes, se crea otra tabla con los dos atributos no clave que intervienen
en la dependencia transitiva, y se elije uno de ellos como clave primaria, si cumple los
requisitos para ello. Se comprueba si esta tabla está en 3FN. Si es así, la tabla inicial ya está
- 35 -
Interpretación de diagramas entidad/relación DAW
normalizada y el proceso termina. Si no está en 3FN, tomamos esta segunda tabla como
tabla inicial y repetiremos el proceso.
Si deseas conocer cuáles son las propiedades y requisitos a cumplir establecidos en las formas
normales 4ª, 5ª y DKFN, te proponemos los siguientes enlaces:
http://conclase.net/mysql/curso/?cap=004c#NOR_4FN
http://es.wikipedia.org/wiki/5NF
http://es.wikipedia.org/wiki/DKNF
Ejercicio resuelto
Sea la siguiente tabla:
Resultado:
Comprobamos 1FN:
La tabla COMPRAS está en 1FN ya que todos sus atributos son atómicos y todos los atributos no clave
dependen funcionalmente de la clave.
Comprobamos 2FN:
Nos preguntaremos ¿Todo atributo depende de todo el conjunto de atributos que forman la clave
primaria, o sólo de parte?. Como vemos, existen atributos que dependen sólo de una parte de la
clave, por lo que esta tabla no está en 2FN.
- 36 -
Desarrollo de Aplicaciones Web Tema 3
Una vez hecha esta descomposición, ambas tablas están en 2FN. Todos los atributos no clave
dependen de toda la clave primaria.
Comprobamos 3FN:
PRODUCTO está en 3FN, ya que por el número de atributos que tiene no puede tener dependencias
transitivas.
¿COMPRA1 está en 3FN? Hemos de preguntarnos si existen dependencias transitivas entre atributos
no clave.
cod_prov → nomb_prov
cod_prov → tfno
(siendo cod_prov el código del proveedor y nomb_prov el nombre del proveedor)
COMPRA1 no está en 3FN porque existen dependencias transitivas entre atributos no clave, por
tanto hemos de descomponer:
Comprobamos FNBC:
PRODUCTO está en FNBC, ya que está en 3FN y todo determinante es clave candidata.
COMPRA2 está en FNBC, ya que está en 3FN y todo determinante es clave candidata.
PROVEEDOR está en FNBC, ya que está en 3FN y todo determinante es clave candidata.
La tabla inicial COMPRAS queda normalizada hasta FNBC del siguiente modo:
- 37 -