Normalización

Ing. Gustavo Delgado Ugarte
Introducción
• La principal ventaja del modelo relacional
  frente a otros modelos de datos, como el de
  red o el jerárquico, es la existencia de un
  cuerpo teórico-formal en el que basar el
  proceso de diseño de bases de datos, de
  modo que pueda dejar de ser una especie de
  “arte”, cuyo resultado depende
  fundamentalmente de la habilidad del
  diseñador para convertirse en un proceso
  metódico.
ANOMALIAS DE MANEJO
• Puede definirse el problema del diseño de las
  bases de datos relacionales como el de escoger,
  de entre una serie de posibilidades, un conjunto
  de esquemas de relación “buenos” para
  representar información del mundo real.
• ¿ Qué se entiende por un “buen” esquema de
  relación ?
  – Básicamente, uno que está libre de redundancia y de
    anomalías de manejo.
ANOMALIAS DE MANEJO
• Consideremos un esquema de relación:
  – PIEZAS ( PIEZA , PROVEEDOR , CANTIDAD )
     • donde CANTIDAD indica la cantidad de una
       determinada pieza en almacén.
     • Supondremos que una misma pieza puede ser
       suministrada por varios proveedores, y que un
       proveedor puede suministrar varias piezas.
ANOMALIAS DE MANEJO
ANOMALIAS DE MANEJO
• Fácilmente se observa lo siguiente:
   – La cantidad de una determinada pieza aparece repetida tantas
     veces como proveedores la suministran ( redundancia ).
   – Al cambiar la cantidad almacenada de una determinada pieza, el
     valor debe alterarse en todas las tuplas correspondientes a
     dicha pieza ( anomalía de modificación ).
   – Si se borra el último proveedor de una pieza, se pierde la
     cantidad de dicha pieza en almacén, a menos que se admitan
     valores nulos ( anomalía de borrado ).
   – Solamente puede almacenarse la cantidad en almacén de una
     determinada pieza, cuando exista al menos un proveedor
     conocido para dicha pieza, a menos que se admitan valores
     nulos ( anomalía de inserción ).
FORMAS NORMALES
• Para caracterizar esquemas de relación
  desprovistos de determinados tipos de
  anomalías, se han definido las llamadas
  “formas normales”.
• Un esquema de relación está en una
  determinada forma normal cuando cumple
  ciertas condiciones que garantizan
  determinadas propiedades deseables del
  esquema.
1ra FORMA NORMAL ( Codd, 1970)
• Podríamos considerar la posibilidad de
  sustituir el esquema de relación PIEZAS por
  otro:
  – PIEZAS2( PIEZA , PROVEEDORES , CANTIDAD )
     • en el cual, el atributo PROVEEDORES toma como valor
       el conjunto de proveedores de cada pieza.
1ra FORMA NORMAL ( Codd, 1970)
1ra FORMA NORMAL ( Codd, 1970)
• Un esquema de relación, alguno de cuyos
  atributos toma como valores conjuntos de
  valores más elementales , se dice que está “no
  normalizado”.
• En caso contrario, es decir, si el dominio asociado
  a cada atributo contiene únicamente valores
  atómicos ( simples o compuestos ), entonces se
  dice que el esquema está en primera forma
  normal ( 1 FN ), o simplemente normalizado.
1ra FORMA NORMAL ( Codd, 1970)
• Definición: está en 1FN si
  – Todo valor en     es atómico
     •   no contiene grupos de repetición
• Consideraciones
  – La 1FN no permite
     • Atributos multivalorados
     • Atributos compuestos
     • Combinaciones de estos
Métodos para corregir el problema
               (1FN)
• Método 1
  – Generar una nueva relación conteniendo el grupo
    de repetición y la llave primaria de la relación
    original
  – Determinar una llave primaria de la nueva relación

  – Abordaje más genérico y no causa redundancia
Métodos para corregir el problema
               (1FN)
• Método 2
  – Eliminar el grupo de repetición
  – Expandir la llave primaria

  – Abordaje que causa redundancia
Métodos para corregir el problema
               (1FN)
• Método 3
  – Sustituir el grupo de repetición por un numero
    máximo de valores establecidos para el grupo

  – Abordaje menos genérica y que puede introducir
    muchos valores nulos (null)
Métodos para corregir el problema
               (1FN)
• Ejemplo
  – Cliente(nro-cli, nombre, {dir_entrega})
   Nro-cli       Nombre        Dir_entrega
   124           Juan Pérez    Calle 10, 1024
                               Calle 24, 1356
   311           José Nieves   Calle 46, 1344
                               Calle 98, 4456
Métodos para corregir el problema
               (1FN)
• Solución al problema
  – Método 1
     • Cliente_nombre(nro-cli, nombre)
     • Cliente_entrega(nro-cli, calle, numero)
  – Método 2
     • Cliente(nro-cli, nombre, calle, numero)
  – Método 3
     • Cliente(nro-cli, nombre, calle1, numero1, calle2,
       numero2)
Descomposición de Esquemas
• Retomando el caso del esquema PIEZAS
Descomposición de Esquemas
• Las anomalías existentes en el esquema
  PIEZAS se deben, básicamente, al hecho de
  haber utilizado un único esquema de relación
  para representar dos “hechos semánticos”
  distintos, a saber:
  – La relación entre proveedores y piezas
    suministradas por lo mismos, y
  – El hecho de que exista una cierta cantidad de cada
    pieza en almacén.
Descomposición de Esquemas
• Podríamos pensar en dividir el esquema de
  relación en dos:
Descomposición de Esquemas
Descomposición de Esquemas
• Podemos observar que:
  – Se han eliminado la redundancia y las anomalías
    de manejo existentes en el esquema original.
  – En la segunda base de datos hemos separado en
    esquemas de relación distintos los diferentes
    hechos semánticos a representar.
  – Podemos obtener la relación original mediante la
    unión (join) natural de las dos proyecciones del
    segundo esquema.
Descomposición de Esquemas
• Este último punto es muy importante. Cuando ocurre
  esto, es decir, cuando un esquema de relación puede
  descomponerse en proyecciones , a partir de las
  cuales es posible recuperar el esquema original por
  medio de la unión natural, se dice que el esquema es
  descomponible , o que existe una descomposición
  sin pérdidas de dicho esquema.
• El concepto de descomposición sin pérdidas es
  fundamental en la teoría de diseño de bases de
  datos relacionales.
Dependencias Funcionales (DF)
• Es una restricción entre dos subconjuntos de
  atributos A y B de , siendo la notación A→B
• Especifica una restricción de las posibles tuplas R( ):
   – Si ti[A] = tj [A] entonces ti [B] = tj [B] para cualquier i,j
• En este caso se dice que A determina funcionalmente
  a B (o alternativamente, B depende funcionalmente
  de A)
• Ejemplo: Pieza → Cantidad
Notación Diagramática para DF
     Nro-cliente                  Nombre                   Dirección




 Nro-pedido           Nro-pieza      Cantidad_comprada     Precio_contado




Nro-cliente        Nombre         Dirección     Cod_vend       Nombre_vend
Dependencia Funcional
• Control de Consistencia
  – Es necesario conocer todas las dependencias
    funcionales – información semántica provistas por
    el diseñador
  – Algunas dependencias funcionales (DFs) pueden
    ser inferidas a partir de DFs existentes => reglas de
    inferencia
Dependencia Funcional
• Reglas de inferencia de DFs
  – Reflexiva: si             (DF Trivial)
  – Aumentativa: Si
  – Descomposición: Si
  – Aditiva: si
  – Transitiva: si
  – Pseudo-transitiva: si

  – Observación: AB representa {A,B}
Definiciones
• Dados los conjuntos de atributos X e Y, y un
  atributo A Є X:
  – X → Y, es una dependencia funcional parcial si

  – X → Y, es una dependencia funcional total si

  – X → Y, es una dependencia funcional trivial si
Definiciones
• Dados los conjuntos de atributos X e Y, y un
  atributo A Є X:
  – X → Y, es una dependencia funcional transitiva si
    existe X → Z y Z → Y, y Z no es parte de la llave
    primaria.

  – Atributo principal, primario o primo.- Atributo
    que forma parte de alguna clave candidata en
2da Forma Normal (2FN)
• Definición.- Un esquema de relación está
  en 2FN si todo atributo no primario A en
  tiene dependencia funcional total de la clave
  primaria de
  – 1FN
  – X → A es una dependencia funcional total si
    (X – {B}) no determina funcionalmente A para
    cualquier atributo B Є X
2da Forma Normal (2FN)
• “Prueba para 2FN”: verificar si los atributos del
  lado izquierdo de las DFs forman parte de la clave
  primaria.Ejemplo
• Pedido(nro-pedido, fecha, nro-pieza, descripción,
  cantidad-comprada, precio-contado)
  – nro-pedido → fecha
  – nro-pieza → descripción
  – {nro-pedido,nro-pieza} → {cantidad-comprada,
    precio-contado}
2da Forma Normal (2FN)
• Para corregir el problema:
  – Para cada subconjunto del conjunto de atributos
    que constituye una clave primaria, generar una
    relación con ese subconjunto como su clave
    primaria
  – Incluir los atributos de la relación original en la
    relación correspondiente a la clave primaria
    apropiada
     • Colocar cada atributo junto con una colección mínima
       de la cual depende, atribuyendo un nombre a cada
       relación.
2da Forma Normal (2FN)
• Tomando el ejemplo anterior
  – Pedido(nro-pedido, fecha, nro-pieza, descripción,
    cantidad-comprada, precio-contado)
     • Pedido(nro-pedido, fecha)
     • Pieza(nro-pieza, descripción)
     • Pedido_pieza(nro-pedido, nro-pieza, cantidad-
       comprada, precio-contado)
2da Forma Normal (2FN)
• La 2FN evita:
  – Inconsistencias y anomalías causadas por
    redundancia de información
  – Pérdida de información en operaciones de
    eliminación y modificación en la relación
3ra Forma Normal (3FN)
• Definición.     está en 3FN si
  – Está en 2FN
  – Ningún atributo no primario de fuera
    transitivamente dependiente de la clave primaria
• Dependencia Transitiva
  – Dependencia transitiva X→Y en          sucede si:
     • X→Z y Z→Y , y
     • Z no es clave candidata ni subconjunto de cualquier
       clave de
3ra Forma Normal (3FN)
• En otras palabras, todos los atributos no
  primarios deben poseer dependencia total, no
  transitiva, de la clave primaria
• Si X→Y es no transitiva, entonces no puede
  haber el conjunto de DFs: X→Z y Z→Y
• Ejemplo:
  – Cliente(nro-cliente, nombre-cliente, direcc-cliente,
    nro-vendedor, nombre-vendedor)
     • Nro-vendedor → nombre-vendedor
3ra Forma Normal (3FN)
• Corrigiendo el problema
  – Para cada determinante que no es una clave
    candidata, remover de la relación los atributos
    que dependen de ese determinante
  – Crear una nueva relación conteniendo todos los
    atributos de la relación original que dependen de
    ese determinante
  – Volver al determinante, clave primaria de la nueva
    relación
3ra Forma Normal (3FN)
• Corrigiendo nuestro ejemplo
  – Cliente(nro-cliente, nombre-cliente, direcc-cliente,
    nro-vendedor, nombre-vendedor)
     • Cliente(nro-cliente, nombre-cliente, direcc-cliente , nro-vendedor)
     • Vendedor(nro-vendedor, nombre-vendedor)

                                                          Clave Foránea
3ra Forma Normal (3FN)
• Así como la 2FN, la 3FN evita:
  – Inconsistencias y anomalías causadas por
    redundancia de información
  – Pérdida de información en operaciones de
    eliminación y modificación en la relación
3ra Forma Normal (3FN)
• Así como la 2FN, la 3FN evita:
  – Inconsistencias y anomalías causadas por
    redundancia de información
  – Pérdida de información en operaciones de
    eliminación y modificación en la relación
Normalización
• Como hemos visto, la normalización de
  relaciones:
  – Está basada en DFs
  – Garantiza consistencia en la construcción del
    sistema
     • Reducción de anomalías
     • Reducción de redundancias
Normalización
• Formas Normales
  – 1FN: el dominio de los atributos es atómico
  – FNs basadas en DFs:
     • Basadas en la clave primaria: 2FN, 3FN
     • Basadas en claves candidatas: FN de Boyce-Codd (FNBC o en
       inglés BCNF)
  – FN basada en dependencias multivaloradas
     • 4FN
     • 5FN: generaliza dependencias multivaloradas, también
       denominada forma normal de reunión por proyección
       (FNRP)
Normalización

        ¿Preguntas?
Ing. Gustavo Delgado Ugarte

05. normalización

  • 1.
  • 2.
    Introducción • La principalventaja del modelo relacional frente a otros modelos de datos, como el de red o el jerárquico, es la existencia de un cuerpo teórico-formal en el que basar el proceso de diseño de bases de datos, de modo que pueda dejar de ser una especie de “arte”, cuyo resultado depende fundamentalmente de la habilidad del diseñador para convertirse en un proceso metódico.
  • 3.
    ANOMALIAS DE MANEJO •Puede definirse el problema del diseño de las bases de datos relacionales como el de escoger, de entre una serie de posibilidades, un conjunto de esquemas de relación “buenos” para representar información del mundo real. • ¿ Qué se entiende por un “buen” esquema de relación ? – Básicamente, uno que está libre de redundancia y de anomalías de manejo.
  • 4.
    ANOMALIAS DE MANEJO •Consideremos un esquema de relación: – PIEZAS ( PIEZA , PROVEEDOR , CANTIDAD ) • donde CANTIDAD indica la cantidad de una determinada pieza en almacén. • Supondremos que una misma pieza puede ser suministrada por varios proveedores, y que un proveedor puede suministrar varias piezas.
  • 5.
  • 6.
    ANOMALIAS DE MANEJO •Fácilmente se observa lo siguiente: – La cantidad de una determinada pieza aparece repetida tantas veces como proveedores la suministran ( redundancia ). – Al cambiar la cantidad almacenada de una determinada pieza, el valor debe alterarse en todas las tuplas correspondientes a dicha pieza ( anomalía de modificación ). – Si se borra el último proveedor de una pieza, se pierde la cantidad de dicha pieza en almacén, a menos que se admitan valores nulos ( anomalía de borrado ). – Solamente puede almacenarse la cantidad en almacén de una determinada pieza, cuando exista al menos un proveedor conocido para dicha pieza, a menos que se admitan valores nulos ( anomalía de inserción ).
  • 7.
    FORMAS NORMALES • Paracaracterizar esquemas de relación desprovistos de determinados tipos de anomalías, se han definido las llamadas “formas normales”. • Un esquema de relación está en una determinada forma normal cuando cumple ciertas condiciones que garantizan determinadas propiedades deseables del esquema.
  • 8.
    1ra FORMA NORMAL( Codd, 1970) • Podríamos considerar la posibilidad de sustituir el esquema de relación PIEZAS por otro: – PIEZAS2( PIEZA , PROVEEDORES , CANTIDAD ) • en el cual, el atributo PROVEEDORES toma como valor el conjunto de proveedores de cada pieza.
  • 9.
    1ra FORMA NORMAL( Codd, 1970)
  • 10.
    1ra FORMA NORMAL( Codd, 1970) • Un esquema de relación, alguno de cuyos atributos toma como valores conjuntos de valores más elementales , se dice que está “no normalizado”. • En caso contrario, es decir, si el dominio asociado a cada atributo contiene únicamente valores atómicos ( simples o compuestos ), entonces se dice que el esquema está en primera forma normal ( 1 FN ), o simplemente normalizado.
  • 11.
    1ra FORMA NORMAL( Codd, 1970) • Definición: está en 1FN si – Todo valor en es atómico • no contiene grupos de repetición • Consideraciones – La 1FN no permite • Atributos multivalorados • Atributos compuestos • Combinaciones de estos
  • 12.
    Métodos para corregirel problema (1FN) • Método 1 – Generar una nueva relación conteniendo el grupo de repetición y la llave primaria de la relación original – Determinar una llave primaria de la nueva relación – Abordaje más genérico y no causa redundancia
  • 13.
    Métodos para corregirel problema (1FN) • Método 2 – Eliminar el grupo de repetición – Expandir la llave primaria – Abordaje que causa redundancia
  • 14.
    Métodos para corregirel problema (1FN) • Método 3 – Sustituir el grupo de repetición por un numero máximo de valores establecidos para el grupo – Abordaje menos genérica y que puede introducir muchos valores nulos (null)
  • 15.
    Métodos para corregirel problema (1FN) • Ejemplo – Cliente(nro-cli, nombre, {dir_entrega}) Nro-cli Nombre Dir_entrega 124 Juan Pérez Calle 10, 1024 Calle 24, 1356 311 José Nieves Calle 46, 1344 Calle 98, 4456
  • 16.
    Métodos para corregirel problema (1FN) • Solución al problema – Método 1 • Cliente_nombre(nro-cli, nombre) • Cliente_entrega(nro-cli, calle, numero) – Método 2 • Cliente(nro-cli, nombre, calle, numero) – Método 3 • Cliente(nro-cli, nombre, calle1, numero1, calle2, numero2)
  • 17.
    Descomposición de Esquemas •Retomando el caso del esquema PIEZAS
  • 18.
    Descomposición de Esquemas •Las anomalías existentes en el esquema PIEZAS se deben, básicamente, al hecho de haber utilizado un único esquema de relación para representar dos “hechos semánticos” distintos, a saber: – La relación entre proveedores y piezas suministradas por lo mismos, y – El hecho de que exista una cierta cantidad de cada pieza en almacén.
  • 19.
    Descomposición de Esquemas •Podríamos pensar en dividir el esquema de relación en dos:
  • 20.
  • 21.
    Descomposición de Esquemas •Podemos observar que: – Se han eliminado la redundancia y las anomalías de manejo existentes en el esquema original. – En la segunda base de datos hemos separado en esquemas de relación distintos los diferentes hechos semánticos a representar. – Podemos obtener la relación original mediante la unión (join) natural de las dos proyecciones del segundo esquema.
  • 22.
    Descomposición de Esquemas •Este último punto es muy importante. Cuando ocurre esto, es decir, cuando un esquema de relación puede descomponerse en proyecciones , a partir de las cuales es posible recuperar el esquema original por medio de la unión natural, se dice que el esquema es descomponible , o que existe una descomposición sin pérdidas de dicho esquema. • El concepto de descomposición sin pérdidas es fundamental en la teoría de diseño de bases de datos relacionales.
  • 23.
    Dependencias Funcionales (DF) •Es una restricción entre dos subconjuntos de atributos A y B de , siendo la notación A→B • Especifica una restricción de las posibles tuplas R( ): – Si ti[A] = tj [A] entonces ti [B] = tj [B] para cualquier i,j • En este caso se dice que A determina funcionalmente a B (o alternativamente, B depende funcionalmente de A) • Ejemplo: Pieza → Cantidad
  • 24.
    Notación Diagramática paraDF Nro-cliente Nombre Dirección Nro-pedido Nro-pieza Cantidad_comprada Precio_contado Nro-cliente Nombre Dirección Cod_vend Nombre_vend
  • 25.
    Dependencia Funcional • Controlde Consistencia – Es necesario conocer todas las dependencias funcionales – información semántica provistas por el diseñador – Algunas dependencias funcionales (DFs) pueden ser inferidas a partir de DFs existentes => reglas de inferencia
  • 26.
    Dependencia Funcional • Reglasde inferencia de DFs – Reflexiva: si (DF Trivial) – Aumentativa: Si – Descomposición: Si – Aditiva: si – Transitiva: si – Pseudo-transitiva: si – Observación: AB representa {A,B}
  • 27.
    Definiciones • Dados losconjuntos de atributos X e Y, y un atributo A Є X: – X → Y, es una dependencia funcional parcial si – X → Y, es una dependencia funcional total si – X → Y, es una dependencia funcional trivial si
  • 28.
    Definiciones • Dados losconjuntos de atributos X e Y, y un atributo A Є X: – X → Y, es una dependencia funcional transitiva si existe X → Z y Z → Y, y Z no es parte de la llave primaria. – Atributo principal, primario o primo.- Atributo que forma parte de alguna clave candidata en
  • 29.
    2da Forma Normal(2FN) • Definición.- Un esquema de relación está en 2FN si todo atributo no primario A en tiene dependencia funcional total de la clave primaria de – 1FN – X → A es una dependencia funcional total si (X – {B}) no determina funcionalmente A para cualquier atributo B Є X
  • 30.
    2da Forma Normal(2FN) • “Prueba para 2FN”: verificar si los atributos del lado izquierdo de las DFs forman parte de la clave primaria.Ejemplo • Pedido(nro-pedido, fecha, nro-pieza, descripción, cantidad-comprada, precio-contado) – nro-pedido → fecha – nro-pieza → descripción – {nro-pedido,nro-pieza} → {cantidad-comprada, precio-contado}
  • 31.
    2da Forma Normal(2FN) • Para corregir el problema: – Para cada subconjunto del conjunto de atributos que constituye una clave primaria, generar una relación con ese subconjunto como su clave primaria – Incluir los atributos de la relación original en la relación correspondiente a la clave primaria apropiada • Colocar cada atributo junto con una colección mínima de la cual depende, atribuyendo un nombre a cada relación.
  • 32.
    2da Forma Normal(2FN) • Tomando el ejemplo anterior – Pedido(nro-pedido, fecha, nro-pieza, descripción, cantidad-comprada, precio-contado) • Pedido(nro-pedido, fecha) • Pieza(nro-pieza, descripción) • Pedido_pieza(nro-pedido, nro-pieza, cantidad- comprada, precio-contado)
  • 33.
    2da Forma Normal(2FN) • La 2FN evita: – Inconsistencias y anomalías causadas por redundancia de información – Pérdida de información en operaciones de eliminación y modificación en la relación
  • 34.
    3ra Forma Normal(3FN) • Definición. está en 3FN si – Está en 2FN – Ningún atributo no primario de fuera transitivamente dependiente de la clave primaria • Dependencia Transitiva – Dependencia transitiva X→Y en sucede si: • X→Z y Z→Y , y • Z no es clave candidata ni subconjunto de cualquier clave de
  • 35.
    3ra Forma Normal(3FN) • En otras palabras, todos los atributos no primarios deben poseer dependencia total, no transitiva, de la clave primaria • Si X→Y es no transitiva, entonces no puede haber el conjunto de DFs: X→Z y Z→Y • Ejemplo: – Cliente(nro-cliente, nombre-cliente, direcc-cliente, nro-vendedor, nombre-vendedor) • Nro-vendedor → nombre-vendedor
  • 36.
    3ra Forma Normal(3FN) • Corrigiendo el problema – Para cada determinante que no es una clave candidata, remover de la relación los atributos que dependen de ese determinante – Crear una nueva relación conteniendo todos los atributos de la relación original que dependen de ese determinante – Volver al determinante, clave primaria de la nueva relación
  • 37.
    3ra Forma Normal(3FN) • Corrigiendo nuestro ejemplo – Cliente(nro-cliente, nombre-cliente, direcc-cliente, nro-vendedor, nombre-vendedor) • Cliente(nro-cliente, nombre-cliente, direcc-cliente , nro-vendedor) • Vendedor(nro-vendedor, nombre-vendedor) Clave Foránea
  • 38.
    3ra Forma Normal(3FN) • Así como la 2FN, la 3FN evita: – Inconsistencias y anomalías causadas por redundancia de información – Pérdida de información en operaciones de eliminación y modificación en la relación
  • 39.
    3ra Forma Normal(3FN) • Así como la 2FN, la 3FN evita: – Inconsistencias y anomalías causadas por redundancia de información – Pérdida de información en operaciones de eliminación y modificación en la relación
  • 40.
    Normalización • Como hemosvisto, la normalización de relaciones: – Está basada en DFs – Garantiza consistencia en la construcción del sistema • Reducción de anomalías • Reducción de redundancias
  • 41.
    Normalización • Formas Normales – 1FN: el dominio de los atributos es atómico – FNs basadas en DFs: • Basadas en la clave primaria: 2FN, 3FN • Basadas en claves candidatas: FN de Boyce-Codd (FNBC o en inglés BCNF) – FN basada en dependencias multivaloradas • 4FN • 5FN: generaliza dependencias multivaloradas, también denominada forma normal de reunión por proyección (FNRP)
  • 42.
    Normalización ¿Preguntas? Ing. Gustavo Delgado Ugarte