Formas Normales • Estudiaremos formas normales sobre un esquema de relación y luego lo extenderemos al esquema de la base de datos. Teoría de Diseño de Bases de Datos Relacionales • Objetivo: evitar tener esquemas que presenten problemas de redundancias ( y por lo tanto las anomalías asociadas). • Una forma normal es una propiedad de un esquema de relación respecto de un conjunto de dependencias F. Formas Normales Organización de Archivos y Bases de Datos I Ciclo 2006 http://www.dirinfo.unsl.edu.ar/~oaybd1/ • Si un esquema está en una forma normal, entonces hay ciertas redundancias que en ese esquema no se pueden dar. • En este curso veremos: 1FN, 2FN, 3FN y BCNF. OA y BDI -UNSL Prof. Norma Herrera Año 2006 1 OA y BDI -UNSL Prof. Norma Herrera Formas Normales • Cuanto más alta sea la forma normal en la que se encuentra un esquema, menores son los problemas de redundancia y anomalías que aparecen. • Inicialmente Codd propuso: 1FN, 2FN, 3FN y BCNF (basadas en dependencias funcionales). • Posteriormente Fagin propuso 4FN y 5FN (basadas en otros tipos de dependencias). • Cuando un esquema está en una forma normal, también lo estará en las formas normales anteriores. OA y BDI -UNSL Prof. Norma Herrera Año 2006 3 Año 2006 2 Primera Forma Normal (1FN) Definición: Sea R un esquema de relación. Diremos que R está en 1FN si y sólo si para todo atributo A ∈ R los valores de dom(A) son atómicos. • El hecho de que un atributo sea o no atómico depende de la aplicación. • Un atributo no es atómico si la aplicación trata con partes de ese atributo. • Es una forma normal bastante intuitiva: nadie pone en un solo campo de un registro aquella información que necesita ser accedida individualmente. OA y BDI -UNSL Prof. Norma Herrera Primera Forma Normal Año 2006 4 Primera Forma Normal Problemas que se pueden presentar si R no está 1FN Ejemplo: Exámenes = { NroA , CodM , Fecha , Nota } • Hay dependencias funcionales que no se pueden expresar si R no está en 1FN. Ejemplo • Si en la aplicación siempre accedemos a la fecha completa, entonces este esquema está en 1FN. • Pero si en la aplicación se necesita realizar la siguiente consulta: “ alumnos que rindieron algún examen en el mes de marzo “ R no está en 1FN. R = { DNI , Nombre , FechaNac , SignoZodiaco} El signo depende del día y mes de nacimiento pero no del año. En este caso no podríamos expresar esta dependencia. • Si R no está en 1FN podemos tener problemas de actualización Ejemplo Materias = { CodM , NombreM, Docentes } Si mantenemos todos los docentes que trabajan en una materia, tendríamos problemas si uno de ellos cambia de materia o si debemos dar de baja un docente. OA y BDI -UNSL Prof. Norma Herrera Año 2006 5 OA y BDI -UNSL Prof. Norma Herrera Año 2006 6 1 Segunda Forma Normal Segunda Forma Normal (2FN) Definición: Definición: Sea: R un esquema de relación, A ∈ R. Sea: R un esquema de relación F un conjunto de dependencias funcionales Diremos que A es un atributo primo con respecto a F si A pertenece a alguna de las claves de R. Ejemplos: R = { A , B , C , D , E} R = { NroA , NbreA , CodM } F={AD→BC ,B→DE} F = { NroA → NbreA } F un conjunto de dependencias funcionales X →Y una dependencia de F+ Diremos que X no determina plenamente a Y en F si y sólo si X →Y no es reducida a izquierda, es decir: existe Z ⊂ X tal que Z → Y. Denotamos con: X pl Clave 1: A D Clave : NroA CodM Clave 2: A B Atributos primos = { NroA , CodM } Y Atributos primos = { A, B , D } OA y BDI -UNSL Prof. Norma Herrera Año 2006 7 OA y BDI -UNSL Prof. Norma Herrera Segunda Forma Normal Año 2006 8 Segunda Forma Normal Ejemplo: Definición: R = { A , B , C , D , E} Sea: R un esquema de relación. F={AD→BC ,B→DE} F un conjunto de dependencias funcionales • A B → D E es una dependencia de F+ • A B no determina plenamente a DE porque B determina DE, en símbolos: pl AB D E porque B → D E R = { NroA , NbreA , CodM } F = { NroA → NbreA } Diremos que R está en 2FN con respecto a F si y sólo si: R está en 1FN y todo atributo no primo depende plenamente de toda clave. Dicho de otra forma, R está en 2FN con respecto a F si y sólo si: R está en 1FN y no existen dependencias no plenas de atributos no primos respecto de alguna clave. • NroA CodM → NbreA es una dependencia de F+ NroA CodM pl NbreA porque NroA → NbreA OA y BDI -UNSL Prof. Norma Herrera Año 2006 9 OA y BDI -UNSL Prof. Norma Herrera Segunda Forma Normal • Si R no está en 2FN respecto de F, entonces en R existirá redundancia de datos. Año 2006 10 Segunda Forma Normal Notar que: • Un esquema que sólo tiene dos atributos está en 2FN. Si R no está en 2FN con respecto a F entonces: X →Y ∧ ∃ Z ⊂ X tal que Z →Y • Un esquema en el que todas las claves son simples (formadas por un único atributo) está en 2FN. X Y Z ….. α1 β1 α2 β2 α2 β1 γ1 α1 β3 γ1 OA y BDI -UNSL Prof. Norma Herrera • Un esquema en el que todos los atributos son primos está en 2FN. γ1 ….. γ2 Necesariamente tiene que aparecer γ1 ⇒ redundancia (β1 , γ1) Año 2006 11 OA y BDI -UNSL Prof. Norma Herrera Año 2006 12 2 Tercera Forma Normal Tercera Forma Normal (3FN) Definición: Definición 1 (Maier): Sea: R un esquema de relación Sea: R un esquema de relación. F un conjunto de dependencias funcionales F un conjunto de dependencias funcionales. A∈RyX⊆R Diremos que X determina transitivamente a A en F si existe Y ⊆ R tal que: X → Y ∧ Y → X ∧ Y → A y además A ∉ XY • No toda dependencia obtenida por el axioma de transitividad es una dependencia transitiva. OA y BDI -UNSL Prof. Norma Herrera Año 2006 13 Diremos que R está en 3FN con respecto a F si y sólo si: R está en 1FN y no existen dependencias transitivas de atributos no primos respecto de alguna de las claves • Si R no está en 3FN respecto de F, entonces en R existirá redundancia de datos (analice por qué). OA y BDI -UNSL Prof. Norma Herrera Año 2006 14 Tercera Forma Normal Tercera Forma Normal Notar que: Lema • Un esquema que sólo tenga dos atributos está en 3FN. Si R está en 3FN respecto de F entonces R está en 2FN respecto de F. • Un esquema en el que todos los atributos son primos está en 3FN. Demostración Queda como ejercicio. Basta con demostrar que una dependencia no plena de un atributo no primo respecto de una clave, es un caso particular de una dependencia transitiva. OA y BDI -UNSL Prof. Norma Herrera Año 2006 15 OA y BDI -UNSL Prof. Norma Herrera Tercera Forma Normal Año 2006 16 Boyce Codd Normal Form (BCNF) Definición 1 (Maier): Definición 2 (Ullman): Sea: R un esquema de relación. Sea: R un esquema de relación (se supone ya en 1FN). F un conjunto de dependencias funcionales F un conjunto de dependencias funcionales Diremos que R está en 3FN con respecto a F si y sólo si para toda dependencia X → A válida en R (con A ∉ X) se cumple que: ó X es superclave ó A es primo Diremos que R está en BCFN con respecto a F si y sólo si: R está en 1FN y no existen dependencias transitivas respecto de alguna de las claves. Definición 2 (Ullman): Sea: R un esquema de relación (se supone ya en 1FN). • Obviamente ambas definiciones son equivalentes (queda como ejercicio demostrarlo). OA y BDI -UNSL Prof. Norma Herrera Año 2006 17 F un conjunto de dependencias funcionales Diremos que R está en BCNF con respecto a F si y sólo si para toda dependencia X → A válida en R (con A ∉ X) se cumple que X es superclave. OA y BDI -UNSL Prof. Norma Herrera Año 2006 18 3 Boyce Codd Normal Form • Nuevamente, ambas definiciones son equivalentes (queda como ejercicio demostrarlo). • Si R no está en BCFN respecto de F, entonces en R existirá redundancia de datos. Lema Si R está en BCFN respecto de F entonces R está en 3FN respecto de F. OA y BDI -UNSL Prof. Norma Herrera Año 2006 19 4