Está en la página 1de 11

Normalización

SEMANA 3   BASE DE DATOS 


 
 

 
 
 
 

 
 
 

 
 
 
 

 
 
 

 
 
 
 

 
 
 
   

[ BASE DE DATOS ]
 

CONTENIDO 
 
 

Presentación 
 
1. DESARROLLO TEMÁTICO 
• Dependencias funcionales 
• Normalización 
• Conclusiones 
 
1.1. BIBLIOGRAFÍA 
 

 
 
 

 
 
 
 

 
 
 

 
 

 
2  [ POLITÉCNICO GANCOLOMBIANO EN ALIANZA CON WHITNEY INTERNATIONAL SYSTEM ]
 

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.  

 
[ BASE DE DATOS ] 3
 

• Anomalías de borrado, ya que si queremos eliminar un cierto libro, deberíamos perder 
los datos de su autor y viceversa.  
 
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 lo que una determinada consulta puede llevar consigo el acceso a 
varias tablas, lo que aumenta 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, más 
 
bien,  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.  

 
4  [ POLITÉCNICO GANCOLOMBIANO EN ALIANZA CON WHITNEY INTERNATIONAL SYSTEM ]
 

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: 
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. 
 
 
 

 
[ BASE DE DATOS ] 5
 

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 } 
 
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.  La 
normalización  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. 
 

 
6  [ POLITÉCNICO GANCOLOMBIANO EN ALIANZA CON WHITNEY INTERNATIONAL SYSTEM ]
 

Cuando  se  diseña  una  base  de  datos  mediante  el  modelo  relacional,  al  igual  que  ocurre  en 
otros  modelos  de  datos,  tenemos  distintas  alternativas,  es  decir,  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  transformar  éste  a  un 
esquema relacional, siguiendo algunas reglas generales, que fueron abordadas en 
las lecturas de la unidad 2.  
 
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.  
• 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  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. 
   

 
[ BASE DE DATOS ] 7
 

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 
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. 

 
8  [ POLITÉCNICO GANCOLOMBIANO EN ALIANZA CON WHITNEY INTERNATIONAL SYSTEM ]
 

 
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,  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 esta 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  pueden  existir  sobre  otras  claves 
candidatas, 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. 

 
[ BASE DE DATOS ] 9
 

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 
integridad:  datos  requeridos,  restricciones  de  dominio,  integridad  de  entidades, 
integridad referencial y reglas de negocio. 

 
10  [ POLITÉCNICO GANCOLOMBIANO EN ALIANZA CON WHITNEY INTERNATIONAL SYSTEM ]
 

- Para garantizar la integridad referencial se debe especificar el comportamiento de las 
llaves foráneas: si aceptan nulos y qué hacer cuando se borra la tupla a la que se hace 
referencia, o cuando se modifica el valor de su llave primaria. 
 

1.1. BIBLIOGRAFÍA 
 
- C.J. Date, Introducción a los Sistemas de Bases de Datos, 5. ª edición, Adison Wesley 
Iberoamericana, 1993. 
- Korth y A. Siulberschatz, Fundamentos de Bases de Datos, 4. ª edición, McGraw‐Hill, 
Madrid, 2002. 
- Elmasri,  R.  &  Navathe,  S.B.  “Fundamentals  Of  Database  Systems”  Third  Edition. 
Addison‐ Wesley Pubs. 2000. 
- Rob, Peter.; Coronel, Carlos. “Sistemas de Bases de Datos: diseño, implementación y 
administración”, Quinta Edición, THOMSON, 2002. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 

 
[ BASE DE DATOS ] 11

También podría gustarte