Tema 5 Diseño de Bases de Datos Universidad de Murcia

Slides:



Advertisements
Presentaciones similares
IBD Clase 13.
Advertisements

Seminario: Expresividad semántica y lógica de segundo orden
MATEMATICAS DISCRETAS
Normalizaciones de Bases de Datos
IBD Plan 90 y 2003 Clase 12. UNLP - Facultad de InformáticaIBD - CLASE 12 2 Modelado de datos Como mejorar la calidad del Esquema Conceptual ? Validación:
Rocío Contreras Águila Primer Semestre 2010
Introducción a LAS Bases de Datos
Una dependencia funcional es una relación entre atributos de una misma relación (tabla). Si X e Y son atributos de la relación R, se dice que Y es funcionalmente.
Teórico: Normalización
Teórico: Dependencias Funcionales
MODELO RELACIONAL.
INTELIGENCIA ARTIFICIAL
COLEGIO NACIONAL DE EDUCACIÓN PROFESIONAL TÉCNICA
Teoría de Bases de Datos
Dependencias Funcionales
NORMALIZACIÓN DE DATOS
MODELO RELACIONAL.
COMPUTACIÓN IV Alcalá Gaytán Erick Daniel Banda Salas Luis Rolando
Universidad Interamericana de P.R. Departamento Informática Curso 3850 Dr. Rafael Nieves.
NORMALIZACIÓN DE DATOS
Vectores en el plano. Producto escalar.
Answering Queries Using Views (Levy, Mendelzon, Sagiv, Srivastava) Javier López C.
Normalización Preparó: Ismael Castañeda Fuentes
Teoría de Conjuntos Prof. Carlos Coronel R..
Teoria de grafos.-clase 4
BASE DE DATOS I Clase # 1.
Métrica v2.1 Técnicas: Teoría de la Normalización.
Lenguajes Formales de Consulta
Diseño de Bases de Datos

EXIGENCIAS COMPUTACIONALES DEL PROCESAMIENTO DIGITAL DE LA INFORMACION
Métrica v2.1 : Técnica - Diagrama de Flujo de Datos (DFD)
NORMALIZACION La teoría de la normalización, cuyas tres primeras formas normales fueron introducidas por Codd desde sus primeros trabajos, elimina dependencias.
John Freddy Duitama Muñoz. Facultad de Ingeniería. U. de. A.
Métrica v2.1 Técnicas: Modelado de datos (Parte 2)
MODELADO DE DATOS (PARTE 2) Viviana Poblete L. Modelo de Datos I.
NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:
NORMALIZACION DE BASES DE DATOS
Normalización en una base de datos
SEGUNDA FORMA NORMAL Cod Alumno Universidad Nombre Apellido Años 10
Chapter 13 Normalization Transparencies © Pearson Education Limited 1995, 2005.
Diseño de una Base de Datos
RESTRICCIONES Ing. Carolina Moreno Departamento de Sistemas Facultad de Electrónica y Telecomunicaciones Universidad del Cauca.
Diseño de bases relacionales
Curso de Teoría del Autómata
DISEÑO DE BASES DE DATOS
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Restricciones de Integridad
CALCULO DIFERENCIAL E INTEGRAL TAREA 12
Métrica v2.1 Técnicas: Modelado de datos (Parte 1)
Normalización Base de Datos I.
Normalización Base de Datos I.
Para pasar a tablas todos los datos sin dejar nada y que las tablas tengan sentido por si solas se tiene que seguir unos pasos: 1.Toda entidad se transforma.
MODELOS DE DATOS RELACIONAL
Sistemas Basados en Reglas
Normalización de una BASE DE DATOS
LIC. JOSEPH RUITON RICRA
Base de Datos.
Normalización Prof. Gloria Toro Oñate
Matemáticas II. Profesor: Ing. Yadhira M. Rangel Carrillo.
Bases de Datos Modelo Relacional.
22/09/2015Curso Bases de Datos1 Normalización Francisco Moreno.
Un requerimiento es una condición o capacidad a la que el sistema (siendo construido) debe conformar [ Rational ]. Un requerimiento de software puede.
6. Sistemas de ecuaciones diferenciales lineales
UNSa Sede Regional Oran TEU - TUP. Un espacio vectorial (o espacio lineal) es el objeto básico de estudio del álgebra lineal.álgebra lineal A los elementos.
DISEÑO DE BASES DE DATOS (modelos para el diseño)
BASES DE DATOS CONCEPTOS BASICOS Elizabeth Maite Zarate Machaca “El tratamiento eficiente de la información al servicio del usuario”
Bases de Datos I UNIVERSIDAD DEL VALLE. Contenido 5. Diseño de Sistemas de Bases de Datos  Diseño relacional  Formas normales  Proceso de creación.
Base de Datos I – Ing. Mary Carlota Bernal J. BASE DE DATOS I Normalización.
Normalización es un proceso que clasifica relaciones, objetos, formas de relación y demás elementos en grupos, en base a las características que cada.
Transcripción de la presentación:

Tema 5 Diseño de Bases de Datos Universidad de Murcia Facultad de Informática Diseño de Bases de Datos Tema 5

Diseño Relacional El diseño de una BD Relacional puede abordarse de dos formas distintas: Obteniendo el esquema relacional directamente: Objetos y reglas captadas del análisis del mundo real, representadas por un conjunto de esquemas de relación, sus atributos y restricciones de integridad. Realizando el diseño del esquema "conceptual" de la BD (modelo E/R) y transformándolo a esquema relacional. DBD. Diseño Relacional y Normalización

Ejemplo de diseño inadecuado Redundancia de información: ciudad, distancia (ciudad); precio (artículo). Anomalías de modificación: !podemos tener el mismo artículo con dos precios! (igual argumento para ciudad y distancia).  inconsistencias Anomalías de inserción: ¿Podemos registrar nuevo artículo?, ¿Nuevo cliente?, ¿Nueva ciudad, distancia? Anomalías de borrado: Si eliminamos tupla de pedido de artículo A3 o cliente C4  pérdida de información. DBD. Diseño Relacional y Normalización

Ejemplo de diseño inadecuado Redundancia de información: datos repetidos desperdicio de espacio, actualización complicada mal diseño: anomalías, redundancia e inconsistencias de la información imposibilidad para representar cierta información pérdida de información normalización conversión de una relación con ciertos problemas a dos o más relaciones que no tienen tales problemas DBD. Diseño Relacional y Normalización

Principio básico de diseño: "hechos distintos se deben almacenar en objetos distintos" DBD. Diseño Relacional y Normalización

Teoría de Normalización Técnica formal de análisis y organización de datos; trata de evitar la redundancia y anomalías de actualización. Introduce formalización en el diseño lógico de BDR. Además permite mecanizar parte del proceso al disponer de instrumentos algorítmicos de ayuda al diseño. Proceso de normalización: disminuye las anomalías de actualización, pero penaliza las consultas (combinación consume muchos recursos). DBD. Diseño Relacional y Normalización

Formas normales un esquema de relación está en una determinada forma normal si satisface un determinado conjunto específico de restricciones definidas sobre los atributos del esquema (dependencias). 1ª FN (Codd, 1970) Concepto de relación normalizada. 2ª, 3ª FN (Codd, 1970), FNBC (Boyce/Codd, 1974) Basadas en análisis de dependencias funcionales. 4ª FN. Fagin, 1977 Basada en análisis de dependencias multivaluadas. 5ª FN. Fagin, 1979 Basada en análisis de dependencias de proyección / combinación. DBD. Diseño Relacional y Normalización

Formas normales Relaciones en 2ªFN Relaciones en 3ªFN Relaciones en FNBC Relaciones en 4ªFN Relaciones en 5ªFN Relaciones normalizadas Relaciones DBD. Diseño Relacional y Normalización

Dependencias restricciones de integridad impuestas por el usuario. propiedades inherentes al contenido semántico de los datos. se han de cumplir para cualquier extensión del esquema de una relación. No se pueden demostrar, pero sí afirmar por observación del minimundo a representar. Del análisis de la extensión de un esquema relacional sólo podremos deducir que no existe una determinada dependencia. Si una dependencia es cierta para un determinado esquema de relación, una extensión no será válida si no la cumple. DBD. Diseño Relacional y Normalización

Dependencia funcional Sean A y B atributos de una misma tabla o relación R. Se dice que B es funcionalmente dependiente de A y se denota A B si todo posible valor de A tiene asociado un único valor de B,  o lo que es lo mismo, en todas las tuplas de r(R) en las que el atributo A toma el mismo valor “v1”, el atributo B toma también un mismo valor “v2”.    DBD. Diseño Relacional y Normalización

Dependencia funcional definición Sean X e Y subconjuntos de A (A, conjunto de atributos de R).   Decimos que X determina o implica a Y en R (= Y depende funcionalmente de X) si para dos tuplas cualesquiera de r(R) que tengan iguales valores en X, también son iguales los valores en Y. Se representa por X  Y Def: Sean R(A:D), X  A, Y  A. X  Y si  r(R),  ti,tj  r(R), [x (ti)=x(tj)  y(ti) = y(tj)] ( t1, t2  r (t1[X] = t2[X]  t1[Y] = t2[Y] ) DBD. Diseño Relacional y Normalización

Diagrama de dependencias funcionales Ejemplo: R ( A, DF ). R: pedidos A: {artículo, cliente, cantidad, precio, ciudad, distancia}. DF: ({artículo,cliente}  {cantidad,precio,ciudad, distancia}, artículo  precio, cliente  {ciudad, distancia}, ciudad  distancia ) Diagrama de Dependencias Funcionales DBD. Diseño Relacional y Normalización

Dependencia funcional plena o completa Sea X (conjunto de atributos). Se dice que Y tiene dependencia funcional plena o completa de X, si depende funcionalmente de X pero no depende de ningún subconjunto del mismo X Y sii  X'  X | X'  Y (X determina completamente "" a Y si y solo si no existe un subconjunto X' de X tal que ese subconjunto X' determine funcionalmente a Y) P.e. (artículo, cliente)  cantidad es una DF completa, pero (artículo, cliente)  precio no es una DF completa puesto que artículo  precio; DBD. Diseño Relacional y Normalización

Dependencia funcional transitiva Si XY, Y-/X, YZ entonces Z depende transitivamente de X ( X--Z ). P.e. Cliente  ciudad, ciudad -/ cliente (no determina funcionalmente), y cliente  distancia,  por tanto, ciudad --- distancia (cliente determina “transitivamente” a distancia). DBD. Diseño Relacional y Normalización

Normalización de un esquema de BD Relac. DBD. Diseño Relacional y Normalización

Segunda Forma Normal (2ªFN). Un esquema de relación R(A,DF) está en 2ªFN si y sólo si está en 1ªFN (es decir, si la relación está normalizada) y sus atributos no primarios dependen completamente de la clave primaria de R. (atributos no primarios: que no formen parte de la clave primaria). Si una relación R no está en 2ª FN, se puede normalizar descomponiendo esa relación en: Una relación con los atributos de clave primaria, más los atributos con dependencia completa de ella. Una relación para cada "parte" de la clave primaria, más los atributos que dependan funcionalmente de esa parte. DBD. Diseño Relacional y Normalización

Descomposición a 2ª FN (informal) Ejemplo: PEDIDOS se descompone en: PEDIDOS'({artículo,cliente, cantidad}, {[artículo,cliente]  cantidad}) ARTICULOS ({artículo, precio}, {artículo  precio} ) CLIENTES({cliente,ciudad,distancia}, {clienteciudad,ciudaddistancia}) DBD. Diseño Relacional y Normalización

Tercera Forma Normal (3ªFN) Un esquema de relación R(A,DF) está en FN3 si y sólo si está en FN2 y ninguno de sus atributos no primarios depende transitivamente de la clave primaria de R.  Es decir no hay DF transitivas. Descomposición informal: Si una relación no está en 3ª FN, y tenemos los conjuntos de atributos X,Y,Z tales que XY, YZ (por tanto X --- Z ): Una relación formada por la clave primaria (X) más los atributos que dependen directamente de ella. Una relación para los atributos de Y y Z. DBD. Diseño Relacional y Normalización

Descomposición a 3ª FN (informal) Ejemplo: CLIENTES la descomponemos en: CLIENTES' ({cliente, ciudad}, {cliente  ciudad}) CIUDADES ({ciudad, distancia}, {ciudad distancia}) DBD. Diseño Relacional y Normalización

Implicación lógica de DFs. Dado un esquema relacional R, una dependencia funcional df de R está implicada lógicamente por un conjunto de dependencias DF de R si cada ejemplar de la relación r(R) que satisface DF también satisface df. R({ABCGHI}, {AB, AC, CGH, CGI, BH} ¿ AH ? Si t1[A]=t2[A], AB  t1[B]=t2[B], BH  t1[H]=t2[H]  AH Cierre (clausura) de DF: Dado un conjunto de dependencias funcionales DF, llamaremos cierre de DF, y lo representaremos por DF+, al conjunto de todas las dependencias funcionales posibles que implicadas lógicamente en DF. DBD. Diseño Relacional y Normalización

Reglas de inferencia de DFs Dado un conjunto DF de dependencias funcionales, podemos probar que se cumplen otras ciertas dependencias funcionales inferidas de DF. "Axiomas" de Armstrong: Sea R (A:D); X ,Y, Z, W subconjuntos de A. Se verifica: 1) Reflexividad. Si X, conjunto de atributos, Y  X, entonces se verifica que X  Y. 2) Aumentatividad. Si X  Y, Z conjunto de atributos, entonces se verifica que XZ  YZ. (XY es lo mismo que X  Y, unión) 3) Transitividad. Si X  Y e Y  Z, entonces se verifica que X  Z. Estas reglas forman un sistema completo de reglas de inferencia, porque dado DF permiten calcular DF+ Son correctas (seguras) puesto que no generan dependencias funcionales incorrectas. DBD. Diseño Relacional y Normalización

Otras reglas A partir de ellas, se pueden deducir otra serie de propiedades interesantes: 4) Unión. Si XY y X Z, entonces X  YZ. {(XY), (XZ) [aumento] (XX  XY), (XY ZY) [trans] (X YZ)} 5) Pseudotransitividad. Si XY y WYZ, entonces WXZ. { (XY) [aumento] (WXWY) [trans, WYZ] (WXZ)} 6) Descomposición. Si XY y ZY, entonces XZ. { (ZY) [reflex] (YZ) [trans, XY] (XZ) } DBD. Diseño Relacional y Normalización

Ej. axiomas: R({A,B,C,D,E},{A  B, C  D, D  E}) ¿ AC  ABCDE ? 1. A B (dada) 2. AC  ABC (aumento, 1, AC) 3. C  D (dada) 4. D  E (dada) 5. C E (transitividad, 3, 4) 6. C  DE (union, 3, 5) 7. ABC  ABCDE (aumento, 6, ABC) 8. AC  ABCDE (transitividad, 2, 7) DBD. Diseño Relacional y Normalización

Cierre de un descriptor X+ : Conjunto de todos los atributos determinados funcionalmente por un descriptor X en DF. (XX+) Algoritmo de Cierre de un descriptor respecto a un DF: Entrada: R, DF. (suponemos que los atributos de partida son todos los contenidos en DF y R es un subconjunto de ellos) Salida: R+ Proceso: 1) R+ := R 2) Repetir (hasta que no se añadan más atributos a R+): 2.1) Para cada X  Y en DF: Si X  R+ e Y  R+ entonces R+ := R+  Y [Comentarios: 1. R  R ; 2.  X  R+, R+  X (reflexiva); si XY, entonces R+Y (transitiva); por tanto, Y puede ser incluido en R+ (unión) ] DBD. Diseño Relacional y Normalización

Ejemplo cierre de un descriptor R(A,B,C,G,H,I), (AB, AC, CGH, CGI, BH} ¿(AG)+? 1) AG  AG 2) Repetir 2.1) Primer “Para cada” 21a. A  B, B  AG  AG  AGB 21b. A  C, C  AGB  AG  AGBC 21c. CG  H, H  AGBC  AG  AGBCH 21d. CG  I, I  AGBCH  AG  AGBCHI 21e. B  H, H  AGBCHI  nada Segundo… 21a,21b,21c,21d,21e  nada No se añaden más atributos => Fin Repetir DBD. Diseño Relacional y Normalización

Aplicaciones de cierres Dado DF, comprobar si una dependencia funcional XY se halla en DF+ Si X X+, Y  X+  XY  DF+ (descomposición) Comprobar superclaves Definición de Superclave: Dado R(A, DF), se denomina superclave SK de R a un subconjunto no vacío de A tal que SK  A sea derivable de DF; SK ≠  , SK  A  DF+ Comprobaremos si SK+ en DF contiene todos los atributos de R. Definición de clave candidata: Dado R(A, DF), se denomina clave K de R a un subconjunto no vacío de A que sea superclave y no exista ningún subconjunto estricto K' de K tal que K' A ; K ≠   KA DF+    K' K | K‘  A DBD. Diseño Relacional y Normalización

Aplicaciones de cierres Dado R(A,DF), Cálculo de DF+ Para cada Y  A, Se obtiene Y+ en DF Para cada Z  Y+ se genera una dependencia funcional YZ Equivalencia de dos conjuntos de dependencias: Dos conjuntos de dependencias funcionales DF1 y DF2 son equivalentes si, y sólo si, DF1+ = DF2+ (todas las dependencias de DF2 son inferibles de DF1 y viceversa). Si para toda XY  DF2 se cumple Y  X+ en DF1 y recíprocamente, para toda ZWDF1 se cumple WZ+ en DF2, entonces DF1 y DF2 son equivalentes. DBD. Diseño Relacional y Normalización

Recubrimiento minimal Las dependencias funcionales son restricciones de integridad que deben ser comprobadas en caso de actualización. Interesa minimizar este conjunto de restricciones. Un recubrimiento minimal DFm es un conjunto de dependencias equivalente a DF. De entre todos los conjuntos equivalentes interesan aquellos conjuntos de dependencias elementales que cumplen la propiedad de no contener ninguna dependencia redundante (e.d. ninguna dependencia que se pueda deducir del resto aplicando los axiomas de Armstrong), ni atributos extraños. DBD. Diseño Relacional y Normalización

Recubrimiento minimal Dependencia redundante: una dependencia d DF es redundante si se puede derivar de {DF - d} mediante la aplicación de los axiomas de Armstrong. Atributo extraño (raro): Dada X Y  DF, a  X se dice que es un atributo extraño (ajeno) en la dependencia si la dependencia (X-a) Y  DF+. DBD. Diseño Relacional y Normalización

Algoritmo para obtener un Recubrimiento minimal: Entrada: F, Conjunto de dependencias funcionales elementales (plenas, no triviales, único atributo en implicado). Salida: H, recubrimiento minimal de F. Proceso: (X,L: descriptores (conjuntos de atributos); A,B: atributos) 1. Eliminación de atributos extraños: 1.1. Repetir para cada X  B  F : 1.1.1. L := X 1.1.2. Repetir para cada A  X: Si B  (L - A)+F entonces L := L - A 1.1.3. DF := DF - ( X  B ) + ( L  B ) 2. Eliminación de dependencias redundantes: 2.1. H := F 2.2. Repetir para cada X  A  DF: G := H - ( XA) Si A  X+G entonces H := G DBD. Diseño Relacional y Normalización

Técnicas principales para el Diseño Relacional Diseño del esquema conceptual en un modelo de datos de alto nivel (como el ER) y su posterior transformación en un conjunto de relaciones. En esta técnica podemos aplicar informalmente los principios de normalización comentados (evitar dependencias parciales o transitivas), tanto durante la fase de diseño conceptual, como posteriormente al conjunto de relaciones obtenidas mediante el proceso de transformación. DBD. Diseño Relacional y Normalización

Técnicas principales para el Diseño Relacional Considerar el diseño de la BD relacional estrictamente en términos de dependencias (funcionales y de otros tipos que veremos) entre los atributos de la BD. Este proceso es denominado algunas veces como síntesis relacional, puesto que los esquemas de relación son “sintetizados” mediante el adecuado agrupamiento de atributos. Cada esquema de relación representaría a un grupo de atributos lógicamente coherente y poseería las ventajas asociadas con la normalización (no redundancia, no anomalías, ...). Durante el proceso de normalización descompondremos un determinado esquema de relación que no esté en una determinada forma normal en múltiples esquemas de relación hasta un diseño final con relaciones en las que se hubiese alcanzado la forma normal deseada. Caso extremo (descomposición estricta): comenzamos sintetizando un único esquema de relación (relación universal), que incluye todos los atributos de la BD. DBD. Diseño Relacional y Normalización

Objetivos de la normalización. Dado un conjunto A de atributos y el conjunto DF de dependencias existentes entre ellos, R(A, DF), se trata de transformar este esquema origen en un conjunto de n esquemas de relación {Ri (Ai, DFi)}, 1 i  n [esquemas resultantes], equivalentes y mejores que R: a) Conservación de la información. b) Conservación de dependencias. c) Mínima redundancia de los datos (mayor grado de normalización). DBD. Diseño Relacional y Normalización

a. Conservación de la información: a.1. Conservación de atributos: el conjunto de atributos de los esquemas resultantes ha de ser igual al conjunto de atributos del esquema origen. a.2. Conservación del contenido (tuplas): para toda extensión r de R, la reunión natural (natural join, * ) de las relaciones resultantes tiene que producir la relación origen. (nota: * operador de reunión natural,  operador de proyección) i = 1 n Ri r * p ( ) Si la descomposición no cumple esta propiedad, e.d. no es una descomposición y reunión sin pérdidas (de información), cuando se aplica la operación de reunión natural a las relaciones resultantes, aparecen tuplas espúreas en la relación resultado DBD. Diseño Relacional y Normalización

descomposición y reunión con pérdida   * DBD. Diseño Relacional y Normalización

Descomposición y Reunión Sin Pérdida Propiedad RSP1: Sea R un esquema de relación y DF un conjunto de dependencias funcionales de R. R1 y R2 forman una descomposición de R que tiene la propiedad de reunión sin pérdida (lossless join) si por lo menos una de las dependencias funcionales siguientes está en DF+: R1  R2  R1 - R2 R1  R2  R2 - R1 DBD. Diseño Relacional y Normalización

Descomposición y Reunión Sin Pérdida Propiedad RSP2: Si una descomposición D = {R1, R2,..., Rm} de R tiene la propiedad de reunión sin pérdida con respecto al conjunto de dependencias funcionales DF sobre R, y si una descomposición D1 = {Q1, Q2, ..., Qk} de Ri tiene la propiedad de reunión sin pérdida con respecto a la “proyección de DF sobre Ri”, entonces la descomposición D2 = {R1, R2, ..., Ri-1 , Q1,.Q2, ..., Q k , Ri+1 , ..., Rm} de R es una descomposición reunión sin pérdida respecto a DF. “restricción / proyección de DF sobre Ri ” : subconjunto de las dependencias funcionales X  Y en DF+ tales que los atributos en X U Y están todos contenidos en Ri ) DBD. Diseño Relacional y Normalización

b. Conservación de dependencias. Sea DF un conjunto de dependencias funcionales sobre R y sea D = {R1, R2, ..., Rn} una descomposición de R. La restricción (proyección) de DF sobre Ri es el conjunto DFi de todas las dependencias de DF+ que incluyen únicamente atributos de Ri. Sea DF' = DF1  DF2 ...  DFn un conjunto de dependencias funcionales en R. La descomposición D de R conservará las dependencias si DF'+ = DF+ (equivalentes) DBD. Diseño Relacional y Normalización

Forma Normal de Boyce y Codd (FNBC). Un esquema de relación R(A,DF) está en FNBC si  X  Y  DF+ no trivial (Y  X), se verifica que X es superclave de R. (X+ = A) Un diseño de BD está en FNBC si cada esquema de relación de la BD está en FNBC. DBD. Diseño Relacional y Normalización

Algoritmo de descomposición: a. Tomaremos una X  Y  DF+ no trivial y X no superclave. Siempre será posible puesto que R no está en FNBC, e.d. existe al menos una dependencia funcional X  Y, tal que X no superclave. Si X, Y no disjuntos, tomaríamos X  (Y-X) (por axiomas de Armstrong). b. Obtendremos dos proyecciones S(XY, DFs) y T((A-Y), DFt). (DFs, DFt restricciones de DF sobre S y T). Como X  Y  DF+ y sus atributos son los de S, también es aplicable a S; por aumento XXY, es decir X superclave (no viola condición para que S esté en FNBC). c. Si S o T no están en FNBC, las descomponemos. Llegará un momento en que, o bien no hay dependencias cuyo antecedente no sea superclave (es decir, tablas en FNBC), o se llega a una relación binaria indescomponible la cual estará en FNBC (puesto que si V(A1,A2) no en FNBC, quiere decir que hay una dependencia A1A2, no trivial con antecedente no superclave: imposible, pues por Ax.A A1A1A2). DBD. Diseño Relacional y Normalización

Algoritmo FNBC: resultado := {R}; listo := falso; (Calcular DF+;) Mientras (no listo) hacer: Si ( Ri  resultado | Ri no en FNBC ) Sea (XY en Ri, no trivial | X  Ri DF+ y XY=  ) resultado:=(resultado - Ri)  ( Ri - Y)  ( XY ); si no listo:=verdadero; Por el procedimiento seguido, la descomposición es de reunión sin pérdida (reversible por reunión natural, propiedades RSP1 y RSP2). No puede asegurarse en general que se hayan preservado las dependencias. DBD. Diseño Relacional y Normalización

Tercera Forma Normal (FN3). Definiciones generales, atributo primo: atributo que forma parte de una clave candidata. Un esquema de relación R está en FN2 si está en FN1 y todo atributo no primo A de R depende funcionalmente de manera completa de toda clave candidata de R. Un esquema de relación R está en FN3 si está en FN2 y ningún atributo no primo depende transitivamente de alguna clave candidata de R. DBD. Diseño Relacional y Normalización

Tercera Forma Normal (FN3). Redefinición de FN3: Un esquema de relación R(A,DF) está en FN3 si  X  Y  DF+ se verifica alguna de las siguientes condiciones: X  Y trivial. X es superclave de R. X no es superclave y cada atributo A  (Y - X) está contenido en una clave candidata de R. Un diseño de BD está en FN3 si cada esquema de relación de la BD está en FN3.  FNBC DBD. Diseño Relacional y Normalización

Ejemplo: FN3 y FNBC E P C imparte (estudiante, curso, profesor) DF: (1) estudiante, curso  profesor; (2) profesor  curso K: { (estudiante, curso), (estudiante, profesor)} No en FNBC pues antecedentes de (2) no es superclave, pero si en FN3 pues los consecuentes son atributos primos. Descomposición a FNBC por profesorcurso: E P C DBD. Diseño Relacional y Normalización

Algoritmo de síntesis (descomposición de R a FN3): a. Reemplazar X A1A2 ... An por X  A1, X  A2, ... X An en DF b. Calcular DFm recubrimiento mínimo de DF; c. Creamos un esquema de relación { X  A1 ...  An} para cada conjunto de dependencias en DFm con el mismo antecedente X. X  A1, X  A2, ... X An son todas las dependencias en Dfm con X como antecedente. X será la clave de esta relación. d. Si quedan atributos de R sin colocar en ningún esquema de relación: creamos un nuevo esquema de relación con todos ellos. e. Si ningún esquema de relación contiene una clave de R Creamos un esquema de relación para los atributos de cualquier clave de R Cada Ri en FN3 pues se parte de DFm (eliminando parciales y transitivas). Asegura la conservación de dependencias construye una relación por cada una. Garantiza que la descomposición es de reunión sin pérdida pues al menos un esquema contiene una clave candidata de la relación que se descompone. DBD. Diseño Relacional y Normalización

Otras dependencias dependencias funcionales: el tipo de dependencia más importante en la teoría de diseño de bases de datos relacionales. Sin embargo, en muchos casos las relaciones tienen restricciones que no pueden ser expresadas mediante dependencias funcionales. En los siguientes puntos, trataremos estos tipos adicionales de dependencias que pueden ser usados para representar otros tipos de restricciones sobre relaciones. Estas dependencias nos conducirán a formas normales más avanzadas DBD. Diseño Relacional y Normalización

Dependencias multivaluadas son una consecuencia de la 1ª forma normal, la cual no permite que un atributo en una tupla tome un conjunto de valores. Si tenemos dos o más atributos multivaluados independientes (no directamente relacionados) en un mismo esquema de relación, tendremos que repetir cada valor de un atributo con cada valor de los otros atributos para conservar la instancia de la relación consistente. DBD. Diseño Relacional y Normalización

Dependencias multivaluadas Definición: Dada la relación R(A), se cumple que X ↠ Y (X multidetermina a Y, X e Y descriptores, subconjuntos de A) si para cada valor de X hay un conjunto de cero o más valores de Y, independientemente de los valores de los atributos (A-XY). Dado R(A), X ↠ Y en R si y sólo si  u, v  r(R) tales que u[X]=v[X] , u[Y]  v[Y] , u[A-X-Y]  v[A-X-Y]  t, w  r(R) tales que u[X] = v[X] = t[X] = w[X]  u[Y] = t[Y]  v[Y] = w[Y]  u[A-XY] = w[A-XY]  v[A-XY] = t[A-XY] Por simetría, X ↠ (A-XY), e.d. X ↠ Y | Z (Z= A-XY). DBD. Diseño Relacional y Normalización

Dependencias Multivaluadas Triviales si X = Y, Y  X, X  Y = A Para cada valor de X, existe un conjunto de 0 o más valores de Y, independientemente de los valores del resto de atributos (A-XY) Que se verifique X → Y sólo depende de X y de Y, pero que se cumpla X ↠ Y depende, además, del resto de los atributos (las dmv dependen del contexto) X ↠ Y significa que siempre que aparezcan dos tuplas con distintos valores de Y, pero el mismo valor en X, los valores de Y deberán repetirse con cada valor distinto de A-XY que ocurra con dicho valor de X Dependencias Multivaluadas Triviales si X = Y, Y  X, X  Y = A DBD. Diseño Relacional y Normalización

Reglas de Inferencia R1. Reflexiva DF’s : Si Y  X ent. X → Y R2. Aumento DF’s : X → Y |= XZ → YZ R3. Transitiva DF’s : X → Y, Y → Z |= X → Z R4. Complemento DMV’s : X ↠ Y |= X ↠(A - (X  Y)) R5. Aumento DMV’s : X ↠ Y, W  Z |= WX ↠ YZ R6. Transitiva DMV’s : X ↠ Y, Y ↠ Z |= X ↠ (Z - Y) R7. Replicación DF’s y DMV’s : X → Y |= X ↠ Y R8. Coalescencia DF’s y DMV’s : Si X ↠ Y y  W tal que WY= y WZ e Y  Z entonces X → Z (R7 : DF caso especial de DMV, pues satisface la definición formal de DMV. Una DF es una DMV con la restricción adicional de que como máximo 1 valor de Y esté asociado a un valor de X). DBD. Diseño Relacional y Normalización

Cuarta Forma Normal (FN4): R(A, DEP) en FN4 si y sólo si para toda dependencia no trivial X ↠ Y  DEP+, el antecedente X es superclave de R. Descomposición sin pérdida de R en R1, R2 si: (R1  R2) ↠ (R1 - R2) (simetría : (R1R2) ↠ (R2 - R1) [Teorema (Fagin, 77): R(A,B,C) se puede descomponer (reunión sin pérdida) en R1(A,B), R2(A, C) si y sólo si A ↠ B | C en R ] DBD. Diseño Relacional y Normalización

Descomposición a FN4 de una relación R a. Resultado= {R} b. Mientras que  Q en Resultado, Q no en FN4 b1. Encuentre X ↠ Y en Q, no trivial, X no superclave b2. Reemplace Q por (Q - Y) y (X  Y) DBD. Diseño Relacional y Normalización

Dependencias de Combinación Las DF y DMV analizadas, permiten la descomposición sin pérdida de una relación en dos de sus proyecciones. Sin embargo, existen relaciones donde no se puede llevar a cabo una descomposición binaria sin perdida. Aun no existiendo DF ni DMV pueden existir redundancias y anomalías. DBD. Diseño Relacional y Normalización

DBD. Diseño Relacional y Normalización

Dependencia de reunión Sea R(A), X1, X2, ..., Xn, conjuntos de atributos de A. A la condición de que la descomposición de R proyectando sobre X1, X2, ..., Xn sea reversible por reunión la llamaremos Dependencia de reunión: DR (X1, X2, ..., Xn) En un esquema de relación R(A) se cumple la DC (X1, X2, ..., Xn ) si toda extensión r(R) se puede construir combinando proyecciones sobre X1,...,Xn : r =  R1 [r] * ... *  Rn [r] (necesariamente (X1...Xn)=A) La DR será trivial si algún Xi = A. [ DR(X1,X2) puede escribirse también como X ↠Y|Z, donde X=X1 X2, Y=X1-X2, Z=X2-X1. Por tanto, las DMV pueden considerarse como un caso particular de las de reunión cuando n=2.] DBD. Diseño Relacional y Normalización

Sea DC (R1,R2,R3) entonces <a1,b1,c1> R sii <a1,b1>  R1, <b1,c1>  R2, <c1,a1>  R3 Es decir, si <a1,b1,c> R,<a,b1,c1> R,<a1,b,c1>  R entonces también <a1,b1,c1>  R. [Cuando un suministrador S suministra el componente P, el proyecto J usa el componente P y el suministrador S suministra al menos un componente al proyecto J, entonces S también suministrará P a J] Las dos últimas tuplas deben de existir en SPJ para que se cumpla la DR(SP,PJ,JS). DBD. Diseño Relacional y Normalización

Quinta Forma Normal (FN5) Un esquema de relación estará en FN5 con respecto al conjunto de dependencias F (DF, DMV, DC) si en cada dependencia de reunión DR(R1,...,Rn) no trivial en F+, cada Ri es una superclave de R. La dificultad de la FN5 está en la identificación de las dependencias de combinación, las cuales no tienen una interpretación intuitiva. Ejemplo SPJ: La clave de SPJ será (S#,P#,J#). Tenemos la DC (SP, PJ, JS), en donde ningún Ri es una superclave (contiene la clave) de SPJ. Por tanto SPJ no está en FN5. DBD. Diseño Relacional y Normalización