Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3.1. Problemas que puede presentar el diseño de una base de datos relacional.
Unidad 3 Página 1 de 18
Diseño de las bases de datos relacionales
En el modelo relacional, como en los demás modelos, el diseño de una base de datos
se puede abordar de dos formas distintas:
Ejemplo 1.
Si observamos con atención la relación siguiente, vemos que presenta varios de los
problemas enumerados anteriormente:
. Gran cantidad de redundancia; ya que la nacionalidad del autor se repite por cada
ocurrencia del mismo, y algo análogo sucede, cuando un libro tiene más de un
autor, con la editorial y el año de publicación.
. Anomalías de modificaciones; ya que, inadvertidamente podemos, por ejemplo,
cambiar el nombre de la editorial en una tupla sin modificar en el resto de las que
corresponden al mismo libro, lo que da lugar a incoherencias.
. Anomalías de inserción; ya que si se quisiera incluir información sobre algún autor
del que no hubiera ningún libro en la base de datos, no sería posible, al formar el
atributo cod_libro parte de la clave primaria de la relación, ni tampoco podríamos
introducir obras anónimas (recuérdese la regla de integridad de entidad que no
permite los nulos en ningún atributo que forme parte de una clave primaria).
Además, la inserción de un libro que tuviera dos autores obligaría a incluir dos
tuplas en la base de datos.
Unidad 3 Página 2 de 18
Diseño de las bases de datos relacionales
Vemos, por tanto, que la actualización (alta, baja o modificación) de un solo libro o de un
solo autor nos puede obligar a actualizar más de una tupla, dejándose la integridad de la
base de datos en manos del usuario; además de la falta de eficiencia asociada a estas
múltiples actualizaciones.
Esta relación presenta todos estos problemas, y algunos más, debido a que atenta
contra un principio básico en todo diseño:
"hechos distintos se deben almacenar en objetos distintos"
en este caso, en relaciones distintas, con lo que se habrían evitado redundancias y, por
tanto, anomalías de actualización.
Ejemplo 2.
Supóngase una base de datos que contiene información sobre Vendedores, Artículos
y Cantidades con los siguientes datos.
Unidad 3 Página 3 de 18
Diseño de las bases de datos relacionales
Es fácil darse cuenta que esta base de datos no se encuentra bien diseñada, debido al
alto grado de redundancia que existe, es decir; no es necesario especificar tantas veces
que el vendedor S1 es de Londres ya, que con que hubiese una sola referencia a este
hecho, sería suficiente.
La teoría de la normalización puede definirse como una técnica formal para organizar
datos que nos ayuda a determinar qué está equivocado en un diseño y nos enseña la
manera de corregirlo. Introduce una formalización en el diseño lógico de bases de datos
relacionales, lo que, además, permite mecanizar parte del proceso al poder disponer de
instrumentos algorítmicos de ayuda al diseño.
Se dice que un esquema de relación está en una determinada forma normal si satisface
determinado conjunto específico de restricciones.
Las dependencias son propiedades inherentes al contenido semántico de los datos que
se han de cumplir para cualquier extensión del esquema de relación y forma parte de las
restricciones de usuario del modelo relacional.
Unidad 3 Página 4 de 18
Diseño de las bases de datos relacionales
Existen diferentes tipos de dependencias, aunque, ahora, sólo vamos a tratar las
dependencias funcionales, que son las más extendidas y constituyen la base de la tres
primeras formas normales.
Dependencia funcional
Por ejemplo, todos sabemos que entre los atributos "DNI" y "NOMBRE" existe una
dependencia funcional, puesto que un valor de DNI se corresponde con un solo NOMBRE.
DNI NOMBRE
NOMBRE DNI
Existen atributos que no tienen entre sí una dependencia funcional como es el caso de
DNI_AUTOR y TITULO_LIBRO tratando el tema de libros publicados por autores. En este
caso, un autor escribe varios libros y un libro puede estar escrito por varios autores.
Unidad 3 Página 5 de 18
Diseño de las bases de datos relacionales
atributos. Así sucede, si tenemos los atributos: dni, empresa y sueldo, y sabemos que una
persona puede trabajar en varias empresas. Entre los atributos DNI y SUELDO no existe
dependencia funcional, puesto que un individuo puede ganar varios sueldos dependiendo
de la empresa en la que trabaje. Pero si conocemos la empresa en la que trabaja, sí
podemos decir que:
DNI.EMPRESA SUELDO
Se suele utilizar el operador punto "." para representar la expresión "junto con " o "y"
entre ambos atributos y el operador coma ó "|" para hacer referencia a la expresión "o
también". Por tanto, podemos decir que el DNI "junto con" la EMPRESA determinan el
SUELDO.
Y, podemos representar que con el DNI se conoce el nombre "o también" la dirección,
de la forma:
DNI NOMBRE | DIRECCIÓN
DNI.EMPRESA NOMBRE
DNI.EMPRESA SUELDO
Las dependencias que nos interesan para tratar los problemas son siempre las
dependencias funcionales completas, y sólo ellas servirán para encontrar la solución.
No todas las dependencias son útiles para la teoría de la normalización, sino solamente
un subconjunto de ellas, que son las llamadas dependencias funcionales elementales.
Unidad 3 Página 6 de 18
Diseño de las bases de datos relacionales
Gráficamente será: Y
Por lo tanto, un atributo (Z) es transitivamente dependiente de otro (X) si se conoce por
diferentes vías, una directamente, y otra a partir de otro atributo intermedio (en nuestro
caso, Y).
Por ejemplo, consideremos cuatro atributos que forman parte de datos relativos a un
alumno: NUMMAT (número matricula), NOMALU (nombre del alumno), GRUASI (grupo
asignado), AULGRU (aula correspondiente al grupo). Se parte de los condicionantes:
GRUASI
NUMMAT
AULGRU
Una herramienta muy útil a la hora de explicar las dependencias funcionales es el grafo
o diagrama de dependencias funcionales, mediante el cual se representa un conjunto de
atributos y las dependencias funcionales existentes entre ellos.
Unidad 3 Página 7 de 18
Diseño de las bases de datos relacionales
información, que queremos incluir en cada entidad y en cada asociación. Esa información,
o sea los atributos, será estudiada más a fondo para obtener las dependencias funcionales
que aparecen a simple vista. Si es necesario, se aplicarán las propiedades anteriores para
obtener nuevas dependencias (Armstrong). Es útil utilizarlas en atributos que son códigos
compuestos y que relacionan otros códigos, a su vez compuestos. Por último, debemos
identificar la clave de las entidades y las asociaciones.
El grafo de las DF es una forma clara de tener una visión general de los datos y de la
cohesión existente entre ellos. La clave que se obtiene de tratar todas las DF, se
representa dentro de una caja de líneas continuas con sus atributos primarios. El resto de
los atributos se representan fuera de la caja, y después las dependencias entre todos ellos.
Si existen dependencias de varios atributos, que no son la clave, irán en una caja de
líneas discontinuas para no confundirlo con la propia clave de la tabla.
Por ejemplo sean las dependencias:
A.B.C M,N,S
MN
B.C O,P,R
CQ
A M N
B O P
C Q
R
S
Una relación R se encuentra en primera forma normal (IFN) si y sólo si todos los
dominios simples subyacentes contienen sólo valores atómicos. Es decir, el cruce de
fila con columna sólo tiene un dato.
Unidad 3 Página 8 de 18
Diseño de las bases de datos relacionales
No estaría en 1FN puesto que los atributos EMPRESA y SUELDO, tienen varios valores
para un DNI dado. Una solución sería elegir una clave compuesta formada por DNI y
EMPRESA :
De esta forma la tabla EMPLEADO es una relación y, por tanto, está en 1FN.
Segunda Forma Normal
Teorema 1
Sea una relación R(A,B,C,D) y la clave primaria es A.B y tal que A D. Entonces la
relación R puede descomponerse como:
RI (A, D)
R2(A, B, C)
DNI NOMBRE_E
EMPRESA SUELDO
Una relación R se encuentra en tercera forma normal (3FN) si y sólo si está en 2FN
y ningún atributo no clave tiene una dependencia funcional transitiva de ninguna de las
claves.
Unidad 3 Página 9 de 18
Diseño de las bases de datos relacionales
Teorema II
Sea una relación R(A,B,C) con clave primaria (A) y tal que B C. Entonces la relación
R puede descomponerse como:
R1(A, B)
R2(B, C)
GruAsi AulaGru
existía una dependencia transitiva a partir de la clave NumMat. Por lo que la tabla no se
encuentra en 3FN; si se normaliza según el teorema II, quedaría:
“ALUMNOS” “GRUPOS”
Nombre_A
NumMat Localidad GruAsi AluGru
GruAsi
Para ello, se pensó en una definición más global que abordase las anomalías
observadas. La nueva definición se debe a Boyce y Codd.
Una relación está en FNBC si y sólo si todo determinante es una clave candidata.
La definición engloba la 3FN puesto que las dependencias transitivas existen por medio
de atributos secundarios que no eran clave.
- Si la clave está formada por un sólo atributo, la tabla está en FNBC (si ya estaba en
3FN) como sucedía con la 2FN.
- Si una relación no tiene claves solapadas y está en 3FN, también se encuentra en
BNFC.
Unidad 3 Página 10 de 18
Diseño de las bases de datos relacionales
En realidad son muy pocos los casos de relaciones que se encuentran en 3FN y no
están en FNBC. Este tipo de tablas son aquellas en las que se dan las siguientes
circunstancias:
● Existan dos o más claves candidatas
● Las claves candidatas son compuestas
● Las claves candidatas se solapan (tienen por lo menos un atributo común)
R1 (A, C) RI(A,C)
R ó R
R2(B, C, D) R2(A, B, D)
Esta relación fue diseñada para registrar las actividades practicadas por los socios de
un club deportivo. Sus claves candidatas son: {ACTIVIDAD, DNI} y {ACTIVIDAD,
COD_SOCIO}.
ACTIVIDAD.DNI FECHA_ALTA
ACTIVIDAD.COD_SOCIO FECHA_ALTA
DNI COD_SOCIO
COD_SOCIO DNI
COD_SOCIO ACTIVIDAD
DNI
FECHA_ALTA
Unidad 3 Página 11 de 18
Diseño de las bases de datos relacionales
Por tanto, para llevar esta relación a FNBC será necesario aplicar el Teorema III.
Eligiendo los atributos de la siguiente manera:
A = (COD_SOCIO)
B = (ACTIVIDAD)
C = (DNI)
D = (FECHA_ALTA)
R1(A,C)
Es posible descomponer sin pérdidas la relación original R
R2(A,B,D)
es decir,
TAQUILLAS_SOCIOS
COD_SOCIO COD_FAMILIAR TAQUILLA
A1111 H0001 223
A1111 H0001 274
A2222 K0010 341
A2222 K0010 412
A2222 K0011 341
A2222 K0011 412
Esta relación, cuya clave primaria está formada por sus tres atributos, está en FCBC, ya
que no tiene dependencias funcionales asociadas. No obstante, en ella hay redundancias
y se producen anomalías de actualización. Por ejemplo, para registrar el hecho de que al
socio A2222 se le asigna un nueva taquilla, será necesario añadir dos tuplas.
Unidad 3 Página 12 de 18
Diseño de las bases de datos relacionales
X Y | A – (XY)
Una relación se encuentra en cuarta forma normal (4FN) si, y sólo si,
- Está en FBNC y
- Las únicas DMV existentes son las DF de la clave con los atributos
secundarios..
Una relación que no esté en 4FN puede ser descompuesta, sin pérdida de información,
en dos proyecciones que sí están en 4FN.
Teorema de Fagin
Sea una relación R(A,B,C) con las siguientes dependencias multivaluadas
A B
A C
R1(A,B)
Entonces la relación R puede descomponerse como: R
R2(A,C)
F_SOCIOS T_SOCIOS
COD_SOCIO COD_FAMILIAR COD_SOCIO TAQUILLA
A1111 H0001 A1111 223
A2222 K0010 A1111 274
A2222 K0011 A2222 341
A2222 412
Unidad 3 Página 13 de 18
Diseño de las bases de datos relacionales
En la siguiente figura tenemos la relación EQUIPOS diseñada para registrar los equipos
que participan en un campeonato escolar entre colegios. Cada tupla almacena los datos de
un equipo: el nombre del colegio, el deporte y la categoría.
EQUIPOS
COLEGIO DEPORTE CATEGORÍA
S. APOSTOL BALONMANO ALEVIN
S. APOSTOL VOLEIBOL INFANTIL
A. SELA VOLEIBOL ALEVIN
S. APOSTOL VOLEIBOL ALEVIN
En las reglas del campeonato se establece que si un colegio presenta algún equipo de
un determinado deporte, si ese colegio participa con algún equipo en una determinada
categoría, y si además, hay competición de ese deporte en esa categoría, obligatoriamente
el colegio debe participar con un equipo de ese deporte y esa categoría. Es decir, que si
existen las tres tuplas siguientes:
donde X representa cualquier valor del correspondiente dominio. También debe existir la
tupla:
(S. APOSTOL, VOLEIBOL, ALEVIN)
A pesar de que la relación está en 4FN (no tiene asociadas dependencias funcionales o
multievaluadas no triviales), presenta anomalías de actualización. Así, si se pretende
eliminar la tupla (S. APOSTOL, VOLEIBOL, ALEVIN), necesariamente se debe eliminar
también alguna de las otras tres. De igual forma, si se inserta (A. SELA, BALONMANO,
INFANTIL) habrá que insertar (A. SELA, VOLEIBOL, INFANTIL) y (S. APOSTOL,
BALONMANO, INFANTIL).
C_DEPORTE C_CATEGORÍA
COLEGIO DEPORTE COLEGIO CATEGORÍA
S. APOSTOL BALONMANO S. APOSTOL ALEVIN
S. APOSTOL VOLEIVOL S. APOSTOL INFANTIL
A. SELA VOLEIVOL A. SELA ALEVIN
Unidad 3 Página 14 de 18
Diseño de las bases de datos relacionales
C_DEPORTE * C_CATEGORÍA
COLEGIO DEPORTE CATEGORÍA
S. APOSTOL BALONMANO ALEVIN
S. APOSTOL BALONMANO INFANTIL
S. APOSTOL VOLEIBOL INFANTIL
A. SELA VOLEIBOL ALEVIN
S. APOSTOL VOLEIBOL ALEVIN
Las dependencias de reunión vienen dadas por restricciones que el diseñador impone
sobre la tabla, tales como la siguiente. Veamos otro ejemplo:
Supóngase una relación con datos sobre vendedores, países y piezas.
Unidad 3 Página 15 de 18
Diseño de las bases de datos relacionales
Esto hace que la relación anterior sea 3-descomponible, es decir, es igual a la reunión
de las proyecciones (vendedor, pieza), (vendedor, país) y (pieza, país) y que por tanto
existe la siguiente DR ((vendedor, pieza), (vendedor, país) y (pieza, país)).
Esto viene a decir que una relación estará en 5FN cuando esté en 4FN y siempre que
no existan restricciones impuestas por el creador.
Algoritmo de descomposición
El diseño de las bases de datos por descomposición permite obtener una relación en
FNBC, el algoritmo general de diseño es:
1. Se obtiene la relación universal para la base de datos.
2. Se determinan todas las DF entre los atributos de la relación universal.
3. Se eliminan todas las DF redundantes en el conjunto inicial de DF, obteniendo
una cobertura mínima. Este proceso debe realizarse eliminando las DF una a una y
comprobando las DF restantes después de cada eliminación para averiguar si sigue
habiendo alguna DF redundante.
4. Se utilizan las DF presentes en la cobertura mínima para descomponer la
relación universal en un conjunto de relaciones FNBC. Se averigua si la relación
está en FNBC. Si lo está, el diseño está completo; en caso contrario, la relación
debe descomponerse en otras dos (Se repiten los pasos 2, 3 y 4 para cada nueva
relación obtenida por descomposición).
5. Si pudiera obtenerse más de una cobertura mínima, se compararán los diseños
generados por cada una de ellas para determinar la que mejor se ajuste a las
necesidades.
Al efectuar el paso 4 conviene recordar que nunca se debe proyectar una DF cuyo
atributo dependiente sea, al mismo tiempo, el determinante de otra DF. Asimismo,
conviene ser cuidadoso en los casos en que un atributo dependa de más de un
determinante. Cualquiera de los dos casos anteriores puede provocar la pérdida de una
DF.
Ejemplo 3.
Unidad 3 Página 16 de 18
Diseño de las bases de datos relacionales
La siguiente relación (tabla) almacena los artículos que se sirven a nuestros clientes
distribuidos por toda la geografía españolas:
La tabla dada se puede normalizar a 1ªFN con la creación de un nuevo registro por cada
uno de los distintos valores de un campo, tal que permita expresar la relación como una
tabla.
Relación CLIENTES
NCL NOMBRE LOCALIDAD CT
11 Luis Málaga 0.8
44 Ana Gijón 1.1
55 José Valencia 1.4
Relación ARTICULOS
NART ARTICULO PVP
A1 Papel 5
A3 Cinta 500
A4 Grapas 50
A9 Disco 200
Relación VENTAS
Unidad 3 Página 17 de 18
Diseño de las bases de datos relacionales
Unidad 3 Página 18 de 18