Normalización de bases de datos.

Documentos relacionados
Formas Normales. - Facultad de Ingeniería Curso : Fundamentos de Bases de Datos Tema 1. Introducción y Conceptos Generales 1

Una tabla se encuentra en primera forma normal si impide que un atributo de una tupla pueda tomar más de un valor. La tabla:

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos

Teoría de la Normalización

Normalización Clase Práctica Formas Normales

Formas Normales. Normalización. Introducción

Bases de datos 1. Teórico: Normalización

Fundamentos de Normalización

Bases de Datos y Sistemas de Información. Fundamentos de Normalización

Bases de datos 1. Teórico: Normalización

Diseño de Base de Datos Relacional. Diseño de Base de Datos Relacional

Diseño de Base de Datos Relacional

Normalización de Modelos Relacionales

Normalización. Curso Bases de Datos. Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS

Tema 5. Diseño lógico de bases de datos relacionales

Catedra de Base de Datos

5 Diseño de base de datos relacionales 5.1 Objetivos del diseño de bases de datos. 5.2 Dependencias funcionales. 5.3 Normalización. 5.3.

7 Diseño de Bases de Datos Relacionales: Normalización

Modelo Relacional. El modelo relacional...1 El modelo entidad relación (que vimos ayer) es un modelo conceptual que sirve

Ejemplo de diseño inadecuado

NORMALIZACION. Fig. 1

Normalización. CC20A 1 Computación II Auxiliar 10 Iván Bustamante. Clase Auxiliar 10 1

Modelo relacional. El modelo relacional

Seguridad en BD Diseño Físico y Administración de Bases de Datos Otras tecnologías de Bases de Datos Bases de Datos Distribuidas Almacenes de Datos

TEORÍA DE LA NORMALIZACIÓN GESTIÓN Y MODELACIÓN DE DATOS

Diseño de Bases de Datos. Normalización

Diseño de Bases de Datos

Tema 2. DISEÑO LÓGICO DE BASES DE DATOS Parte 2

Introducción al Modelo Relacional

Restricción de valor único. Indispensable para diseñar esquemas de bases de datos que eliminen al redundancia.

Bases de datos Unidad 4 Modelo Relacional

Bases de Datos Geográficos

FORMAS NORMALES. Andrés Moreno S. Diagramas de Dependencias Funcionales. Diagramas de Dependencias Funcionales

BASES DE DATOS (curso 2003/2004)

PRODUCTO CARTESIANO RELACIONES BINARIAS

Ing. Bruno López Takeyas. Relaciones

Catedra de Base de Datos

Normalización. Carlos A. Olarte Bases de Datos I

Modelo Relacional: Dependencias Funcionales y Normalización

IV. MODELO RELACIONAL

BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Fundamentos del Modelo Relacional de Datos

Unidad 3. Álgebra Relacional y Cálculo Relacional

Ing. Yim Isaias Apestegui Florentino

Catedra de Base de Datos

Bases de Datos. Tema 7 (parte 1) Teoría de la Normalización. Francisco Ruiz abr UCLM-ESI (F.Ruiz)

Esquema Lógico FOROFO. EQUIPO (nombre:cadena, ciudad:cadena, país:cadena) CP (nombre) CAj (ciudad, país) CIUDAD

Esquema Lógico CHEF. CHEF (nombre:cadena, ciudad:cadena, país:cadena) CP (nombre)

BASE DE DATOS Modelos de Datos

Dependencias funcionales

Diseño lógico Diseño de bases de datos relacionales

Modelo Entidad Relación

BB.DD. relacionales. BB. DD. Relacionales T Dpto. Lenguajes y Sistemas Informáticos. Universidad de Alicante

DISEÑO LÓGICO DE UNA BASE DE DATOS EN EL MODELO RELACIONAL (Teoría de la Normalización)

CC BASES DE DATOS PRIMAVERA Clase 2: Modelo Relacional. Aidan Hogan

Bases de Datos. Tema 7 (parte 2) Teoría de la Normalización. Francisco Ruiz may UCLM-ESI (F.Ruiz)

Universidad de Buenos Aires Facultad de Ciencias Exactas y Naturales Departamento de Computación Base de Datos

Bases de Datos OTROS ASPECTOS MODELO E-R

Modelo Entidad Relacion Extendido

Tema 2: Diseño de Bases de Datos (Diseño Lógico)

UNIVERSIDAD NACIONAL DE ITAPUA U.N.I. Creada por Ley Nº:1.009/96 del 03/12/96 Facultad de Ingeniería PROGRAMA DE ESTUDIOS

Técnicas de Modelamiento de Datos

Vemos que t3 y t4 serían las mismas tuplas que las dadas. En este caso no se agregan tuplas.

Introducción. las tuplas en R. {C 1, C 2,..., C j } sobre R. 1 {A 1, A 2,..., A n } = {B 1, B 2,..., B i } {C 1, C 2,..., C j }

TEMA 5.- ESTRUCTURA DE DATOS RELACIONAL.

Asignatura: Bases de datos Código: Año académico: Centro: Escuela Politécnica Superior Departamento: Lenguajes y Computación Área:

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

1.Introducción al Modelo Relacional.

Tema 5: Normalización en Bases de Datos

CC BASES DE DATOS OTOÑO Clase 6: Actualizaciones, Restricciones, Formas Normales. Aidan Hogan

Laboratorio de Base de Datos Práctica Nro. 3, Modelo Relacional y Transformaciones

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004

TEST (10 preguntas, respuesta única, 2.0 puntos, aciertos +0.20, fallos 0.05)

BACHILLERES UGM ORIZABA CLAVE: 30PBH0591P

Tema 4 DISEÑO LÓGICO: EL MODELO RELACIONAL

CICLO ESCOLAR JULIO DICIEMBRE

Modelo Relacional I. Nos encontramos en la FASE 2: REGLAS DE TRANSFORMACIÓN del Modelo Entidad Relación (MER) al Modelo Relacional (MR).

Capítulo 2: Modelo relacional (Parte 2) Dr. Edwin E. González Carril SICI-4015: Archivo y base de datos agosto 2017

Gestión base de datos : Modelo Relacional (II)

Normalización Clase Práctica SPI y SPDF

DISEÑO DE BASES DE DATOS RELACIONALES

UNIDAD4. 1. Procedimentales 2. No Procedimentales

Aurelio Caballero Vázquez Director de Servicios Business Resources Knowledge

Introducción al Álgebra Relacional

ESCUELA DE INGENIERIA Informática Y Sistemas

Diseño de Base de Datos

Bases de datos 1. Teórico: Modelo Relacional

TEMA 5: DISEÑO EN EL MODELO RELACIONAL. TEORÍA DE LA NORMALIZACIÓN

Subdirección Académica Instrumentación Didáctica para la Formación y Desarrollo de Competencias Profesionales Periodo escolar: Agosto Diciembre 2017

A isgn g atu n r atu a: C rr r e r r e a/ r s a/ : C cl c o Le L c e ti c v ti o: Doc D e oc n e te n / te s / : C rg r a h

Bases de Datos y Sistemas de Información

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004

Diseño de Bases de Datos

Universidad de Valladolid Departamento de Informática

4. FUNDAMENTOS DEL MODELO RELACIONAL

Diseño lógico El modelo Relacional. José Muñoz Jimeno Febrero 2015

Normalización. Tema 16

Esquema Lógico F1. EXAMEN 1 de diciembre de EQUIPO (NOMBRE:cadena) CP (NOMBRE) DIRECTOR (NOMBRE:cadena) CP (NOMBRE)

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 10-Feb Nombre:

Base de Datos. Práctica de Normalización. 1 Base de Datos

Transcripción:

Normalización de bases de datos. La normalización de una base de datos es un proceso que permite validar la pertinencia del diseño de sus relaciones. Es un proceso que se enmarca en la etapa de diseño lógico y es importante porque garantiza que el diseño se encuentre libre de anomalías. Edgar F. Codd propuso las tres primeras formas normales que junto a la forma normal de Boyce-Codd son suficientes para que una base de datos no tenga anomalías de inserción o de eliminación. Ronal Fagin presenta la cuarta y quinta formas normales que garantizan que una base de datos no presenta anomalías de actualización. En el presente trabajo se organiza como sigue: en el Punto I se presentan conceptos del modelo relacional, en el Punto II se describen las diferentes anomalías que se pueden presentar en las relación de una base de datos, en el Punto III de introduce el concepto de dependencia funcional y algunos de sus tipos, además se presenta la descomposición de relaciones como una forma de disminuir las anomalías, en el Punto IV se definen las formas normales a partir de los conceptos de dependencias funcionales y dependencias multivaluadas así como la descomposición a realizar para alcanzar cada una de las formas nomales. I. Conceptos del modelo relacional La normalización es un proceso de análisis de un esquema de relación, un esquema de relación R, está constituido por conjunto de atributos (Ai, A2,...,An), cado uno de ellos definido en algún dominio. Por ejemplo el esquema de ALUMNO(matrícula, nombre, dirección) con tres atributos. Una relación r definida bajo un esquema de relación R(Ai, A2,...,An) es un conjunto de m tuplas, donde cada tupla t es una lista ordenada de n valores t = (v1, v2,...,vn) donde vi, 1 i n, es un elemento del dominio del atributo Ai de R. Una superclave de un esquema de relación R = {A1, A2,...An} es un conjunto de atributos S R de tal manera que no habrá un par de tuplas t1 y t2 tal que t1[s]=t2[s]. Una clave K es una superclave tal que la eliminación de cualquier atributo 1

de K provocará de K deje de ser superclave, es decir la clave tiene el conjunto de atributos mínimos para identificar las tuplas de la relación. Si un esquema de relación tiene más de una clave, cada una de ellas se denomina clave candidata, una de ellas se elige arbitrariamente como clave principal. Un atributo del esquema de relación R se denomina atributo primo de R si es miembro de alguna de las claves candidatas de R, un atributo no primo es aquel que no es miembro de ninguna clave candidata. Una base de datos relacional suele contener muchas relaciones, el esquema de base de datos relacional S es el conjunto de los esquemas de relación {R1, R2,..., RN} y sus restricciones, gráficamente se ve como un grafo dirigido cuyos nodos son los esquemas de relación y las conexiones representan restricciones de integridad referencial. Una restricción de integridad referencial limita las tuplas que puede contener una relación aquellas en la que el valor de uno de los atributo es subconjunto de los valores de otro atributo en otra relación a la que hace referencia. II. Anomalías Las relaciones de una base de datos pueden presentar anomalías de inserción, de eliminación o de actualización. Las anomalías de inserción se presentan en una relación cuando para insertar datos relacionados con una entidad, tengo que esperar por datos relacionados con otra entidad. Para ilustrar lo anterior considere la relación ALUMNO_CARRERA cuyo esquema de relación es (matrícula, nombrealumno, dirección, clavecarrera, nombrecarrera, duracióncarrera), para insertar una nuevo alumno debemos insertar los datos de la carrera, sea X la carrera del alumno, cada vez que insertamos un alumno de la carrera X debemos introducir sus datos, provocando redundancias en los datos; por otro lado si queremos insertar una nueva carrera incluyendo su clave, nombre y duración, debemos esperar a tener los datos de un alumno, no podemos insertar valores nulos ya que normalmente la matricula será la clave principal. Las anomalías de eliminación se presentan cuando al pretender eliminar datos relacionados a una entidad, inadvertidamente eliminamos datos que tienen que ver con otra entidad. Utilizando el mismo ejemplo de la relación ALUMNO_CARRERA, 2

si eliminamos el último alumno de la carrera X, eliminamos también los datos de la carrera. Las anomalías de modificación ocurren cuando en una relación tengo que hacer varias actualizaciones, para cambiar un simple hecho. Por ejemplo en la relación ALUMNO_CARRERA, si deseo cambiar la duración de una carrera X, debo actualizar las tuplas de todos los alumnos asociados a la carrera X. Para eliminar estas anomalías se hace una serie de descomposiciones válidas a los esquemas de relación hasta llegar un conjunto que no presente anomalías. Una vez revisado el tema de dependencias funcionales tendremos elementos para indicar cuales son las descomposiciones válidas. III. Dependencias funcionales Una dependencia funcional es una restricción que se establece entre dos conjuntos de atributos. Sea R = {A1, A2,..., An} el esquema de una relación r con n atributos, y X y Y dos subconjuntos de R, la dependencia funcional X Y especifica una restricción de las tuplas que pueden formar r, si dos tuplas t1 y t2 en r cumplen que t1[x]=t2[x], entonces t1[y]=t2[y]; decimos que X determina funcionalmente a Y y significa que no es posible que r tenga dos tuplas que coincidan en los valores para los atributos de X y no coincidan en los valores para Y. A partir de un conjunto de dependencias funcionales F especificado en R, F+ es el conjunto de todas las dependencias funcionales que pueden inferirse de F. F X Y indica que la dependencia X Y puede inferirse a partir del conjunto de dependencias funcionales de F. A continuación se presenta un conjunto de reglas de inferencias que pueden utilizarse para inferir de manera sistemática dependencias funcionales. RI1. Regla reflexiva. Si X Y, entonces X Y Si dos tuplas existen en r t1[x]=t2[x], al ser Y X también t1[y]=t2[y], por lo tanto X Y. RI2. Regla de aumento. {X Y} {X,Z} {Y,Z} Si existen dos tuplas en r t1[xz]=t2[xz], y como t1[x]=t2[x], entonces t1[z]=t2[z], y ya que t1[y]=t2[y], entonces t1[yz]=t2[yz], por lo tanto {X,Z} {Y,Z} 3

RI3. Regla transitiva. {X Y, Y Z} X Z Si existen dos tuplas en r t1[x]=t2[x], y como t1[y]=t2[y] que implica que t1[z]=t2[z], entonces X Z RI4. Regla de descomposición. {X {Y,Z}} X Y De RI1 {Y,Z} Y, y si X {Y,Z} usando RI3 X Y RI5. Regla aditiva. {X Y, X Z} X {Y,Z} Ya que X Y, de RI2 {XX} {X,Y}, es decir X {X,Y}, y ya que X Z, de RI2 {X,Y} {Y,Z} usando RI3 X {Y,Z} Una dependencia funcional X Y es trivial si X Y, en cualquier otro caso es no trivial. Una dependencia funcional X Y es total si la eliminación de cualquier atributo A de X implica que la dependencia deje se ser válida, es decir para cualquier atributo A X, (X-{A}) no determina funcionalmente a Y. Una dependencia funcional X Y es parcial si al eliminarse algún atributo A X, (X-{A}) Y. Una dependencia funcional X Y es transitiva si existe un conjunto de atributos Z que ni es clave candidata ni parte de alguna clave, y se cumple que X Z y Z Y. Las dependencias funcionales representan aspectos semánticos de los datos, el reconocimiento de las dependencias funcionales es parte del proceso de entender que significan los datos. El conjunto de dependencias funcionales de una relación se representan gráficamente mediante un diagrama de dependencias. En un diagrama de dependencias se dibuja una flecha que parte de los atributos determinantes a cada uno de los atributos que son funcionalmente dependientes de este. Para el ejemplo de la relación ALUMNO_CARRERA cuyo esquema de relación es (matrícula, nombrealumno, dirección, clavecarrera, nombrecarrera, duracióncarrera), el diagrama de dependencias representado como lo hace Date se muestra en la Figura 1.a; y como la hace Elmasri se muestra en la Figura 1.b. 4

(a) Como lo presenta Date. (b) Como lo presenta Elmasri. Figura 1. Diagrama de dependencias de la relación ALUMNO_CARRERA Un esquema de relación R = {A1, A2,...An} se puede descomponer en un conjunto de esquemas de relación D={R1, R2,..., Rm} que recibe el nombre de descomposición de la relación R. Es importante asegurase de que en la descomposición, cada atributo de R aparezca al menos en una relación Ri, esto es m i=1 Ri = R, esto se conoce como la condición de la conservación de atributos. Es importante mantener también cada dependencia X Y de F, es decir que X Y aparezca directamente en alguno de los esquemas Ri de la descomposición D o bien que pueda inferirse a partir de las dependencias que aparecen en Ri, esto se conoce como la propiedad de la conservación de la dependencia. Otra propiedad importante para la descomposición D es la concatenación no aditiva o sin pérdida, la cual garantiza que no se generen tuplas falsas cuando se aplica operación de concatenación natural a las relaciones de la descomposición D. 5

IV. Formas normales La normalización es un proceso de análisis de un esquema de relación, basado en sus dependencias funcionales y sus claves, los esquemas de relación que no cumplan con ciertas condiciones o pruebas de formas normales deberán ser descompuestos en esquemas de relación más pequeños a fin de que cumplan estas pruebas. Los esquemas de relación que cumplen estas formas normales tienen características deseables que evitan redundancias y anomalías. Codd propuso tres formas normales, la primera, la segunda y la tercera, posteriormente Boyce y Codd propusieron una forma más estricta de la tercera forma normal conocida como la forma normal de Boyce-Codd. Cuando una relación está en la forma normal de Boyce- Codd, no presenta anomalías de inserción ni de eliminación. Más adelante Fagin propuso la cuarta forma normal que previene las anomalías de actualización y finalmente la quinta forma normal. Podemos ver las formas normales como niveles de normalización, una relación está en la forma normal superior que cumple, si una relación está en la segunda formal, también está en la primera, si está en la tercera, también está en la segunda y en la primera, y así sucesivamente; podemos ilustrar lo anterior con una serie de círculos concéntricos donde la formas normales superiores se ubican en los círculos más pequeños al centro como se muestra en la Figura 2. Figura 2. Niveles de normalización. 6

Primera forma normal La primera forma normal históricamente fue definida para prohibir los atributos multivalor y los atributos compuestos, es decir que el dominio de todo atributo debe ser atómico y el valor de cualquier atributo en una tupla debe ser simple del dominio de ese atributo. Podemos notar que lo anterior está considerado como parte de la definición formal de una relación, así todas las relaciones están en la primera forma normal. Si suponemos en la relación ALUMNO_CARRERA que un alumno se puede inscribir a varias carreras, una tabla que no cumple con la primera forma normal es la que se muestra en la Figura 3.a; en la Figura 3.b se muestra la versión de la misma tabla en primera forma formal, como podemos notar ha sido necesario introducir redundancia. (a) Tabla que no se encuentra en la primera forma normal. (b) Tabla en la primera forma normal con redundancia. Figura 3. Segunda forma normal Un esquema de relación R está en la segunda forma normal si todo atributo no primo A de R es completa y funcionalmente dependiente de la clave principal de R, esto significa que cada atributo no primo A en R no es parcialmente dependiente de ninguna clave de R. Podemos notar que si una relación tiene una clave principal de un 7

solo atributo, estará en la segunda forma normal; considere por ejemplo la relación ALUMNO_CARRERA en el caso en que un alumno solo se puede inscribir a una carreara y por tanto la matrícula es clave principal, (refiérase al diagrama de dependencias mostrado en la Figura 1.b), esta relación se encuentra en la segunda forma normal. Si la clave principal contiene varios atributos, entonces para que la relación este en la segunda forma normal, se requiere verificar que no haya dependencias parciales de la clave principal. Considere la relación en la Figura 3.b, en este caso ya que un alumno se puede inscribir a varias carreras, la matricula no puede ser clave principal, se tiene una clave formada por dos atributos {matricula, clavecarrera}. El diagrama de dependencias se muestra en la Figura 4, podemos encontrar entre otras, las siguientes dependencias parciales: {matrícula, clavecarrera} nombre, matrícula nombre {matrícula, clavecarrera} nombrecarrera, clavecarrera nombrecarrera, por lo tanto la relación no se encuentra en la segunda forma normal. Figura 4. Esquema de relación que no cumple la segunda forma normal Para llevar esta relación a la segunda forma normal es necesario eliminar las dependencias parciales, para ello se debe hacer una descomposición de la relación original, se debe crear una nueva relación por cada clave parcial con sus atributos dependientes y agregar una restricción de integridad referencial con la clave original; en nuestro caso primero creamos una nueva relación con los atributos que dependen de clavecarrera (Figura 5.a), a continuación otra relación con los atributos que dependen de matrícula (Figura 5.b) y finalmente agregamos la integridad referencial. 8

(a) (b) (c) Figura 5. Pasos para llevar el esquema de relación a la segunda forma normal Tercera forma normal Según la definición original de Codd, un esquema de relación R está en la tercera forma normal si está en la segunda forma normal y ningún atributo no primo de R es transitivamente dependiente de la clave principal, esto significa que para toda 9

dependencia no trivial X A que se cumple en R, bien X es una superclave o A es un atributo primo. Considere de nuevo la relación ALUMNO_CARRERA en el caso en que un alumno solo se puede inscribir a una carreara y por tanto la matrícula es clave principal (repetimos por comodidad en diagrama en la Figura 6.a, como ya comentamos esta relación está en la segunda forma normal por tener una clave principal de un solo atributo. Como se aprecia en el diagrama de dependencias, esta relación tiene las siguientes dependencias transitivas: matrícula clavecarrera, clavecarrera nombrecarrera matrícula clavecarrera, clavecarrera duración donde clavecarrera no es clave candidata ni forma parte de ninguna clave y duración no es un atributo primo, por lo tanto la relación no está en la tercera forma normal. Para llevar la relación a la tercera forma normal debemos eliminar todas las dependencias donde una atributo no primo sea funcionalmente dependiente de otro atributo no primo, para ello se debe descomponer la relación dejando en una de ellas el o los atributos no clave que determinen otros atributos no clave; en nuestro caso separamos clavecarrera con sus atributos y agregamos una restricción de integridad referencial, en la Figura 6.b mostramos el diagrama de dependencias con las relaciones en la tercera forma normal. (a) Esquema de relación que no cumple la tercera forma normal 10

(b) Esquemas de relación que cumple la tercera forma normal Figura 6. Forma normal de Boyce-Codd La forma normal de Boyce-Codd es una forma más simple y a la vez más estricta de la tercera forma normal. Toda relación en la forma normal de Boyce-Codd está también en la tercera forma normal. Un esquema de relación R está en la forma normal de Boyce-Codd si siempre que una dependencia funcional no trivial X A se cumple en R, entonces X es una superclave de R. Como se puede notar la única diferencia con la tercera forma normal es que se considera en A tanto atributos primos como no primos. Si todos los atributos que no son clave dependen de la clave, completamente de la clave y nada más que de la clave, la relación está en la tercera forma normal. La forma normal de Boyce-Codd es una forma más fuerte de la tercera forma normal, en este caso se requiere que todos los atributos, no solo aquellos que no sean claves, dependan completamente de la clave y nada más que de la clave. Si la tercera forma normal requiere que todo atributo no primo dependa completamente de la clave y nada más que de la clave, la forma normal de Boyce-Codd requiere que todo atributo dependa completamente de la clave y nada más que de la clave. Considere la relación TUTOR con el esquema (matriculaalumno, clavecarrera, tutor), si un alumno se puede inscribir a varias carreras, la matricula no puede ser clave, suponga además que aunque una carrera tenga varios tutores, un tutor solamente pueden serlo de una carrera, de esta manera las claves candidatas son {matriculaalumno, clavecarrera} y {matriculaalumno, tutor}, si elegimos {matriculaalumno, clavecarrera} como clave principal, el diagrama de dependencias queda como se muestra en la Figura 7.a. En este diagrama no encontramos dependencias parciales de la clave y ningún atributo no primo depende transitivamente de la clave por lo tanto el esquema está en la tercera forma normal. Por otro lado el atributo primo clavecarrera depende transitivamente de la clave principal, encontramos la dependencia tutor clavecarrera donde tutor no es superclave, por lo tanto no está en la forma normal de Boyce-Codd. 11

Para llevar la relación a la forma normal de Boyce-Codd se hace una descomposición de tal manera que se propaga a una nueva relación el atributo no primo determinante y se pasa a esa relación el atributo que depende funcionalmente de él, también por supuesto mantener la restricción de integridad referencial. En la Figura 7.b mostramos el diagrama de dependencias con las relaciones en la forma normal de Boyce-Codd. Cabe mencionar que si hubiéramos escogido como clave principal {matriculaalumno, tutor}, habríamos llegado a un esquema con dependencias parciales de la clave que siguiendo la indicación para llevarlo a la segunda forma normal habríamos llegado al mismo diseño. (a) Esquema de relación que no cumple la forma normal de Boyce-Codd (b) Esquemas de relación en la forma normal de Boyce-Codd Figura 7. El algoritmo de descomposición relacional en la forma normal de Boyce-Codd con la propiedad de concatenación no aditiva se muestra a continuación: Entrada: Una relación R y un conjunto de dependencia F en los atributos de R. 1. Establecer D:={R} 2. Mientras exista un esquema de relación Q en D que no esté en la forma normal de Boyce-Codd, hacer lo siguiente: { elegir un esquema de relación Q en D que no esté en la forma normal de Boyce-Codd 12

} localizar X Y en Q que viole la forma normal de Boyce-Codd remplazar Q en D con dos esquemas de relación (Q-Y) y (X Y) Cuarta forma normal La cuarta forma normal tiene que ver con dependencias multivaluadas. Una dependencia multivaluada X Y en un esquema de relación R, donde X y Y son subconjunto de R implica que si t1 y t2 son tuplas de R, entonces existen t3 y t4 tales que t1[x]=t2[x]=t3[x]=t4[x], t1[y]=t3[y] y t2[y]=t4[x], t1[z]=t4[z] y t2[z]=t3[z] donde Z = (R-(X Y)). Sea por ejemplo la relación ALUMNO con el siguiente esquema (matricula, carrera, deporte) donde un alumno se puede inscribir a diferentes carreras y practicar diferentes deportes, note que las carreras a las que se inscriben los alumnos no tienen relación con los deportes que pueden practicar. Para registrar al alumno con matricula 12345, en las carreras 1 y 3 y en los deportes A y B, se tendrán que agregar 4 tuplas de manera que se cubran todas las combinaciones de las carreras y los deportes, si se omite alguna combinación se podría inferir equivocadamente una relación entre las carreras y los deportes (ver Figura 8a). Esta relación es una relación todo-clave, no tiene dependencias funcionales, por lo que se encuentra en la forma normal de Boyce-Codd, sin embargo presenta anomalías de modificación importantes.; por cada hecho sencillo que se desee insertar se deben agregar varias tuplas, por ejemplo si se desea agregar el hecho de que el estudiante con matrícula 12345 también practicará el deporte C, se deberán agregar las tuplas {12345, 1, C} y {12345, 3, C}, esta relación no está en la cuarta forma normal. Un esquema de relación R está en la cuarta forma normal si por cada dependencia multivaluada no trivial X Y, X es una superclave. Una dependencia multivaluada X Y es trivial si X Y o X Y=R, en otro caso es no trivial. Para llevar la relación a la cuarta forma normal se deberán crear una descomposición binaria, una de las relaciones con los atributos X Y y otra con X Z; el diagrama de dependencias se muestra en la Figura 8.b. 13

(a) Relación con dependencias multivaluadas no triviales (b) Relaciones en la cuarta forma normal Figura 8 La descomposición binaria de una relación R en R1 y R2 además de cumplir con la propiedad de concatenación no aditiva para las dependencias funcionales F de R, se espera que también cumpla la propiedad en relación a las dependencias multivaluadas, es decir (R1 R2) (R1-R2) y por simetría (R1 R2) (R2-R1). Para nuestro ejemplo matricula carrera y matricula deporte. Si hacemos la concatenación natural de las tuplas de la descomposición, (matricula, carrera)*(matricula, deporte) obtenemos la relación original, no se producen tuplas falsas. Quinta forma normal Es muy difícil de encontrar en la práctica, pero puede ocurrir que haya relaciones en la cuarta forma normal y que presenten dependencias de concatenación. Una dependencia de concatenación en un esquema de relación R indica una restricción de los estados de r en R que dice que cada estado legal de r en R debe tener una concatenación no aditiva en (R1, R2,...Rn). Un esquema de relación 14

R está en la forma normal de proyección-concatenación respecto a un conjunto de dependencias funcionales, multivaluadas y de concatenación si por cada dependencia de concatenación no aditiva en F+, cada Ri es una superclave de R. Es decir que la información contenida en R no puede ser reconstruida por el conjunto de relaciones en alguna descomposición. Si consideramos la relación CURSO con el esquema (matricula, materia, profesor) y si un alumno se puede inscribir con varios profesores a diferentes cursos, con el mismo profesor puede tomar varios cursos e incluso y puede tomar el mismo curso con varios profesores, un estado de la relación CURSO se muestra en la Figura 9, en este caso alumno con matricula 12345 se inscribió a la materia 1 con el profesor A y con el profesor B y a la materia 3 con el profesor B y con el profesor A. Podemos notar la similitud con la relación en la Figura 8.a. Sin embargo en este caso no podemos decir que tenemos una dependencia multivaluada ya que otro estado de la válido de la relación es el que se muestra en la Figura 9.b, donde se ha eliminado la última tupla, que claramente no cumple con la definición de dependencia multivaluada. Al no tener dependencias funcionales ni multivaluadas, la relación se encuentra no solo en la forma normal de Boyce-Codd, sino que está enla cuarta forma normal. (a) (b) Figura 9. Estados de relación válidos de la relación CURSO. 15

Una descomposición binaria similar a la que usa para eliminar dependencias multivaluadas no triviales no cumpliría con la propiedad de concatenación no aditiva, note que (matricula, materia)*(matricula, profesor) invariablemente producen la relación en la Figura 9.a. Si la relación en la Figura 9.b es un estado válido de CURSO, entonces se está produciendo la tupla falsa (12345, 3, A). Si descomponemos la relación en tres nuevas relaciones (Figura 10) a la hora de concatenarlas evitamos la aparición de dicha tupla. Figura 10. Descomposición de la relación CURSO en tres relaciones La forma normal dominio clave tiene la idea de especificar, al menos en teoría que se tienen en cuenta todos los posibles tipos de dependencias y restricciones. Un esquema de relación está en la forma normal dominio clave si todas las restricciones y dependencias que deben persistir en los estados de relación válidos pueden cumplirse simplemente haciendo cumplir las restricciones de clave y de domino de la relación. Conclusiones Se presentaron las diferentes formas normales que se pueden alcanzar en un proceso de normalización de una base de datos, alcanzar la forma normal de Boyce- Codd es importante para evitar anomalías en las relaciones y es suficiente para la mayoría de las bases de datos. Bajo ciertas condiciones semánticas de los datos se pueden presentar situaciones donde se requiera alcanzar la cuarta o incluso la quinta forma normal, sobre todos cuando se tienen relaciones que provienen de relaciones muchas a muchos o que incluyen datos de dos o más hechos o entidades. Si se parte de un buen diseño conceptual se puede alcanzar la forma normal dominio clave, 16

donde cada relación representa un solo aspecto de la base de datos y sus atributos son consecuencia natural de sus claves principales. Bibliografía [1] E. F. Codd, «Further Normalization of the Data Base Relational Model,» Data Base Systems, Courant Computer Science Symposia Series 6, 1972. [2] R. Elmasri y S. B. Navathe, Fundamentos de Sistemas de Bases de Datos, quinta edición, Pearson Educación S.A., 2007. [3] C. J. Date, Introducción a los sistemas de bases de datos, séptima edición, Pearson Educación de México S.A., 2001. [4] W. Kent, «A Simple Guide to Five Normal Forms in Relational Database Theory» Communications of the ACM, vol. 26, nº 2, 1983. [5] R. Fagin, «Multivalued Dependencies and a New Normal Form for Relational Databases» ACM Transactions on Database Systems, vol. 2, nº 3, pp. 262-278, 1977. [6] C. Zaniolo, «A New Normal Form for the Design of Relational Database Schemata» ACM Transactions on Database Systems, vol. 7, nº 3, pp. 489-499, 1982. 17