Paul Leger http://pleger.cl Formas Normales: Lineamientos formales para un buen diseño y la necesidad de por qué son necesarias las dependencia funcionales.

Slides:



Advertisements
Presentaciones similares
Rocío Contreras Águila Primer Semestre 2010
Advertisements

Teórico: Normalización
FORMA NORMAL DE BOYCE-CODD (BCNF)
4.2 Dominios atómicos y la primera forma normal.
Universidad Interamericana de P.R. Departamento Informática Curso 3850 Dr. Rafael Nieves.
NORMALIZACIÓN DE DATOS
Métrica v2.1 Técnicas: Teoría de la Normalización.
Diseño de Bases de Datos

NORMALIZACION La teoría de la normalización, cuyas tres primeras formas normales fueron introducidas por Codd desde sus primeros trabajos, elimina dependencias.
NORMALIZACIÓN Prof. Gabriel Matonte.
Base de Datos.
Base de Datos I – Ing. Mary Carlota Bernal J. BASE DE DATOS I Normalización.
NORMALIZACIÓN DE DATOS TALLER DE DESARROLLO DE SISTEMAS DE INFORMACIÓN Geynen Rossler Montenegro Cochas.
Normalización Consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad- relación al modelo relacional.
Normalizacion Sesión 3 Dr. Ing. Lenin Herrera. Contenido Que es la Normalizacion Dependencias funcionales Formas normales   1FN   2FN   3FN  
Normalización Prof. Carlos Rodríguez Sánchez. Definición El proceso de NORMALIZACION se refiere a la modificación del diseño de una Base de Datos. Usualmente.
El ELKA es una técnica de modelado de información desarrollada por Hughes Aircraft Company. Esta técnica especifica a través de gráficas, contempla las.
Primera Forma Normal La regla de la Primera Forma Normal establece que las columnas repetidas deben eliminarse y colocarse en tablas separadas. Poner la.
Paul Leger Algebra Relacional Paul Leger
Paul Leger Casos de Usos Paul Leger
Modelo Entidad-Relación
SQL: Structured Query Language
Aidan Hogan CC Bases de Datos Primavera 2016 Clase 11: Integridad, Transacciones, ACID (I) Aidan Hogan
DE PRIMERO Y SEGUNDO GRADO Diseño: M. en C. Juan Adolfo Alvarez Mtz.
Paul Leger Algebra Relacional 2 Paul Leger
Modelo Entidad-Relación (continuación)
Base de Datos
Diseño de Bases de Datos
Dependencias Funcionales
Lineamientos informales para un buen diseño
Instituto Profesional Virginio Gómez
Paul Leger Transacciones Paul Leger
Conferencia 2. Modelo Relacional. Teoría de la Normalización.
Dependencias Funcionales
Modelo Entidad-Relación
Unidad Descuentos por período y cantidad
Dependencias Funcionales
Lineamientos para un buen diseño de base de datos
Arquitectura de una Base de Datos
SQL: Structured Query Language
Paul Leger Formas Normales Paul Leger
Paul Leger Algebra Relacional 2 Paul Leger
NORMALIZACION MsC (c) Esp. Alexis Ovany Torres Ch.
NORMALIZACION El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo.
SQL 2: Structured Query Language
SQL: structured Query Language
Modelo Entidad-Relación
Conferencia 4. Normalización. Forma Normal de Boyce – Codd (FNBC)
Paul Leger Algebra Relacional Paul Leger
EL MODELO RELACIONAL Creado por Edgar Codd, 1970:
Arquitectura de una Base de Datos
Restricciones de integridad en el modelo relacional
MATEMÁTICA DISCRETA Y LÓGICA 1
Normalización Proceso de simplificación de datos Almacenar con el menor espacio posible Eliminar datos repetidos Eliminar errores lógicos Datos ordenados.
Normalización MC Beatriz Beltrán Martínez Benemérita Universidad Autónoma de Puebla.
Taller de Bases de Datos Ingeniería en Sistemas Computacionales Clave de la asignatura: SCA-1025 (Créditos) SATCA1: 0 – 4 – 4.
NORMALIZACION MsC (c) Esp. Alexis Ovany Torres Ch.
Dependencias Funcionales
Segunda Forma Normal (2FN)
Funciones Prof. M. Alonso
MODELADO DE DATOS Tema 2: Normalizar un diseño de bases de datos.
Aidan Hogan CC Bases de Datos Otoño 2019 Clase 7: Actualizaciones, Restricciones, Formas Normales Aidan.
Ing. Francisco Rodríguez
ALGEBRA RELACIONAL UNIDAD 3 ALGEBRA RELACIONAL. INTRODUCCIÓN Se forma a partir de la matemática formal Creada por Edgar Frank Codd en 1972 Concede comportamineto.
BASES DE DATOS NORMALIZACION. Normalización  ¿Qué es la normalización?  Es la aplicación de un conjunto de reglas que permite aprobar la construcción.
NORMALIZACI ON DE UNA BASE DE DATOS. DIAGRAMA RELACIONAL CLIENTE FACTURA codigo_cliente (PK) numero_factura (PK) nombre fecha apellidos codigo_cliente.
Base de Datos Ing. Ricardo Tillero UNIDAD 3: NORMALIZACIÓN.
Técnica: Matriz de ideas
Taller de Bases de Datos Ingeniería en Sistemas Computacionales M. en I.S.C Mariana Carolyn Cruz Mendoza Por Alexis Orlando Rebollar Lopez.
Transcripción de la presentación:

Paul Leger http://pleger.cl Formas Normales: Lineamientos formales para un buen diseño y la necesidad de por qué son necesarias las dependencia funcionales Paul Leger http://pleger.cl

Formas Normales Codd creo las Formas Normales (FNs) para certificar formalmente el buen diseño de modelos relacionales En un inicio, Codd definió tres formas normales (1 FN, 2 FN y 3 FN). Luego con Boyce, definieron 3FN de Boyce-Codd o simplemente Boyce-Codd FN Hay varias otras formas normales, por ejemplo 4 y 5 FNs. Estás dos últimas no serán estudiadas en este curso

Formas Normales Definición: una forma normal establece un conjunto de restricciones que deben ser satisfechas por un modelo de base datos El objetivo de las formas normales intentan definir de una manera formal los lineamientos del buen diseño de una base de datos Si una tabla no cumple con las restricciones, esta tabla se debe descomponer para cumplir con la forma normal que se desea alcanzar

Aquí hay dos datos donde debería solamente uno Formas Normales 1, 2 y 3 Como mencionamos antes, existen varias FNs (ej. 1 FN, 2 FN, etc), donde cada uno involucra un conjunto de restricciones que se deben cumplir Generalmente estas restricciones están expresadas en términos de dependencias funcionales Ejemplo de restricción: Para un atributo de una tupla, este atributo no puede contener más de un dato Nombre Apellido Eduardo/Carlos Pérez Aquí hay dos datos donde debería solamente uno

Relación entre Formas Normales Hasta Boyce-Codd FN, si uno tiene un diseño en una base de datos en un “n FN”, entonces su esquema también satisfacen las anteriores FNs (es decir, n-1 FN) Boyce-Codd 3 FN NOTA: En este curso, nos concentramos en las primeras tres 2 FN 1 FN

Formas Normales Para cumplir con las restricciones de FNs, es necesario descomponer tablas en otras tablas/relaciones Sin embargo, la descomposiciones implican nuevos “joins” con las nuevas tablas descompuestas. Hay considerar que cada join consume una cantidad de tiempo considerable Dependiendo del problema, no siempre es necesario llegar a la mejor forma normal, pues la descomposición de tablas afecta al rendimiento ¿Por qué?

Beneficios de FNs Aunque cada FN busca un beneficio en particular, sin embargo, en general las FNs buscan: Conservar las DFs de la descripción ¿Por qué es importante? Evitar tuplas espurias (el por qué es obvio, ¿Cierto?)

Algunos Conceptos Amigo Arrienda Identifique en AMIGO: Superclaves, Superclave es un conjunto de atributos que definen una relación ¿Un Ejemplo? {Rut_A, IDCasa, Deuda} Clave es una superclave, donde ningún atributo puede ser eliminado para seguir siendo superclave {Rut_A, IDCasa} Claves candidatas es el conjunto de claves {Rut_A, IDCasa} y {Codigo_unico_RUTA-IDCASA} Clave primaria (Primary Key) es un clave elegida arbitrariamente {Rut_A, IDCASA} Atributo primo es un atributo miembro de una clave candidata {Rut_A} Arrienda Rut_A IDCasa Deuda Impuestos Codigo_unico_RUTA-IDCASA Identifique en AMIGO: Superclaves, Claves candidata Primary Key Atributos primos en Amigo E-mail User Name LastName

Primera Formal Normal (1 FN) Todo atributo debe ser atómico e indivisible. Es decir, no debe haber atributos multi-valuados y compuestos Supuesto: Un Dpto se puede ubicar en varias bodegas Dpto NombreID Jefe BodegaID Posible soluciones: 1- Descomponer en dos tablas (Dpto y bodega) 2- Ampliar la primary key con BodegaID 3- Si son siempre tres bodegas, definir tres atributos a Dpto: NombreID, Jefe, BodegaID1,BodegaID2, BodegaID3

Primera Formal Normal (1 FN) Dpto NombreID Jefe BodegaID Bodega BodegaID 1 Se ubica n Solución Ideal: Debemos repetir el proceso para otras violaciones de 1 FN, y volver a descomponer hasta que todo el esquema cumpla 1 FN

Segunda Formal Normal (2 FN) Dependencia Funcional Total es una DF (X->Y) si al restar un atributo A a X, X deja de definir a Y, es decir, (X – A) ≠> Y Explicación 1: 2 FN exige que cualquier clave candidata (entre ellas la primary key) debe ser una dependencia funcional total con respecto a todos los atributos de la relación Explicación 2: Todo atributo no primo depende completamente de una clave candidata Obviamente toda relación, donde todas claves primarias tienen un solo atributo, está en 2 FN ---- ¿Por qué? Trabaja_en Rut DptoID horas Amigo E-mail User Name LastName ¿Está en 2FN? ¿Está en 2FN?

¿Por qué no está en segunda forma normal? 2 FN. Ejemplo 1 NombreID, BodegaID -> {Jefe, FechaCreación, Calle, Numero, Ciudad} BodegaID -> {Calle} BodegaID -> {Numero} BodegaID -> {Ciudad} Dpto NombreID Jefe FechaCreación BodegaID Calle Numero Ciudad ¿Por qué no está en segunda forma normal?

2 FN. Ejemplo 1 (continuación) Dpto NombreID Jefe FechaCreación BodegaID BODEGA1 BodegaID Calle BODEGA2 BodegaID Numero BODEGA3 BodegaID Ciudad ¿Hay una solución mejor, cierto? Dpto NombreID Jefe FechaCreación BodegaID Bodega BodegaID Calle Numero Ciudad

2 FN. Ejemplo 2 Considere una modificación del nuestro clásico ejemplo del sistema de arriendo, específicamente en la tabla arrienda: En esta tabla, tenemos las siguientes dependencias funcionales (DFs): {Rut_A, IdCasa} -> {Deuda} {IdCasa} -> {Numero, Calle, Ciudad} ¿Rut_A y IdCasa pueden ser la primary key de Arrienda? ¿Por qué? ¿Hay una violación de alguna forma norma (1 FN ó 2 FN)? Si es así ¿Cuál es la solución?

No olvide: Si está 2 FN, significa que está 1 FN

Tercera Forma Normal (3 FN) La 3 FN está relacionado con las dependencias funcionales transitivas, es decir, Si X -> Y ^ Y-> Z => X -> Z Un esquema está 3 FN, si está en 2 FN y no tiene dependencia transitiva en alguna tabla

3 FN. Ejemplo 1 Supuesto: Suponga ahora que un Dpto solo se puede ubicar en una bodega Dpto NombreID Jefe FechaCreación BodegaID Calle Numero Ciudad NombreID-> {Jefe, FechaCreación, BodegaID} BodegaID -> {Calle, Numero, Ciudad} Aquí hay una DF transitiva a través de BodegaID, por lo tanto, no está o viola la 3 FN, sin embargo, si está en 2 FN ¿Por qué?

3 FN. Ejemplo 1 (continuación) Solución: BODEGA BodegaID Calle Numero Ciudad Dpto NombreID Jefe FechaCreación BodegaID Observación: Una violación a la tercera forma normal puede indicar que 2 conceptos están mezclados

3 FN. Ejemplo 2 ¿Qué forma normal viola esta tabla? ¿Por qué? Supuesto. Un humano cuida solamente a un perro y cada perro tiene un único rut. Rut -> {Nombre_h, Apellido_h, Rut-perro} Rut-perro -> {Nombre-perro} ¿Qué forma normal viola esta tabla? ¿Por qué? Solución:

Si está 3 FN, significa que está 2 FN

Resumen (1/2) Comúnmente, la violación de una forma normal se refleja a través de una especifica dependencia funcional. Por ejemplo, Sea R = {a,b,c,d,e} y sus DFs = { a -> {b,c,e} c -> {d} } En R, la DF c -> {d} viola la 3 FN, por lo tanto, la descomposición para solucionar está violación es crear una relación nueva con esta dependencia funcional, es decir, R1 = {a,b,c,e} y R2 = {c,d} Al realizar el join entre R1 y R2, volvemos a generar nuestra tabla inicial: R

Solución (normalización) Resumen (2/2) Forma Normal Condición Solución (normalización) 1 FN Una relación no debería tener ningún atributo no atómico Formar relaciones nuevas para cada conjunto de atributos no atómicos 2 FN Para las relaciones en las que las claves candidatas contienen más de un atributos, ningún atributo no primo debería depender funcionalmente de una parte de una clave candidata Descomponer y crear una nueva relación por cada atributo dependiente que viola 2 FN. Asegurarse que puede reunir (join) con la tabla original 3 FN Una relación no debería tener un atributo no primo determinado funcionalmente por otro atributo no primo. En otras palabras, no debería existir DF transitiva por parte de un atributo no primo Crear una nueva relación con el conjunto de atributos no primos que determina las otras dependencias

Ejercicio (1/2) Identifique las claves candidatas ¿Está en 2 FN? Si la respuesta anterior es no, ¿Cuál DF viola 2 FN? ¿df1, df2, df3 o df4?

Ejercicio (2/2) ¿Está en 3 FN? ¿No? ¿cuál DF viola está FN?

Ejercicio: Solución Final La tabla LOTES recibió tres modificaciones para cumplir hasta la tercera forma normal

¿Tiene una solución que no pierda ninguna dependencia funcional? Forma FN BC Esta FN tiene la restricción que un atributo no primo defina un atributo primo. En la siguiente imagen hay una violación al forma normal de Boyce-Codd (FN BC) ¿Tiene una solución que no pierda ninguna dependencia funcional? NO SIEMPRE ES POSIBLE TENER FNBC. EN ESTE CASO, ES MEJOR QUEDARSE CON 3FN Pregunta para meditar: ¿Qué pasaría si la relación solamente fuera R(B,C) con las mismas dependencias? ¿Qué pasaría con C?

Formas Normales Lectura Capitulo 12.2 – 12.5