- Facultad de Ingeniera Curso : Fundamentos de Bases de Datos
1 Tema 4 - Diseo Relacional Formas Normales Normalizacin - Introduccin Primera Forma Normal Segunda Forma Normal Tercera Forma Normal Forma Normal de Boyce-Codd Dependencias Multivaluadas Cuarta Forma Normal In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 2 Tema 4 - Diseo Relacional Normalizacin Introduccin En el proceso de normalizacin se somete un esquema relacin (er) a una serie de pruebas para certificar si pertenece o no a una cierta forma normal. Puede considerarse como un proceso durante el cual los er insatisfactorios se descomponen repartiendo sus atributos entre ers ms pequeos que poseen propiedades deseables. Las formas normales, sin considerar otros factores, no garantizan un buen diseo de BD. Props adicionales: Join sin prdida Preservacin de dependencias In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 3 Tema 4 - Diseo Relacional Superclave Superclave Una superclave de R = {A 1 , , A n } es un conjunto de atributos S R tal que no existen 2 tuplas t 1 y t 2 en ningn r tal que t 1 [S] = t 2 [S]. In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 4 Tema 4 - Diseo Relacional Clave Clave Una clave K es una superclave que cumple que si se le quita alguno de sus atributos, deja de ser superclave. In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 5 Tema 4 - Diseo Relacional Clave Candidata Clave candidata, clave primaria Si una relacion tiene mas de una clave, cada una es una clave candidata. Una de ellas es arbitrariamente designada como clave primaria. El resto son secundarias. In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 6 Tema 4 - Diseo Relacional Primera Forma Normal (1NF) Definicin Los dominios de los atributos deben incluir solo valores atmicos (los atributos no pueden ser multivaluados ni compuestos) Ejemplo In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 7 Tema 4 - Diseo Relacional Definiciones Atributo Primo Un atributo del esquema relacin R es primo si es miembro de alguna clave de R. In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 8 Tema 4 - Diseo Relacional Definiciones Atributos redundantes a la izquierda de df Dado F conjunto de dfs que se cumplen en R, decimos que la df XA F contiene atributos redundantes a la izquierda, si se cumple YA F + , donde Y X. Dependencia Parcial XY es una df parcial si contiene al menos un atributo redundante a la izquierda. In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 9 Tema 4 - Diseo Relacional Segunda Forma Normal (2NF) Definicin Un er R est en 2NF si ningn atributo no primo A de R depende parcialmente de cualquier clave de R. Dicho de otra forma: Un er R est en 2NF si no existe una df parcial X->A tal que X es clave y A no es un atributo primo. In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 10 Tema 4 - Diseo Relacional Segunda Forma Normal (2NF) Ejemplo El atributo no primo NOMBREE viola 2NF, por la df2 Los atr no primos NOMBREPR y LUGARP violan 2NF, por la df3 In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 11 Tema 4 - Diseo Relacional Segunda Forma Normal (2NF) In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 12 Tema 4 - Diseo Relacional Definiciones Dependencia Transitiva Una df XY en un er R es una df transitiva si existe un conjunto de atributos Z que no sea un subconjunto de una clave de R, y se cumplen tanto XZ como ZY. In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 13 Tema 4 - Diseo Relacional Tercera Forma Normal (3NF) Definicin Un er R est en 3NF si est en 2NF y ningn atributo no primo de R depende transitivamente de una clave de R. Un er R est en 3NF si, siempre que una df XA se cumple en R, o bien (a) X es una superclave de R, o (b) A es un atributo primo de R. In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 14 Tema 4 - Diseo Relacional Tercera Forma Normal (3NF) Ejemplo Las dfs NUMERODNOMBRED y NUMERODNSSGTED violan 3NF In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 15 Tema 4 - Diseo Relacional Tercera Forma Normal (3NF) Ejemplo In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 16 Tema 4 - Diseo Relacional Forma Normal de Boyce-Codd (BCNF) Definicin Un er R est en BCNF si, siempre que una df XA se cumple en R, entonces X es una superclave de R. Ejemplo In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 17 Tema 4 - Diseo Relacional Forma Normal de Boyce-Codd (BCNF) Ejemplo Imparte (estudiante, curso, profesor) F = { estudiante, curso profesor profesor curso } Claves: {estudiante, curso} y {estudiante, profesor} 3NF Descomposiciones posibles: {estudiante, profesor} y {estudiante, curso} {curso, profesor} y {curso, estudiante} {profesor, curso} y {profesor, estudiante} In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 18 Tema 4 - Diseo Relacional Algoritmos de diseo Descomposicin de relaciones Preservacin de dependencias Descomposicin en 3NF preservando las dfs Join sin prdida. Propiedad Test de join sin prdida Descomposicin en BCNF con JSP Descomposicin en 3NF con JSP y pres de dfs Problemas con valores nulos y tuplas colgantes In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 19 Tema 4 - Diseo Relacional Descomposicin de relaciones Esquema relacin universal R R = (A 1 , A 2 , ..., A n ), que contiene todos los atributos de la BD In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 20 Tema 4 - Diseo Relacional Descomposicin de relaciones Descomposicin de R, D D = (R 1 , R 2 , ..., R m ), que se obtiene mediante los algoritmos que realizan la descomposicin utilizando las dependencias funcionales Se debe verificar: i=1 m R i = R In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 21 Tema 4 - Diseo Relacional Preservacin de dependencias Proyeccin de un conjunto de dependencias sobre un Esquema de Relacin Dado un conjunto de dfs F sobre R, la proyeccin de F sobre R i , Ri (F), donde R i es un subconj de R, es el conj de dfs XY en F+ tal que los atributos en XY estn todos contenidos en R i . In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 22 Tema 4 - Diseo Relacional Preservacin de dependencias Preservacin de dependencias Una descomposicin D = (R 1 , R 2 , ..., R m ) de R preserva las dependencias respecto a F si se cumple: ( ( R1 (F)) ... ( Rm (F)) )+ = F+ In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 23 Tema 4 - Diseo Relacional Descomposicin en 3NF con pres de dfs Algoritmo 1. Encontrar un cubrimiento minimal G para F; 2. Para cada miembro izq X de una df que aparezca en G crear un er {X A 1 A 2 ... A m } en D, donde XA 1 , XA 2 , ... , XA m sean las nicas dfs en G con X como miembro izq; 3. Colocar cualesquier atributos restantes en un solo er para asegurar la prop de preservacin de dependencias; In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 24 Tema 4 - Diseo Relacional Join sin Prdida Definicin Una descomposicin D = (R 1 , R 2 , ..., R m ) de R tiene la propiedad de JSP respecto al conjunto de dfs F sobre R, si por cada instancia de relacin r de R que satisfaga F, se cumple lo siguiente: * ( R1 (r), ..., Rm (r)) = r In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 25 Tema 4 - Diseo Relacional Join sin Prdida Propiedad D = (R 1 , R 2 ) de R tiene JSP respecto a F sobre R sii - la df (R 1 R 2 ) (R 1 - R 2 ) est en F+ - la df (R 1 R 2 ) (R 2 - R 1 ) est en F+ In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 26 Tema 4 - Diseo Relacional Test de join sin prdida Algoritmo 1. crear una matriz S con una fila i por cada relacin R i en la desc D, y una columna j por cada atributo A j en R; 2. hacer S(i,j) := b ij para todas las entradas de la matriz; 3. para cada fila i que represente el er R i para cada columna j que represente el atributo A j si R i incluye a A j entonces hacer S(i,j) := a j ; 4. repetir hasta que una ejecucin no modifique S para cada df XY en F igualar los smbolos en los atributos de Y para aquellas filas que coinciden en los atributos de X; 5. si una fila tiene todos smbolos a, la desc es con JSP, en caso contrario, no lo es; In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 27 Tema 4 - Diseo Relacional Test de join sin prdida Ejemplo In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 28 Tema 4 - Diseo Relacional Descomposicin en BCNF con JSP Algoritmo 1. hacer D := { R }; 2. mientras haya un er Q en D que no est en BCNF hacer comenzar escoger un er Q en D que no est en BCNF; encontrar una df XY en Q que viole BCNF; reemplazar Q en D por dos esquemas (Q - Y) y (X Y) fin; In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 29 Tema 4 - Diseo Relacional Desc en 3NF con JSP y pres de dfs Algoritmo 1. encontrar un cubrimiento minimal G para F; 2. para cada miembro izq X de una df que aparezca en G crear un er {X A 1 A 2 ... A 1m } en D, donde XA 1 , XA 2 , ... , XA m sean las nicas dfs en G con X como miembro izq; 3. colocar cualesquier atributos restantes en un solo er; 4. si ninguno de los er contiene una clave de R, crear un er adicional que contenga atributos que formen una clave de R; In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 30 Tema 4 - Diseo Relacional Problemas con nulos Ejemplo In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 31 Tema 4 - Diseo Relacional Problemas con nulos In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 32 Tema 4 - Diseo Relacional Problemas con tuplas colgantes In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 33 Tema 4 - Diseo Relacional Resumen Se presentaron las ideas bsicas de la teora de diseo relacional. Dependencia Funcional Forma Normal Descomposicin Preservacin de Dependencias Join Sin Prdida Algoritmos de Normalizacin. In.Co. - Facultad de Ingeniera Curso : Fundamentos de Bases de Datos 34 Tema 4 - Diseo Relacional Resumen 1NF 2NF 3NF BCNF