Documente Academic
Documente Profesional
Documente Cultură
SEMANA 2 DATOS
CONTENIDO
PRESENTACIÓN …………………………….………………………… 3
1. DESARROLLO TEMÁTICO ……………………………………..…… 3
Dependencias funcionales ……..……………....................… 4
Normalización ………………………….……………………. 6
CONCLUSIONES …….………………………………………………... 9
BIBLIOGRAFÍA ………………………………………………………... 10
2 [ POLITÉCNICO GRANCOLOMBIANO ]
NORMALIZACIÓN
JOHANY ARMANDO CARREÑO GAMBOA
jcarreno@poli.edu.co
PRESENTACIÓN
Un buen diseño de base de datos debe ser acorde con buenas estructuras de datos. En esta
lectura, después de analizar el concepto de dependencias entre los datos y de ver los
distintos tipos de dependencias, aprenderemos a evaluar y diseñar tablas bien estructuradas
para comprobar las redundancias de los datos, y para evitar las anomalías de inserción,
actualización y borrado en los mismos; conceptos imprescindibles para la aplicación de la
teoría de la normalización.
Para reconocer y aprender las características de una buena estructura de tabla, conviene
examinar una que esté deficiente; de modo que empezaremos por examinar las
características de una estructura de tabla deficiente. Descubriremos que no sólo las
anomalías de los datos pueden ser eliminadas mediante normalización, sino también, que un
conjunto de estructuras de tabla adecuadamente normalizado en realidad es menos
complicado de usar que un conjunto no normalizado. Además, visualizaremos que el
conjunto de estructuras de tabla normalizado refleja con más fidelidad las operaciones reales
de una empresa.
1. DESARROLLO TEMÁTICO
Contar con un buen SGBD no es suficiente para evitar las redundancias de datos. Si las tablas
de bases de datos se tratan como si fueran archivos en un sistema de archivos, el SGBD
nunca tendría la oportunidad de demostrar sus superiores capacidades de manejo de datos.
Analicemos la siguiente relación: ESCRIBE
ESCRIBE(autor, nacionalidad, cod_libro, titulo, editorial, anio)
Esta relación almacena datos de autores y de libros. Algunos problemas son:
• Redundancia, ya que la nacionalidad del autor se repite por cada ocurrencia del mismo.
Lo mismo sucede cuando un libro tiene más de un autor: se repite la editorial y el año
de publicación.
• Anomalías de actualización, es fácil cambiar el nombre de una editorial en una tupla sin
modificar el resto de las que corresponden al mismo libro, lo que da lugar a
incoherencias.
• Anomalías de inserción, ya que si queremos añadir información de algún autor, del que
no hubiera ningún libro en la base datos, no sería posible, ya que cod_libro es parte
de la clave primaria de la relación (regla de integridad de la entidad). La inserción de
un libro que tiene dos autores obliga a insertar dos tuplas en la relación.
• Anomalías de borrado, ya que si queremos eliminar un cierto libro deberíamos perder
los datos de su autor y viceversa.
[ FUNDAMENTOS DE BASES DE DATOS ] 3
En el ejemplo anterior, el conjunto de las siguientes relaciones no presenta estos problemas:
LIBRO( cod_libro, titulo, editorial, anio )
AUTOR( nombre, nacionalidad )
ESCRIBE( cod_libro, nombre )
La normalización introduce una técnica formal para diseñar bases de datos relacionales y
permite mecanizar parte del proceso al disponer de algoritmos de normalización. Una
observación importante es que las anomalías antes descritas se producen en procesos de
actualización y no en procesos de consulta. La normalización penaliza las consultas al
disminuir la eficiencia, ya que la normalización aumenta el número de relaciones presentes
en la base de datos. Por esto determinada consulta puede llevar consigo el acceso a varias
tablas, aumentando el costo de ésta.
DEPENDENCIAS FUNCIONALES
Uno de los conceptos fundamentales en la normalización es el de dependencia funcional.
Una dependencia funcional es una relación entre atributos de una misma relación (tabla). Si x
e y son atributos de la relación R, se dice que y es funcionalmente dependiente de x (se
denota por x → y) si cada valor de x tiene asociado un solo valor de y(x e y pueden constar de
uno o varios atributos). A x se le denomina determinante, ya que x determina el valor de y.
Se dice que el atributo y es completamente dependiente de x si depende funcionalmente de
x y no depende de ningún subconjunto de x.
La dependencia funcional es una noción semántica. Si hay o no dependencias funcionales
entre atributos (A) no lo determina una serie abstracta de reglas sino los modelos mentales
del usuario y las reglas de negocio de la organización o empresa para la que se desarrolla el
sistema de bases de datos. Cada dependencia funcional (DF) es una clase especial de regla de
integridad y representa una relación de uno a muchos.
En el proceso de normalización se debe ir comprobando que cada relación (tabla) cumple
una serie de reglas que se basan en la clave primaria y las dependencias funcionales. Cada
regla que se cumple aumenta el grado de normalización. Si una regla no se cumple, la
relación se debe descomponer en varias relaciones que sí la cumplan.
DESCRIPTORES EQUIVALENTES
Se dice que X e Y son equivalentes cuando:
X → Y ʌ Y → X
Y se representa:
X ↔ Y
Ejemplo: ISBN_Libro → Titulo_Libro
DEPENDENCIAS TRANSITIVAS
Sea la relación R (A, DF) y X, Y dos descriptores sobre A. Entre los descriptores X e Y se
presenta una dependencia transitiva si se cumple:
4 [ POLITÉCNICO GRANCOLOMBIANO ]
a‐X ∩ Y = ᴓ
b‐ Existe un descriptor Z ⊆ A tal que Z ∩ X = ∅ y Z ∩Y = ∅
c‐ X → Y, Y → Z, X → Z
DEPENDENCIAS PARCIALES
Se dice que X → Y es una dependencia parcial cuando existe un descriptor X’ ⊂ X tal que X’ →
Y. Si no existe tal descriptor X’ ⊂ X tal que X’ → Y, se dice que la dependencia es total.
REGLAS DE INFERENCIA PARA LAS DEPENDENCIAS FUNCIONALES
Las siguientes reglas de inferencia (RI) se conocen como Axiomas de Armstrong: son
seguras, no generan dependencias funcionales incorrectas.
Siendo (X,Y, W y Z, conjunto de atributos):
RI1: reflexiva ‐ Si X Ê Y, entonces X®Y
RI2: aumentatividad – Si X®Y y W Ê Z, entonces XW → YZ
RI3: transitividad ‐ Si X → Y y Y → Z entonces X → Z
Las siguientes reglas se pueden derivar a partir de las tres reglas mencionadas
anteriormente:
RI4: pseudotransitividad – Si X → Y y W → Z, entonces XW → Z
RI5: unión – Si X → Y y X → Z entonces X → YZ
RI6: descomposición – Si X → YZ, entonces X → Y y X → Z
OPERACIONES EN EL MODELO RELACIONAL
Dado el esquema R (A, DF) con A = {A, B, C, D, E} y DF = {A→B, C→D, D→E}
Demostrar que AC → ABCDE.
Para esto aplicamos los Axiomas de Armstrong:
1. A→B (dato conocido)
2. AC→ABC (aumentatividad de 1. por AC)
3.C→D (dato conocido)
4. D→E (dato conocido)
5.C→E (transitividad de 3 y 4)
6. C→DE (unión de 3 y 5)
7.ABC→ABCDE (aumentatividad de 6. Por ABC)
8. AC → ABCDE (transitividad 2 y 7)
Luego AC implica todos los atributos.
CIERRE DF+ DE UN CONJUNTO DE DEPENDENCIAS FUNCIONALES
El cierre de un conjunto de dependencias funcionales DF (que se denota DF+) es el conjunto
de todas las dependencias que son consecuencia lógica de DF:
DF+ = { X → y | DF |= X → Y }
[ FUNDAMENTOS DE BASES DE DATOS ] 5
DF será siempre un subconjunto del cierre (DF Ê DF+). Por lo tanto, las notaciones R (A, DF) y
R (A, DF+) definen el mismo esquema de relación.
NORMALIZACIÓN
La normalización es un proceso que consiste en asignar atributos a las entidades. Reduce las
redundancias de datos y, por extensión, ayuda a eliminar las anomalías de datos que se
derivan de las redundancias. La normalización no elimina las redundancias de datos, pero sí
produce la redundancia controlada que permite asociar las tablas de bases de datos. La
normalización es una técnica para diseñar la estructura lógica de los datos de un sistema de
información en el modelo relacional, desarrollada por E. F. Codd en 1972. Es una estrategia de
diseño de abajo arriba: se parte de los atributos y éstos se van agrupando en relaciones
(tablas) según su afinidad. Aquí no se utilizará la normalización como una técnica de diseño
de bases de datos, sino como una etapa posterior a la correspondencia entre el esquema
conceptual y el esquema lógico, que elimine las dependencias entre atributos no deseadas.
Las ventajas de la normalización son las siguientes:
• Evita anomalías en inserciones, modificaciones y borrados.
• Mejora la independencia de datos.
• No establece restricciones artificiales en la estructura de los datos.
Cuando se diseña una base de datos mediante el modelo relacional, al igual que ocurre en
otros modelos de datos, tenemos distintas alternativas: podemos obtener diferentes
esquemas relacionales y no todos son equivalentes, ya que algunos van a representar la
realidad mejor que otros. Es necesario conocer qué propiedades debe tener un esquema
relacional para representar adecuadamente una realidad y cuáles son los problemas que se
pueden derivar de un diseño inadecuado. La teoría de la Normalización es un método
objetivo y riguroso que se aplica en el diseño de bases de datos relacionales.
El esquema relacional puede obtenerse de dos formas distintas:
• Directamente a partir de la observación de nuestro universo del discurso, en donde
especificamos conjuntos de atributos, relaciones y restricciones que corresponden a
los observados en el mundo real.
• Realizando el proceso de diseño en dos fases, primero el diseño conceptual (E/R+)
obteniendo el esquema conceptual y posteriormente transformándolo a un esquema
relacional, siguiendo algunas reglas generales que fueron abordadas en las lecturas
de la unidad Dos.
Algunos problemas que se pueden presentar son:
• Incapacidad para almacenar ciertos hechos
• Redundancias y por tanto, posibilidad de incoherencias
• Ambigüedades
• Pérdida de información
• Pérdida de dependencias funcionales, es decir, ciertas restricciones de integridad que
dan lugar a interdependencias entre los datos.
6 [ POLITÉCNICO GRANCOLOMBIANO ]
• Aparición en la BD de estados no válidos, es decir, anomalías de inserción, borrado y
modificación.
La normalización se lleva a cabo en una serie de pasos. Cada paso corresponde a una forma
normal que tiene unas propiedades. Conforme se va avanzando en la normalización, las
relaciones tienen un formato más estricto (más fuerte) y, por lo tanto, son menos
vulnerables a las anomalías de actualización. El modelo relacional sólo requiere un conjunto
de relaciones en primera forma normal. Las restantes formas normales son opcionales. Sin
embargo, para evitar las anomalías de actualización, es recomendable llegar al menos a la
tercera forma normal.
PRIMERA FORMA NORMAL (1FN)
Se dice que una tabla se encuentra en primera forma normal (1NF) si y solo si cada uno de los
campos contiene un único valor para un registro determinado.
Si una relación no está en 1FN, hay que eliminar de ella los grupos repetitivos. Un grupo
repetitivo será el atributo o grupo de atributos que tiene múltiples valores para cada tupla de
la relación. Hay dos formas de eliminar los grupos repetitivos. En la primera, se repiten los
atributos con un solo valor para cada valor del grupo repetitivo. De este modo se introducen
redundancias, ya que se duplican valores, pero estas redundancias se eliminarán después
mediante las restantes formas normales. La segunda forma de eliminar los grupos repetitivos
consiste en poner cada uno de ellos en una relación aparte, heredando la clave primaria de la
relación en la que se encontraban.
Ejemplo:
Dada la relación Departamento(cod_dpto, nombre_dpto, descripción_dpto,
empleado_dpto), el atributo empleado_dpto puede tomar más de un valor en el dominio
Departamento.
Solución:
Departamento(cod_dpto, nombre_dpto, descripción_dpto)
Empleado(ced_empl, cod_empl, nombre_empl, apellido_empl, genero_empl, cod_dpto)
SEGUNDA FORMA NORMAL (2FN)
Una relación está en segunda forma normal si y sólo si está en 1FN y, además, cada atributo
que no está en la clave primaria es completamente dependiente de la clave primaria (no
existen dependencias parciales).
La 2FN se aplica a las relaciones que tienen claves primarias compuestas por dos o más
atributos. Si una relación está en 1FN y su clave primaria es simple (tiene un solo atributo),
entonces también está en 2FN. Las relaciones que no están en 2FN pueden sufrir anomalías
cuando se realizan actualizaciones.
Para pasar una relación en 1FN a 2FN hay que eliminar las dependencias parciales de la clave
primaria. Para ello, se eliminan los atributos que son funcionalmente dependientes y se
[ FUNDAMENTOS DE BASES DE DATOS ] 7
ponen en una nueva relación con una copia de su determinante (los atributos de la clave
primaria de los que dependen).
Ejemplo:
Dada la relación Estoqueado(fecha_est, cod_plt, nombre_plt, url_plt, cod_toro,
nombre_toro, peso_toro), un toro es estoqueado en una plaza de toros y en una plaza
pueden ser estoqueados muchos toros.
Solución:
Al no depender todos los campos de la totalidad de la llave, la tabla no está en segunda
forma normal. La solución es la siguiente:
Plaza_Toro(cop_plt, nombre_plt, url_plt)
Toro(cod_toro, nombre_toro, peso_toro)
Estoqueado(cod_plt, cod_toro, fecha_est)
TERCERA FORMA NORMAL (3FN)
Una relación está en tercera forma normal si y sólo si está en 2FN y, además, cada atributo
que no está en la clave primaria no depende transitivamente de la clave primaria. La
dependencia X → Z es transitiva si existen las dependencias X → Y, Y → Z, siendo X e Y
atributos o conjuntos de atributos de una misma relación.
Aunque las relaciones en 2FN tienen menos redundancias que las relaciones en 1FN, todavía
pueden sufrir anomalías frente a las actualizaciones. Para pasar una relación de 2FN a 3FN
hay que eliminar las dependencias transitivas. Para ello, se eliminan los atributos que
dependen transitivamente y se ponen en una nueva relación con una copia de su
determinante (el atributo o atributos no llave de los que dependen).
Ejemplo:
Dada la relación LIBRO( cod_libro, editorial, país), una relación que está formada por un
único atributo está en 2FN.
Solución:
En la relación LIBRO, el atributo país entrega información acerca de la editorial que publica el
libro, por lo que no está en 3FN. La solución es descomponerla en:
LIBRO( cod_libro, editorial )
EDITORIAL(editorial, país )
FORMA NORMAL BOYCE CODD (BCNF)
Una relación está en la forma normal de Boyce‐Codd si y sólo si todo determinante es una
llave candidata. Un determinante es un atributo del cual depende funcionalmente (por
completo) algún otro atributo.
La 2FN y la 3FN eliminan las dependencias parciales y las dependencias transitivas de la clave
primaria. Pero este tipo de dependencias todavía puede existir sobre otras claves candidatas,
8 [ POLITÉCNICO GRANCOLOMBIANO ]
si éstas existen. La BCFN es más fuerte que la 3FN, por lo tanto, toda relación en BCFN está
en 3FN.
La violación de la BCFN es poco frecuente, ya que se da bajo ciertas condiciones que
raramente se presentan. Se debe comprobar si una relación viola la BCFN si tiene dos o más
claves candidatas compuestas que tienen al menos un atributo en común.
Ejemplo:
La siguiente relación se encuentra en 3FN y FNBC:
Estudiante(ced_est, cod_est, nombre_est, apellido_est, genero_est)
Como se puede observar, la llave primaria es ced_est, pero el cod_est es un determinante
(llave candidata). Una relación está en FNBC si y solo si el conocimiento de las llaves
candidatas (cod_est) permite averiguar todas las interrelaciones existentes entre los datos
de la relación, o lo que es igual, las llaves candidatas son los únicos descriptores sobre los
que se facilita información por cualquier otro atributo.
CUARTA FORMA NORMAL (4FN)
La 4FN se viola cuando una relación tiene dependencias multivaluadas indeseables y que, por
tanto, pueden usarse para identificar y descomponer tales relaciones.
Ejemplo:
Dada la relación Empleado(nombre_empl, nombre_proyecto, nombre_familiar), Empleado
no está en 4FN porque nombre_empl no es una llave primaria de Empleado. Esto implica
bastante redundancia, lo cual conduce como siempre a ciertas anomalías de actualización.
Solución:
La solución consiste en realizar una proyección de Empleado sobre ProyectoEmpleado y
FamiliarEmpleado:
ProyectoEmpleado(nombre_empl, nombre_proyecto)
FamiliarEmpleado(nombre_empl, nombre_familiar)
CONCLUSIONES
• Los esquemas lógicos se pueden validar mediante la normalización y frente a las
transacciones de los usuarios. La normalización se utiliza para mejorar el esquema, de
modo que éste satisface ciertas restricciones que evitan la duplicidad de datos. La
normalización garantiza que el esquema resultante está más próximo al modelo de la
empresa, es consistente, tiene la mínima redundancia y la máxima estabilidad.
• Las restricciones de integridad son las restricciones que se imponen para que la base
de datos nunca llegue a un estado inconsistente. Hay cinco tipos de restricciones de
[ FUNDAMENTOS DE BASES DE DATOS ] 9
10 [ POLITÉCNICO GRANCOLOMBIANO ]
[ FUNDAMENTOS DE BASES DE DATOS ] 11