IES Azarquiel Página 1 de 3 Gestión de Bases de Datos ____________________________________________ Normalización. Angel Martínez Cañadas [email protected], IES Azarquiel, Toledo I. INTRODUCCIÓN El proceso de normalización trata las dependencias que existen entre los atributos de una relación. Los pasos que se realizan para normalizar una relación son los siguientes: 1. Cálculo de las dependencias funcionales que existen entre los atributos de la relación. 2. Cálculo del recubrimiento minimal. 3. Cálculo de las claves candidatas de la relación, de los atributos principales y de los no principales. 4. Cálculo de la forma normal en la que se encuentra la relación. 5. Aplicar los métodos de síntesis y análisis para obtener la forma normal deseada. II. CÁLCULO DE LAS DEPENDENCIAS Entre los atributos de una relación (R) pueden existir dependencias de varios tipos. Las dependencias son propiedades inherentes al contenido semántico de los datos, formando parte de las restricciones de usuario del modelo relacional. Existen distintos tipos de dependencias: funcionales, multivaluadas, jerárquicas y en combinación. A. Dependencias funcionales Definición: Sea el esquema de relación R(AT, DEP), donde R es la relación, AT es el conjunto de atributos y DEP el conjunto de dependencias, y X e Y dos subconjuntos de AT denominados descriptores. Y depende funcionalmente de X (X determina a Y) si para cada valore de X solamente existe un único valor posible para Y. Se escribe: X→Y Además, al conjunto X se le denomina implicante o determinante y al conjunto Y se le denomina implicado. Ejemplo. Un ejemplo de dependencia funcional es la que existe entre los atributos DNI de profesor y Nombre de Profesor: PROFESOR(AT, DEP) AT= {DNI_profesor, Nombre_profesor} DEP={DNI_profesor → Nombre_profesor}) Si además se cumpliera que no pueden existir dos profesores con el mismo nombre, esto implicaría que el nombre también puede actuar como clave de la relación Profesor, y por tanto también determina funcionalemente a su DNI, es decir: Nombre_profesor ↔ DNI_profesor Cuando dos o más atributos se implican funcionalmente mutuamente se dice que son equivalentes. Algunas definiciones más necesarias para el proceso de normalización de relaciones: • Dependencia funcional (DF) trivial, cuando Y es un subconjunto de X. Ejemplo Nombre_profesor → Nombre_profesor. • DF elemental, si Y es un único atributo, es una dependencia plena (no parcial) y no trivial Ejemplo Nombre_profesor → DNI_profesor. • DF transitiva, si en el esquema de la relación R({X,Y,Z},DEP) existen las dependencias X → Y; Y → Z; Y -/-> X Ejemplo Nombre_profesor → Código_Postal; Código_Postal → Ciudad; Código_Postal -/-> Nombre_profesor B. Dependencias multivaluadas Sean X e Y dos descriptores. X multidetermina Y si para cada valor de X existen un conjunto bien definido de valores posibles en Y, con independencia del resto de los atributos. Se escribe: X →→ Y Ejemplo Por ejemplo, titulación: Nombre Felipe Felipe Antonia en la tabla siguiente el atributo DNI multidetermina a Titulación Magisterio Música Técnico Superior ASIR Ingeniero Informático Existen otros tipos de dependencias más complejas, pero no entraremos en ellas. III. CÁLCULO DEL RECUBRIMIENTO MINIMAL Un conjunto de dependencias es mínimo, y se denota m como DEP , cuando se cumplen las siguientes condiciones: • Todas sus dependencias son elementales, es decir, que todas sus dependencias sean plenas, no triviales y tengan un único atributo implicado. • No existe en ninguna de las dependencias atributos extraños. Un atributo A perteneciente a X es extraño en la dependencia X → Y si la dependencia (X-A) → Y se deduce del resto de las dependencias de la relación. Por ejemplo, sea R({A,B,C},{A → C, AB → C}), como el atributo A implica funcionalmente a C, el atributo B es redundante en la segunda dependencia. • No existe en la relación ninguna dependencia redundante. Una dependencia redundante si sus implicados se deducen a partir del resto de las dependencias de la relación. Por ejemplo, sea R({A,B,C}, {A → B, B → C, A → Página 2 de 3 IES Azarquiel ————————————————————————————————————– C}). Como el atributo A determina transitivamente al atributo C, la última dependencia (A → C) es una dependencia redundante. Puede ocurrir que existan varios conjuntos de dependencias mínimos válidos, ya que todo depende de la elección de las dependencias redundantes y de los atributos extraños que se eliminan en el proceso del cálculo del conjunto minimal. IV. CONJUNTO DE CLAVES CANDIDATAS Dado un esquema de relación R(AT,DEP) se denomina superclave de la relación a un conjunto no vacío de atributos que determinan AT, es decir, que el cierre transitivo de ese conjunto de atributos sea todo AT. El cierre transitivo de X se define como el conjunto de atributos determinados por X aplicando los axiomas de + Armstrong, y se escribe X . Axiomas de Armstrong, suponiendo que X, Y o Z son conjuntos de atributos: Reflexividad . Si X,entonces X->X Proyectividad. Si X->Y, y Z es subconjunto de Y, entonces X->Z Aumentatividad. Si X->Y, y Z contiene a X, entonces Z->Y Aditividad. Si X->Y y Z->V, X U Z -> Y U V Transitividad. Si X->Z y Z->Y, entonces x->Y Ejemplo en el esquema R({A,B,C,D}, {A → B,D B → C }) A+={A, B, C, D} B+={B, C} C+={C} D+={D} Se denomina clave candidata de una relación a una superclave tal que cumple que ningún subconjunto de la misma determina a todo AT. Por ejemplo, en R la única clave candidata que existe es A, ya que determina todo AT. El conjunto {A, B} no sería clave candidata porque el subconjunto {A} determina AT. A. Atributos principales y no principales Un atributo es principal cuando forma parte de alguna de las claves candidatas de la relación. Un atributo es no principal cuando no forma parte de ninguna clave candidata. En el ejemplo, A es principal, mientras que el resto son atributos no principales. V. FORMA NORMAL DE UNA RELACIÓN. Existen seis niveles de normalización de una relación. Una relación se encuentra en uno u otro grado de normalización si cumple una serie de propiedades (restricciones). Existes tres formas normales basadas en las dependencias funcionales (primera forma normal o 1FN, segunda forma normal o 2FN, tercera forma normal o 3FN), una forma norma llamada forma normal de Boyce-Codd (FNBC) y una cuarta y quinta forma normal basada en dependencias multivaluadas y de combinación. Cada forma normal incluye a las anteriores, es decir, una relación en 3FN estará en 2FN y 1FN. Las relaciones en primera forma normal (1FN) tienen más redundancia de datos que los niveles superiores, y por lo tanto más anomalías de actualización. La quinta forma normal (5FN) es el grado de normalización máximo que puede alcanzar una relación. A. Primera Forma Normal Se dice que una relación está en primera forma normal (1FN) cuando cada atributo sólo toma un valor. Ejemplo Tabla que no está en 1FN: Nombre Titulaciones Felipe Magisterio Música Técnico Superior ASIR Antonia Ingeniero Informático Tabla que está en 1FN: Nombre Titulaciones Felipe Magisterio Música Felipe Técnico Superior ASIR Antonia Ingeniero Informático La primera forma normal es una restricción del modelo relacional, por lo que obligado que se cumpla en toda relación. B. Segunda Forma Normal Una relación se encuentra en 2FN si: • Se encuentra en 1FN. • Cada atributo no principal tiene dependencia funcional completa respecto de alguna de las claves. Ejemplo Relación que no está en 2FN: R1({A,B,C,D}, {A,B->C; A->D}) Relación que está en 2FN: R2({A,B,C,D}, {A,B->C; A,B->D}) C. Tercera Forma Normal Una relación se encuentra en 3FN si: • Se encuentra en 2FN. • No existe ningún atributo no principal que dependa transitivamente de alguna clave de R. IES Azarquiel Página 3 de 3 ————————————————————————————————————– R Ejemplo Relación que no está en 3FN: R1({A,B,C}, {A->B; B->C}) Relación que está en 3FN: R2({A,B,C}, {A->B; A->C}) D. Forma Normal de Boyce-Codd Se dice que una relación se encuentra en FNBC si y sólo si todo determinante es clave candidata. Ejemplo Relación que no está en FNBC: R1({A,B,C,D}, {A<->B; A,C->D}) La relación tendría como claves candidatas {A,C} y {B,C}, pero A y B son determinantes, luego no se cumple la condición de FNBC. Relación que está en FNBC: R2({A,B}, {A<->B}) VI. MÉTODO DE DESCOMPOSICIÓN El método de descomposición trata de analizar una relación (relación universal) en diferentes proyecciones paso a paso hasta alcanzar la 5FN (nosotros llegaremos únicamente hasta la FNBC). El proceso crea un árbol de descomposición. La descomposición se termina cuando las relaciones se encuentran en la forma normal objetivo o cuando continuar supone la pérdida de información necesaria (dependencias funcionales). Los pasos son los siguientes: • Hallar el recubrimiento minimal. • Hallar las claves, los atributos principales y los no principales. • Identificar la FN en la que se encuentra la relación. • Agrupar las dependencias funcionales que tienen la misma parte izquierda y crear dos nuevas relaciones con estos grupos. Ejemplo AT= {A,B,C,D,E,F}: DEP={ A,B->C A,D->F A,C->E} AT={A,B,C,D,E,F} DEP={ A,B->C A,D->F A,C->E} Claves: {A,B,D} 1FN R1 AT={A,C,E} DEP={ A,C->E} R2 AT={A,B,C,D,F} DEP={ A,B->C A,D->F} Claves: {A,C} FNBC R3 AT={A,D,F} DEP={ A,D->F} Claves: {A,D} FNBC Claves: {A,B,D} 1FN R4 AT={A,B,C} DEP={ A,B->C} Claves: {A,B} FNBC