NORMALIZACION. Fig. 1

Documentos relacionados
Formas Normales. Normalización. Introducción

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

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

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

IV. MODELO RELACIONAL

Temario. Índices simples Árboles B Hashing

Diseño de Base de Datos

Modelo Relacional: Dependencias Funcionales y Normalización

Bases de Datos OTROS ASPECTOS MODELO E-R

Normalización. Tema 16

Modelo relacional. El modelo relacional

NORMALIZACION. Definición.

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

Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla

Solución Práctico 6 Diseño Relacional. Ejercicio 1: Tecnólogo en Informática Base de Datos 1 Práctico

TEMA 8.- DISEÑO TEORICO DE BASES DE DATOS RELACIONALES. 1. TEORÍA DE LAS DEPENDENCIAS FUNCIONALES

DED Diagramas de Estructura Lógica de Datos. Universidad de Oviedo Departamento de Informática

Bases de Datos y Sistemas de Información

Esquema conceptual: Unidad IV

Dep. Multivaluadas y Cuarta F.N.

Modelo Relacional. Normalización

Diseño Lógico Modelo Relacional. Ges3ón y Modelación de Datos María Constanza Pabón

Transformación ER Relacional para el diseño de bases de datos relacionales

Espacios Vectoriales Asturias: Red de Universidades Virtuales Iberoamericanas 1

1.Introducción al Modelo Relacional.

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

Eduardo Mora y Marta Zorrilla Pág

El Modelo Relacional. Carlos A. Olarte BDI

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

UNIDAD 1: CONCEPTOS BA SICOS DE BASE DE DATOS

Capítulo 4. Lógica matemática. Continuar

4. FUNDAMENTOS DEL MODELO RELACIONAL

- Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación DER

Modelo Relacional. Modelo Relacional. Temas: Referencia:

MATEMÁTICAS II TEMA 6 Planos y rectas en el espacio. Problemas de ángulos, paralelismo y perpendicularidad, simetrías y distancias

Tema 5: Normalización en Bases de Datos

Dependencias funcionales

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

El modelo relacional

Base y Dimensión de un Espacio Vectorial

Materia requisito: DOMINIOS COGNITIVOS (Objetos de estudio, temas y subtemas) I. INTRODUCCION A LAS BASES DE DATOS

PRODUCTO CARTESIANO RELACIONES BINARIAS

Fundamentos de programación y Bases de Datos

Bases de Datos Relacionales

Administración de Bases de Datos (Ingeniería Técnica en Informática de Gestión)

CONSULTA Y MANIPULACIÓN DE LOS DATOS

Dependencias Funcionales. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz

Esta definición se puede ampliar a cualquier par de bases de los espacio inicial y final MATRIZ DE UNA APLICACIÓN LINEAL EN BASES ARBITRARIAS

BASES DE DATOS TEMA 2 MODELOS DE DATOS

Capítulo 2 Conjuntos. 2.1 Introducción. 2.2 Determinación de conjuntos. Definición:

rg.o cm a Diseñ e o o l óg ó ico c l@ rza e b Di D s i e s ño d e b as a e s s s d e d at a o t s s r e r la l c a i c o i nal a e l s

ESPACIOS VECTORIALES

Ing. Yim Isaias Apestegui Florentino

EL MODELO RELACIONAL

Normalización n de Bases de Datos Relacionales. Bases de Datos. Malos Diseños. Índice. Muchos Problemas. Definición

APUNTES DE FUNDAMENTOS DE MATEMATICA. CASO I: Cuando todos los términos de un polinomio tienen un factor común.

Ampliación Matemática Discreta. Justo Peralta López

1 SISTEMAS DE ECUACIONES LINEALES. MÉTODO DE GAUSS

BLOQUE 1. LOS NÚMEROS

CONCEPTOS BASICOS DE LA TRANSFORMADA DE LAPLACE LA TRANSFORMADA DE LAPLACE

Conocimiento de las Bases de Datos relacionales.

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

ECUACIONES. Ecuaciones. Indicadores. Contenido ECUACIÓN

Optimización de Descomposiciones de Esquemas Normalizados en el Modelo Relacional

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD

1 ÁLGEBRA DE MATRICES

FUNDAMENTOS NUMÉRICOS SEMANA 4

Modelos y Bases de Datos

Tema 1: MATRICES. OPERACIONES CON MATRICES

DEPARTAMENTO DE MATEMATICAS Y FISICA Matemáticas Discreta

Unidad 5: MODELO DE COMPORTAMIENTO - ESQUEMA DE DATOS CARACTERÍSTICAS DEL ESQUEMA DE DATOS DIAGRAMA ENTIDAD RELACIÓN (D.E.R.)

id_trabajador nombre tarifa_hr tipo_de_oficio id_supv 1235 F. Aguilera 12,50 Electricista A. Calvo 13,75 Fontanero N.

INTERVALOS Y SEMIRRECTAS.

Temario Curso Bases de Datos

Modelo Entidad Relación.MER.

INSTITUTO DE PROFESORES ARTIGAS

SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES

DISEÑO DE BASES DE DATOS RELACIONALES: NORMALIZACION

Límite de funciones. Por otra parte se dice que una función es discontínua si para algún (os) valor (es) de x no existe valor de y.

Diseño Lógico de Bases de Datos Relacionales

BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Reglas de Integridad

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse

CONTINUIDAD DE FUNCIONES. SECCIONES A. Definición de función continua. B. Propiedades de las funciones continuas. C. Ejercicios propuestos.

Problemas de Espacios Vectoriales

Diseño Lógico El modelo relacional. M.Sc.Lic. Cimar H. Meneses España

Límites y continuidad de funciones reales de variable real

Tema 3: Espacios vectoriales

Amplificadores Operacionales

TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN

un conjunto cuyos elementos denominaremos vectores y denotaremos por es un espacio vectorial si verifica las siguientes propiedades:

Modelos de Datos. Modelo Entidad-Relación

LEYES DE COMPOSICIÓN INTERNA Y ELEMENTOS DISTINGUIDOS

SESIÓN 10 DERIVACIÓN DE FUNCIONES TRIGONOMÉTRICAS DIRECTAS

Capítulo 6. Relaciones. Continuar

NORMALIZACIÓN DE BASES DE DATOS RELACIONALES

Normalización. Universidad Nacional de Colombia Facultad de Ingeniería

Análisis y síntesis de sistemas digitales combinacionales

Tema 6: Teoría Semántica

Transcripción:

NORMALIZACION 1.- DEPENDENCIA FUNCIONAL Una dependencia funcional es una restricción entre dos conjuntos de atributos de una base de datos. Dado el esquema de una base de datos relacional R={A1,A2,...,An}, una dependencia funcional X Y ( Y depende funcionalmente de X ) entre dos conjuntos de atributos X e Y que son subconjuntos de R, implica que existe una dependencia entre las posibles tuplas t1 y t2 que pueden pertenecer a la relación r(r). Esta dependencia conlleva a que para toda tupla t1 y t2 pertenecientes a la relación r, siempre que t1[x] Fig. 1 Un esquema relacional R(A,F) está constituido por un conjunto de atributos A={A1,A2,...An} y un conjunto de dependencias funcionales F existentes entre dichos atributos.

Conjunto R=esq uema de BD relacional A1 A 3 A72 A 97 F1=A72 A95 F2=A97 - A46 A95 A 46 A21 A44 A6 A88 F3=A88 A43 A43 A56 Subc onjunto de Atributos X Subc onjunto de Atributos Y Fig. 2 Por ejemplo, considérese la relación EMPL_PROYECT, en ella se pueden establecer las siguientes dependencias funcionales:. CUIL (Nombre_E): esta dependencia funcional indica que el número de cuil (CUIL) de un empleado determina el nombre del mismo (Nomb_E). Igualmente podemos decir que Nomb_E está funcionalmente determinado por NSS ya que dado un determinado valor de CUIL conocemos el valor de Nomb_E.. Numb_P ( (Nomb_P, Situ_P) :mediante esta dependencia se indica como conocido el número de un proyecto (Num_P) queda determinado su nombre (Nomb_P) y su situación (Situ_P).. (CUIL, Num_P) ( Horas : el conjunto formado por el número de la seguridad social de un empleado y el número de un proyecto, determinan funcionalmente las horas que un empleado trabaja en dicho. REGLAS DE INFERENCIA LÓGICAS PARA DEPENDENCIAS FUNCIONALES: Sea F un conjunto de dependencia funcionales especificadas en un esquema relacional R, y sea ƒ una dependencia funcional definida sobre el conjunto de atributos del esquema relacional, se dice

que F implica o infiere lógicamente a ƒ, (F = f), si cada relación r(r) que satisface las dependencias funcionales en F también satisface ƒ. Por ejemplo, supóngase el siguiente conjunto de dependencias funcionales: F = { CUIL { Nomb_E, Fech_na, Dirección, Num_D }, Num_D { Nomb_D, CUIL_jefeD} } De F se pueden derivar las siguientes dependencias: CUIL { Nomb_E, CUIL_jefe } CUIL CUIL Num_D Nomb_D ƒ1 ƒ2 ƒ3 Las dependencias funcionales que se infieren de un conjunto de dependencias F están determinadas por las denominadas Reglas de Inferencia: a) Reflexiva: Un conjunto de atributos siempre se determina a si mismo y a un subconjunto propio. Si Y está incluido en X X Y entonces X Y Ejemplo: {CUIL, Nomb_E} Nomb_E {CUIL, Nomb_E} CUIL b) Aumentación: Si se suma un conjunto de atributos a ambos lados de una dependencia funcional se obtiene otra dependencia funcional igualmente válida. Si X Y entonces XZ YZ Ejemplo: {CUIL, Nomb_E} Dirección {CUIL, Nomb_E,Fech_na} {Dirección, Fech_na} c) Transitiva: Si Y depende funcionalmente de X, y Z depende funcionalmente de Y, entonces se verifica que Z depende funcionalmente de X. Si { X Y, Y Z } entonces X Z Ejemplo: {CUIL} {Num_D} {Num_D} { Nomb_D} {CUIL} {Nomb_D} Estas tres propiedades se conocen con el nombre de Axiomas de Armstrong y a partir de ellas se pueden deducir las siguientes:

d) Proyección: Si el conjunto de atributos Y depende funcionalmente de X y se verifica que los valores del conjunto de atributos Z están incluidos en los valores de Y, entonces se tiene que cumplir que Z depende funcionalmente de X. Si X Y Z { X Y, X Z} Esta propiedad se puede demostrar a través de los axiomas de Armstrong:. Aplicando la propiedad reflexiva: YZ Y YZ Z. Mediante la propiedad transitiva: X Y X Z De esta propiedad se desprende que se puede descomponer una dependencia funcional X { A1, A2,..., An } en un conjunto de dependencias { X A1, X A2,..., X An} e) Unión: Si Y depende funcionalmente de X y se cumple que Z está funcionalmente determinada por X, entonces se verifica que Y y Z dependen funcionalmente de X. Demostración: Si { X Y, X Z } X YZ X desaparece ya que está Incluida en sí misma. Por aumentación: X Y ==> X X Y X X YX X Z ==> YX YZ. Con las nuevas dependencias por transitividad ==> X Y Esta propiedad es la contraria a la proyección, permite combinar un conjunto de dependencias funcionales { X A1, X A2,..., X An } en una única dependencia funcional X { A1, A2,..., An }. f) Pseudotransitiva: Si { X Y, WY Z } WX Z Demostración: Por aumentación X Y ==> WX WY Como WY Z, aplicando la propiedad transitiva ==> WX Z

CLAUSURA DE X BAJO F Sea X un conjunto de atributos y F un conjunto de dependencias funcionales con X a la izquierda. La clausura de X bajo F, X* es el conjunto de atributos funcionalmente dependientes de X bajo F más las dependencias inferidas de F. El algoritmo empleado para calcular la clausura de X bajo F, X*, es el siguiente: X*:=X Repeat Antiguo X*:=X*; Por cada dependencia funcional Y Z do If Y X*:then X*:=X* Z Until ( antiguo X* = X*); El valor inicial que toma X* está formado por todos los atributos de X, a continuación, a través de las reglas de inferencia transitiva, proyección y unión se van añadiendo nuevos atributos a X* apoyándose en las dependencias funcionales de F. Ejemplo: Se quiere calcular la clausura { AC }*. Para ello, si se siguen los pasos indicados por el algoritmo:. Aplicando la propiedad reflexiva, el valor inicial de { AC }* es AC.. Por cada uno de los subconjuntos que se pueden definir en { AC }, { AC, A, C }, se buscan las dependencias funcionales de F en las que dichos atributos intervienen en calidad de determinantes: A B AC DE. Aplicando las propiedades de inferencia se determina la clausura buscada: { AC }* = AC => { AC }* = ACDE AC ( DE => { AC }* = ABCDE. A ( B

CLAUSURA DE X BAJO F (X+) Definición: X+ es el conjunto de atributos determinados funcionalmente por X Algoritmo para determinar X+ bajo F X+ := X repetir viejox+ := X+; para cada df Y -> Z en F hacer si Y X+ entonces X+ := X+ U Z; hasta que (viejox+ = X+); Ejemplo: Dado EMP_PROY( NSS, NUMEROP, HORAS, NOMBREE,NOMBREPR, LUGARP) Sea F = { NSS -> NOMBREE; NUMEROP -> NOMBREPR,LUGARP; NSS,NUMEROP -> HORAS } el conjunto de todas las Dependencias Funcionales { NSS }+ = {NSS, NOMBREE} NSS+ es el conjunto de atributos determinados funcionalmente por NSS { NUMEROP }+ = {NUMEROP, NOMBREPR, LUGARP} { NSS, NUMEROP }+ = {NSS, NUMEROP, NOMBREE, NOMBREPR, LUGARP, HORAS*} *Observar que no es simplemente la unión de las clausuras de los elementos del conjunto. El atributo Horas depende de ambos RECUBRIMIENTO DE UN CONJUNTO DE DEPENDENCIAS FUNCIONALES. Dados dos conjuntos de dependencias funcionales F y G, se dice que ambos conjuntos son equivalentes si sus cláusulas lineales coinciden, F* = G*, evidentemente esto sucederá si y solo si toda dependencia funcional X Y de F pertenece también a G* y toda dependencia W Z se encuentra en F*. Se dice que G recubre a F si para toda dependencia funcional X Y perteneciente a F se verifica que Y X*, siendo X* la clausura lineal de X respecto a G.

Cobertura mínima o recubrimiento no redundante Un conjunto de dependencia funcional F es una cobertura mínima si cumple las siguientes condiciones: 1º. Toda dependencia funcional tiene un único componente como atributo dependiente. 2º. Las dependencias no se mantienen cuando se sustituye una dependencia X Y por Y A, siendo Y un subconjunto estricto de X, es decir, no hay atributos extraños ( un atributo es extraño cuando el ser eliminado como atributo determinante de una dependencia funcional el cierre de la misma no se ve alterado ). 3º. No existen dependencias redundantes. Una dependencia X Ai perteneciente a F es redundante en F cuando su supresión no altera el cierre de F. Ejemplo: Dada la siguiente relación R(A,B,C,D,E,F,G,H,) en la que se verifica el siguiente conjunto de dependencias funcionales: A DFG BG BCD AC GH FG DE El recubrimiento mínimo es: A F BG B(2) AC H FG D A G BG C AC G(3) FG E A D(1) BG D Las dependencias funcionales que aparecen tachadas no forman parte del recubrimiento mínimo pueden ser inferidas de las retantes dependencias funcionales: (1): A F ==> (unión) A FG A G ==> (transitiva) A D FG D (2): BG B (reflexiva) (3): A G ==> (aumentación) AC GC ==> (proyección) AC G

Una vez conocido el concepto de dependencia funcional, se puede redifinir una serie de términos cuyo significado ya se conoce de una forma intuitiva: Superclave Se dice que un conjunto de atributos de una relación es superclave si y solo si ese conjunto de atributos determina a todos lo demás, es decir, si dicho conjunto de atributos determina unívocamente cada tupla de la relación. S R superclave t1, t2 tuplas de R/ t1[s] t2[s] Clave o clave candidata Dada una relación R = { A1, A2,..., An }, se dice que una superclave de la relación es clave o clave candidata si es superclave mínima, es decir, si no existe ningún subconjunto de atributos de dicha superclave del cual sean funcionalmente todos los demás atributos de la relación. Cuando existen varias claves candidatas, se elige una de ellas como clave primaria de la relación, denominándose al resto claves secundarias. Atributo Primario Se dice que un atributo es primario si pertenece a alguna de las claves candidatas de la relación tipo. Ejemplo: AE determinan a todos los demás atributos de la relación, por tanto es superclave, además es superclave mínima ya que ni A ni E determinan a todos los atributos, de ahí que tanto D como AE son claves candidatas. NORMALIZACIÓN La normalización es un proceso reversible mediante el que se realiza una descomposición progresiva de un conjunto de relaciones dado en sucesivos conjuntos caracterizados por presentar relaciones cada vez más sencillas y regulares, alcanzando la estructura óptima para su implementación, gestión y explotación desde diferentes futuras aplicaciones. El objetivo de la normalización es eliminar las anomalías detectadas en un esquema relacional de una Base de Datos cuando éste presenta una estructura no satisfactoria. Los principales problemas que se pueden presentar en un esquema relacional son:

- Existencia de Réplicas: Cierta información puede aparecer duplicada innecesariamente, con el consiguiente desaprovechamiento del espacio de almacenamiento. - Anomalías de actualización: Como consecuencia de la existencia de información redundante, una operación de actualización puede llevar a un estado inconsistente de la Base de Datos. - Anomalías de Inserción: Puede resultar imposible añadir nueva información en la BD. - Anomalía de Borrado: eliminar información puede desencadenar la pérdida no deseada de otro tipo de información. El proceso de normalización parte de un esquema relacional que contiene todos los atributos ( y probablemente anomalías ) y de forma interactiva se va descomponiendo en dos o más relaciones que se encuentran en una forma normal superior. Se dice que una relación está en una forma normal cuando satisface el conjunto de restricciones impuestas para dicha forma. Las ventajas que se obtiene tras la normalización de datos para una gestión eficaz son: - Facilidad de uso: Los datos se encuentran agrupados en tablas que identifican claramente un objeto o una relación. - Facilidad de gestión: Los lenguajes manipulan la información de forma sencilla mediante operaciones de álgebra y cálculo relacional aplicadas sobre las tablas. - Integridad: Las interrelaciones establecidas entre elementos de diferentes tablas permiten asegurar la integridad de la información almacenada. - Mínima redundancia: La información no aparece duplicada innecesariamente dentro de las diferentes estructuras constituyentes de la Base de Datos. - Máximo rendimiento de las aplicaciones: Cada aplicación únicamente ve aquella parte de la información que le sirve de utilidad. REQUISITOS PARA DESCOMPONER UNA RELACIÓN La descomposición de un esquema relacional R(A,F), donde A es el conjuntos de atributos que lo constituyen y F el conjunto de dependencias funcionales definidas sobre dichos atributos, es la sustitución de dicho esquema por una colección p ={R1,R2,...,Rn } subconjunto de R, de forma que se verifica: R= R1 R2 R3... Rn

Para que una relación r(r) se pueda descomponer en un conjunto de p relaciones se deben cumplir una serie de requisitos: 1) Preservar el contenido de la relación Toda información que aparezca en R, debe aparecer en p. Esta propiedad puede obtenerse imponiendo las siguientes condiciones: - La unión de todos los atributos de las p relaciones da el conjunto de atributos de la relación R. R(A,F) ==> p= { R1 (A,F ), R2 (A,F ),...,R3 (A,F ),} A = A1 A2... An - En cada relación Rn, p debe ser una proyección de R de tal forma que R pueda crearse uniendo todos los Rn. 2) Preservar el conjunto de dependencias Las dependencias funcionales F son propiedades inherentes al esquema relacional R(A,F). Imponer que éstas se mantengan, equivale a desear que todas las dependencias funcionales que se verifican en R, se cumplan también en p. Estas restricciones se pueden englobar diciendo que, al hacer la descomposición no se debe perder ningún atributo ni ninguna dependencia. 3) Carácter normal de las relaciones La tercera propiedad que se desea cumplir es que cuando se construye un esquema relacional éste debe estar en Forma Normal. Las formas normales son un conjunto de propiedades deseables para los esquemas relacionales. Al proceso de descomposición de una relación tipo R en esquemas p={r} que estén en forma normal se lo denomina Normalización. Inicialmente (1970) Codd definió la primera, segunda y tercera forma normal (INF, IINF, IIINF respectivamente). Posteriormente Boyce y Codd (1974) definieron una versión mejorada de la tercera forma normal, comúnmente conocida como BCNF ( Boyce-Codd Normal Form), ésta fue depurada con la definición de la cuarta, IVNF, (Fagin 1977) y quinta, VNF, (Fagin 1979).

El proceso de descomposición de una relación en otras no estriba únicamente en una normalización, sino además se debe preservar en todo momento el contenido de la base de datos y sus dependencias funcionales. En ocasiones la optimización del esquema conceptual para determinar la forma de almacenamiento de los datos puede dar lugar a una des-normalización. PRIMERA FORMA NORMAL: INF Una relación está es INF si no contiene atributos compuestos, ni multivaluados, ni relaciones anidadas. Es decir, una relación está en INF si y solo sí los valores que componen cada uno de los atributos de una tupla son atómicos. Si una relación no cumple estas restricciones se deberá normalizar ya que plantea los siguientes problemas: - Falta un espacio en el campo para los valores que se desean almacenar o desaprovechamiento de espacio cuando existen pocos valores. Esto sucede debido a que para cada unos de los atributos no atómicos se reserva el espacio necesario para almacenar el máximo número de valores que se estima que puede tomar un atributo - Dificultad de tratamiento para operaciones de inserción, actualización y borrado. a) Eliminación de atributos multivaluados: Para eliminar un atributo multivaluado pueden adoptarse dos criterios: - El atributo multivaluado pasa a ser monovaluado y forma parte de la clave. Esta postura no es aceptada ya que aunque se elimine el atributo multivaluado, sigue existiendo redundancia. - Se crea una relación auxiliar formada por la clave de la entidad y el atributo multivaluado, Esta es la postura acertada ya que se consigue eliminar información redundante. Ejemplo: En la siguiente relación se encuentra diferentes tipos de materiales existentes en una ferretería. Cada material tiene un código que lo identifica, distintas dimensiones y una pequeña descripción.

Esta relación no se encuentra en INF ya que el atributo Dimensiones tiene varios valores en una misma tupla. Para pasar a primera forma normal se realizan los siguientes pasos: 1º Se localizan los atributos que construyen la Clave primaria de la relación, Cod_Mat. 2º Se descompone la relación realizando una proyección: a) Se crea una relación con la clave y los atributos monovaluados y simples. Dicha relación permanece con el nombre que identifica a la relación a normalizar. b) Se crea una nueva relación por cada uno de los atributos múltiples, estando formada por la clave de la relación y dicho atributo. La clave de esta nueva relación proyectada estará formada por ambos atributos:

b) Eliminación de relaciones anidadas: se crea una relación auxiliar formada por la clave de la entidad dueña y la relación anidada. Ejemplo: Considérese que para cada libro de una Biblioteca se almacena la siguiente información: Código del Libro Título del libro. Lista de autores. Editorial. Lista de palabras clave. Cód 1 2 Puede observarse que, si se define una relación para la información anterior, varios de los dominios serán no atómicos. Autores. Un libro puede tener varios autores. No obstante, puede que se desee hallar todos los documentos entre cuyos autores estuviera Santos. Por tanto, hay interés en una parte del elemento del dominio «conjunto de autores». (Elemento indivisible) Palabras clave. Si se guarda un conjunto de palabras clave de cada documento se espera poder recuperar todos los documentos cuyas claves incluyan una o varias de las palabras clave especificadas. Por tanto, se considera que el dominio de la lista de palabras clave no es atómico. (Elemento Multivaluado, ya que incluye un dominio de tipo conjunto ) Editorial. A diferencia de palabras clave y autores, editorial no tiene un dominio de tipo conjunto. Sin embargo, se puede considerar que editorial consiste en los subcampos nombre y sucursal. Esta

manera de considerarlo hace que el dominio de editorial no sea atómico. (Elemento Multivaluado, incluye una relación anidada) Para solucionar este inconveniente se procede de la siguiente manera: 1) Se crea una relación con la clave primaria (Cod) y los atributos que son parte de la relación anidada. ( nombre de la editorial y sucursal) Cód Nombre Editorial Sucursal 1 Mc Graw Hill Nueva York 2 Oxford Londres SEGUNDA FORMA NORMAL: IINF La segunda forma normal se encuentra basada en el concepto de dependencia funcional total. Dependencia funcional total: Una dependencia funcional X Y es una dependencia funcional total si al eliminar un subconjunto de atributos A de X, deja de cumplirse la dependencia funcional: X Y: A X / X - {A} no determina Y Dependencia funcional parcial: Una dependencia funcional X Y es una dependencia funcional parcial si existe un subconjunto de X que determina a Y. X Y : A X / X {A} Y Una relación está en segunda forma normal si y solo sí está en INF y todo atributo que no pertenece a la clave primaria tiene una dependencia funcional total con respecto de la clave. Esta forma normal únicamente se considera si la clave primaria está compuesta por dos o más atributos, Si la relación está en INF y la clave primaria está formada por un único atributo se puede asegurar que la relación se encuentra en IINF. Algoritmos de transformación de INF IINF Para pasar de primera forma normal a segunda forma normal se deberán eliminar todas aquellas dependencias funcionales parciales con respecto de la clave. Para ello se efectúan las siguientes proyecciones:

1º Se crea una relación formada por la clave primaria más todos los atributos que dependen totalmente de ella. 2º Se crea una nueva relación auxiliar formada por los atributos determinantes de la clave primaria más aquellos atributos que dependen funcionalmente de ellos. La clave de la relación estará formada por el conjunto de atributos determinantes. Sea C el conjunto de atributos clave de la relación R = {A1,A2,,An}, si se verifica que: S / S C Y R/Y C S Y ==> existe una dependencia funcional parcial de Y con respecto de la clave, para normalizar se forma una nueva relación R = S Y. Ejemplo: Dada la relación EMPL_PROY donde se tiene información sobre los empleados de una empresa. Cada una de las tuplas de la relación contienen el nombre (Nomb_E) y número de seguridad social (NSS) de un empleado, número (Num_P) y nombre (Nomb_P) de un proyecto en el que trabaja, así como el número de horas (Horas) que dicho empleado dedica cada semana al proyecto. Como se puede observar, existen subconjunto de la clave que determinan funcionalmente a otros atributos de la relación: { NSS, Num_P } Horas Num_P { Nomb_P, Ciudad_P} NSS Nomb_E Por tanto se puede decir que { Nomb_P,situ_P} y {Nomb_E} son conjuntos de atributos que presentan una dependencia funcional parcial con respecto de la clave, para que la relación aparezca en segunda forma normal, se deben eliminar estas dependencias parciales creando, por cada dependencia parcial, una nueva relación auxiliar formada por el atributo determinante y el conjunto de atributos que dependen funcionalmente de él: Transformacion de INF a IINF

TERCERA FORMA NORMAL : IIINF La tercera forma normal está basada en el concepto de dependencia transitiva. - Dependencia transitiva Sea una dependencia funcional X Y en una relación R= {A1,A2,,An}, se dice que es una dependencia transitiva si existe un conjunto de atributos Z de la relación R no pertenecientes a la clave de forma que se verifica : X Z, Z Y y además si Z no determina a X e Y no determina a X. Una relación está en tercera forma normal si y solo sí está en IINF y no existen atributos no primarios transitivamente dependientes de cada posible clave de la relación. Esto significa que un atributo no primario únicamente debe conocerse a través de la clave primaria o de una clave candidata de la relación, pero nunca por medio de otro atributo no primario.

Algoritmos de transformación de IINF IIINF El algoritmo de descomposición en IIINF consiste: 1º Sea una dependencia funcional X Y, definida en R(A,F), donde X e Y son disjuntos y no son clave ni forma parte de ninguna clave candidata de R. 2 º Se obtienen las proyecciones: R1 = Proy ( X,Y ) R2 = Proy ( A Y ) Siendo A el conjunto de atributos que constituyen la relación R. Por tanto, para normalizar una relación que está en IINF y en la que existen atributos transitivamente dependientes de la clave: - Se crea una nueva relación R2 con la clave y aquellos atributos dependientes de la clave pero que no son transitivamente dependientes de ella ni de ninguna clave candidata. - Otra relación R1 con los atributos transitivos y los atributos que los determinan. Ejemplo: En la relación EMPLEADOS se observa una dependencia transitiva, con respecto de la clave, del conjunto de atributos formado por { Nom_D) NSS_Jef }. Para que la relación pase a IIINF se debe normalizar, descomponiéndola para ello en dos relaciones, una formada por el atributo determinante Num_D y aquello que dependen funcionalmente de él { Nomb_D, NSS_Jef }, y otra formada por la clave y aquellos tributos que no dependen de forma transitiva de ella. TRANSFORMACION DE IINF A IIINF

FORMA NORMAL DE BOYCE-CODD: BCNF Una relación está en BCNF si y sólo si está en III FN y todo determinante es clave candidata Es decir, todo conjunto de atributos no contenidos en la clave que determinan a algún atributo, debe determinar a todos los demás. La definición de BCNF engloba la IIINF ya que las dependencias transitivas existen a través de atributos secundarios que no son clave. Esta definición se creó para evitar los casos anómalos que no se solventaban con la IIINF y que aparecen cuando a partir de un atributo no primario se conoce parte de la clave primaria o de una clave candidata. Si las claves están formadas por un solo atributo y la relación se encuentra en IIINF se puede asegurar que también está en BCNF. Algoritmo de paso de IIINF BCNF Si una relación está en III forma normal y se detecta algún atributo determinante (atributo del cual depende funcionalmente otro atributo) que no es clave candidata, se debe normalizar la relación descomponiéndola en: 1- Una relación formada por el atributo determinante y aquellos que dependen funcionalmente de él. 2- Otra formada por la clave y el resto de los atributos incluidos los determinantes. Por tanto el algoritmo de descomposición que se aplica a una relación que no está en BCNF es el siguiente: 1- Sea la dependencia funcional X Y, definida en R(A,F), donde X e Y son disjuntos, X es un atributo no primario e Y forma parte de la clave primaria o de una clave candidata. 2- Se realizan las siguientes proyecciones: R1= Proy ( X,Y ) R2= Proy ( A Y ) Ejemplo: Se dispone de una relación con la información referente a un proveedor, del cual se conoce un código que lo identifica (Cod_Pro), tipo del material que suministra (Cod_Mate), nombre del almacén al que provee (Almacen) y Ciudad en la que se encuentra dicho almacén.

PROVEEDOR Cod_Pro, Cod_Mate, Almacen, Ciudad En esta relación se encuentra definidas las siguientes dependencias funcionales: { Ciudad, Cod_Mate } { Cod_Pro, Almacen } { Almacen } { Ciudad } { Cod_Pro } { Cod_Mate, Almacen } Calculando la clausura de cada uno de los conjuntos de atributos determinantes se puede observar que tanto { Cod_Pro } como { Ciudad, Cod_Mate } son claves candidatas. Por tanto se puede asegurar que la relación se encuentra en IIINF ya que en la relación Almacen Ciudad, el atributo (Almacen) forma parte de una clave candidata(cod_pro). Sin embargo, como Almacen (atributo determinante de Ciudad ) no forma parte de ninguna clave la relación no se encuentra en BCNF y es preciso normalizar. TRANSFORMACION DE IIINF A BCNF Comprobación Una forma sencilla de comprobar si una relación se encuentra en FNBC consiste en comprobar, además de que esté en 3FN, lo siguiente: (1) Si no existen claves candidatas compuestas (con varios atributos), está en FNBC. (2) Si existen varias claves candidatas compuestas y éstas tienen un elemento común, no está en FNBC.