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



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

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

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

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

Principios de Bases de Datos Relacionales, Normalización. Unidad 4

Normalización. Tema 16

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

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 1-Junio Nombre:

Dep. Multivaluadas y Cuarta F.N.

DISEÑO DE BASES DE DATOS RELACIONALES

4.Diseño de Bases de Datos (I)

NORMALIZACIÓN DE BASES DE DATOS

Tema 5: Teoría de diseño de Bases de Datos Relacionales.

Modelo Relacional. Normalización

Normalización. El diseño que hemos recibido está compuesto de estas dos relaciones:

Temario. Índices simples Árboles B Hashing

Tema 5: Diseño de Bases de Datos

RESTRICCIONES DE INTEGRIDAD Y DEPENDENCIAS FUNCIONALES Bases de Datos Universidad de Talca, II Semestre Jorge Pérez R.

BASES DE DATOS TEMA 5. DISEÑO DE BASES DE DATOS RELACIONALES MEDIANTE NORMALIZACION Contenidos generales

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

DISEÑO DE BASES DE DATOS RELACIONALES Normalización Parte 2 FNBC, 3FN

NORMALIZACIÓN DE BASES DE DATOS RELACIONALES

NORMALIZACION. Definición.

Normalización. Bases de Datos

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales

Antes de entrar a definir la forma normal de Boyce-Codd, necesitamos conocer qué se entiende por determinante.

Ing. YIM ISAIAS APESTEGUI FLORENTINO Tema: Normalización

Bases de Datos Relacionales

Práctico 6 Diseño Relacional

Un ejemplo simple de normalización de bases de datos relacionales (hasta 3FN)

Aseveraciones. Disparadores. Ejemplo de aseveración. Ejemplo de disparador. Ejemplo de disparador en SQL:1999

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos.

Sistemas de Bases de Datos I. Modelo Lógico Modelo Relacional

proceso que consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.

Temario. Índices simples Árboles B Hashing

Conceptos generales sobre bases de datos relacionales y MS-Access

Tema 6: Teoría de la Normalización

Normalización 1NF 2NF 3NF BCNF 4NF

Base de Datos. Profesores: Franklin Johnson P. José Miguel Rubio L.

Examen de Ficheros y bases de datos ( ) Convocatoria de febrero I PARCIAL

MATERIAL INSTRUCCIONAL DE APOYO

Eduardo Mora y Marta Zorrilla Pág

Que es normalización? Normalización de una base de datos Grados de normalización: Primera Forma Grados de normalización: Segunda Forma Grados de

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

Unidad 3. NORMALIZACIÓN.

Tema 5: Normalización en Bases da Datos

Sistemas de Información para la Gestión

Esquema Relacional NORMALIZACIÓN

DISEÑO DE BASES DE DATOS RELACIONALES: NORMALIZACION

CERTAMEN 2 90 minutos 20 puntos

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

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

Base de Datos. Profesor: José Miguel Rubio L. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING.

ILUSTRACIÓN DEL PROBLEMA DE LA IDENTIFICABILIDAD EN LOS MODELOS MULTIECUACIONALES

Módulo 9 Sistema matemático y operaciones binarias

TEMA 5.- ESTRUCTURA DE DATOS RELACIONAL.

Diseño de bases de datos Diapositiva 1

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES

March 25, 2010 CAPÍTULO 2: LÍMITES Y CONTINUIDAD DE FUNCIONES EN EL ESPACIO EUCLÍDEO

GUÍAS CLÁSICAS DE BASES DE DATOS

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta

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. Bases. Coordenadas

Base de datos relacional

Tema 6: Diseño de bases de datos relacionales.

Relaciones binarias. ( a, b) = ( c, d) si y solamente si a = c y b = d

Normalización de Bases de Datos Relacionales

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

Normalización de bases de datos

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional

Bases de Datos Multimedia

Segundo Parcial de Fundamentos de Base de Datos


ESTRUCTURAS ALGEBRAICAS 1

APLICACIONES DE LA MATEMATICA INTRODUCCION AL CALCULO AXIOMATICA DE LOS NUMEROS REALES

INSTITUTO VALLADOLID PREPARATORIA página 37

circuitos digitales Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso

Normalización de una Base de Datos. Normalización de la BD (precio fijo)

Números Reales. MathCon c

Operaciones Booleanas y Compuertas Básicas

Divisibilidad y números primos

Modelo Entidad-Relación

FUNDAMENTOS DE BASES DE DATOS. Examen Febrero Solución

Gestión de la Prevención de Riesgos Laborales. 1

Modelo Relacional. Guido Urdaneta (Revisado por E. DeBourg, H. Corzo y A. Romero) 26 de abril de 2004

Aplicaciones lineales continuas

Modelo Relacional: Conceptos

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

a < b y se lee "a es menor que b" (desigualdad estricta) a > b y se lee "a es mayor que b" (desigualdad estricta)

TEORÍA DE LA NORMALIZACIÓN GESTIÓN Y MODELACIÓN DE DATOS

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

ESQUEMA DE BASE DE DATOS ATROPELLOS

VII. Estructuras Algebraicas

Tema 3. Espacios vectoriales

1 v 1 v 2. = u 1v 1 + u 2 v u n v n. v n. y v = u u = u u u2 n.

INSTITUTO VALLADOLID PREPARATORIA página 9

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

El modelo relacional

LINEAMIENTOS DE BASES DE DATOS

Transcripción:

Carlos A. Olarte Bases de Datos I

Outline 1 Introducción 2 Dependencias Funcionales 3 Diseño de Bases de Datos 4 Forma Normal Boyce-Codd (FNBC) 5 3FN 6 Dependneicas Funcionales Multivaluadas 7 4FN

Introducción y Motivación Por qué la normalización? De dónde salen las formas normales?

Dependencias Funcionales Sea r(r) una relación y k R una clave de r entonces: t 1 t 2 t 1 [k] t 2 [k] Sea α R y β R. La Dep. Funcional α β se cumple en R si para todo t 1, t 2 : t 1 [α] = t 2 [α] t 1 [β] = t 2 [β] k es una superclave de r si k R

Ejemplo Dado el esquema: R(Curso, Prof, Grupo, Horario) se cumplen las siguientes D.F: Y no se cumple que: {curso, grupo} profesor {curso, grupo} horario {curso} horario

Dependencias Triviales Son aquellas que satisfacen todas las relaciones. Por ejemplo A A o AB A De forma general: α β es trivial si β α

Conceptos Relación que satisface una dependencia: Es una relación en la cual se cumple la D.F Dependencia que se cumple en un esquema: Es el conjunto de dependencias que están obligadas a cumplir un esquema

Ejemplo En la relación Horario: Aud Curso Fac Car Día Hora A5 CC080 Ing Sys Mar 7 A5 TE100 Ing Elec Mie 7 A5 XY100 Ing Ind Jue 7 Se satisface la dependencia Auditorio Facultad y Facultad hora pero no es deseable que el esquema horario las cumpla.

Continuación Por lo anterior, el diseño de la base de datos debe formularse en términos de las dependencias funcionales que debe cumplir el esquema. Por ejemplo: Curso {Aud, Dia, Hora} Curso Facultad Carrera Facultad

Cierre de un conjunto de D.F Dado un conjunto F de D.F, se puede definir una serie de D.F que son implicaciones lógicas de F. El conjunto F + (conjunto cierre), es el conjunto de todas las D.F implicadas lógicamente de F.

Cálculo de F + Se calcula a partir de las reglas de Armstrong que son correctas y completas: Reflexividad: Si β α α β Aumentatividad: Si α β αγ βγ Transitividad: Si α β β γ α γ De las anteriores reglas se deducen las siguientes: Unión: Si α β α γ α βγ Descomposición: Si α βγ α β α γ Pseudo Transitividad: Si α β γβ ϕ αγ ϕ

Cierre de un conjunto de atributos Se define el CCA α dado un conjunto de D.F F (α + ), al conjunto de todos los atributos determinados funcionalmente a partir de α. Si k es un superclave, α + R

Cálculo de α + resultado := α; while(hay cambios) for each β γ in F do if β resultado then resultado := resultado γ; end; end;

Recubrimiento Canónico Es reducir el conjunto de D.F sin modificar el cierre del mismo para facilitar el chequeo de las tuplas. Definición: Un atributo de una D.F es raro si se puede eliminar sin alterar F + Formalmente: A es raro para α si A α y F implica lógicamente (F {α β}) {(α A) β}

Continuación Por otro lado, A es raro para β si A β y el conjunto de D.F: (F {α β}) {α (β A)} implica lógicamente a F El recubrimiento canónico F c es un conjunto de D.F tales que F implica F c y F c implica F. Además: Ninguna D.F de F c tiene atributos raros Cada lado izquierdo de las D.F es único

Cálculo del F c repeat utilizar la union para transformar α β i y α β j en α β i β j encontrar atrib raros en α β en α o en β y eliminarlos until F no cambie F y F c tienen el mismo cierre

Ejemplo Calcular F c de: A BC B C A B AB C

Diseño de BD (Formas Normales) El problema de la normalización: Curso Prof CAlumno NAlumno Nota CC080 COLARTE 4096 ABC 4.5 CC080 COLARTE 1232 XYZ 4.1 CC100 COLARTE 2546 MNA 4.2 CC100 COLARTE 1232 XYZ 3.5 CC100 COLARTE 3256 BBD 4.5

Errores en el diseño anterior Hay información duplicada (gasto de espacio) Actualizar el profesor de un curso es muy complicado (en términos de eficiencia) Cómo saber el profesor de un curso si hay dos registros del mismo curso con profesor diferente? Cómo saber el profesor de un curso si no hay ningún estudiante matriculado?

Diseño de BD Solución: Descomposición. Dicha descomposición debe asegurar que no se pierda información y que el nuevo esquema se encuentre en una Forma Normal Descomposición: Un conjunto de esquemas {r 1..rn} es una descomposición de r si R = R1... Rn

Algunos Conceptos Superclave: Conjunto de atributos que en conjunto permiten identificar una tupla Clave Candidata: Subconjunto propio de la superclave que sirven para identificar una tupla Clave Primaria: Clave candidata elegida por el diseñador

Continuación Descomposición de reunión sin pérdida: Sea C un conjunto de ligaduras de Integridad. Una descomposición {R1..Rn} es una descomposición de reunión sin pérdida si para todas las relaciones r que son legales bajo C se cumple que: r = π R1 (r) π R2 (r)... π Rn (r)

Continuación De otra forma: Sea F un conjunto de D.F y R 1 y R 2 una descomposición de R. La descomposición es sin pérdida, si al menos una de las siguientes dependencias está en F + : R 1 R 2 R 1 R 1 R 2 R 2

Conservación de las dependencias En un diseño de bases de datos, se deben mantener las D.F iniciales (en la medida de lo posible), así se descompongan las relaciones.

FNBC Una esquema de relación R está en FNBC respecto a un conjunto de D.F F si: 1 α β es trivial 2 α es una superclave Un diseño de B.D esta en FNBC si todas las relaciones del esquema están en FNBC

Alg para la descomposición en FNBC Resultado, hecho := {R}, false Calcular F + while(!hecho) if (hay un esq R i de Result que no este en FNBC) sea α βno trivial que se cumple en R i de modo que α R i no este en F + y α β = Resultado := (resultado R i ) (R i β) (α, β) end end

Ejemplo Sea r(curso, Profesor, Creditos, Alumno, Grupo, Nota y las D.F: curso profesor, credito alumno, curso, grupo nota La descomposición en FNBC sería: E 1(curso, prof, credito) y E 2(curso, alumno, grupo, nota)

Ej. Pérdida de Dep Sea R = {Sucur, Client, Banq} que indica que el cliente tiene un banquero personal. Se exige que: banquero sucursal sucursal, cliente banquero Aplicando el algoritmo se obtiene R1 = {Ban, Suc} y R2 = {Cli, Ban} dónde se pierde la 2da D.F.

Criterios de diseño Se debe lograr: FNBC Reunión sin Pérdida Conservación de las Dependencias Como no siempre se puede lograr se opta por: 3FN Reunión sin Pérdida Conservación de las Dependencias

3FN Es una forma normal más débil que la FNBC. Se dice que R está en 3FN con respecto al conjunto F de D.F si se cumple al menos una de las siguientes condiciones: 1 α β es trivial 2 α es una superclave 3 Cada atributo A en β α está contenido en alguna clave candidata de R ( dependencias transitivas)

3FN Toda Relación en FNBC está en 3FN En el ejemplo del banquero, la relación se encuentra en 3FN puesto que una clave candidata puede ser {Suc, Cli} y {Suc} {ban} = {Suc} está contenido en una clave candidata. Y para la 2da D.F, α es una superclave.

Algoritmo para Dec en 3FN Calcular F c i := 0; for each D.F α β de F c do if ninguno R j, j = 1..i contiene αβ i + +; R i := αβ if ninguno R j, j = 1..i contiene una clave candidata de R i + +; R i := Cualquier clave candidata de R return(r 1..R i )

Ejemplo Sea InfoBank = {suc, cli, banq, oficina} y las D.F ban {suc, ofic} y {cli, suc} banq En el ciclo del for se descompone en las siguientes relaciones: ofic(banq, suc, ofic) y clien(cli, suc, banq)

FNBC vs. 3FN La FNBC puede sacrificar dependencias, la 3FN no Ambas aseguran reunión sin pérdida En la 3FN puede duplicarse información (en el ejemplo anterior, la información de dónde trabaja el banquero X está duplicada)

Dependencias Multivaluadas Se representa por α β dónde: Si t 1 [α] = t 2 [α], t 3, t 4 tal que: t 1 [α] = t 2 [α] = t 3 [α] = t 4 [α] t 3 [β] = t 1 [β] t 3 [R β] = t 2 [R β] t 4 [β] = t 2 [β] t 1 [R β] = t 4 [R β]

Dependencias Multivaluadas Informalmente: La relación entre α y β es independiente a la relación entre α y R β. Por ejemplo, si un cliente puede tener múltiples direcciones, puede escribirse: cc cliente direccion α β es trivial si β α o si β α = R

4FN Un esquema de relación R está en 4FN respecto a un conjunto D de D.F.M si para toda D.F.M en D + cumple: 1 α β es trivial 2 α es una superclave

Algoritmo Resultado := {R} Hecho := false; CalcularD + while(!hecho) if (hay un R i que no este en4fn) sea α β no trivial que cumple R i de modo queα R i no estaend + yα β = Resultado := (Res R i ) (R i β) (α, β) end; end;

Ejemplo Sea Libros(ISBN, Titulo, Materia, Autor, Fecha y las D.F: ISBN Titulo, Fecha ISBN Autor ISBN Materia La descomposición en 4FN sería: (ISBN, Titulo, Fecha), (ISBN, Materia) (ISBN, Autor)

2FN Solo reconocimiento histórico. Se dice que R está en 2FN si todo atributo A pertenece a una clave candidata y A no depende parcialmente de ninguna clave candidata.

1FN Todos los atributos de una relación deben ser monovaluados (inherente al modelo relacional)