7
Normalizaci Normalizació n del n del Modelo Relacional Modelo Relacional Bases de Datos Bases de Datos Ingenier Ingeniería T a Técnica en Inform cnica en Informática de Sistemas tica de Sistemas Prof. Dr. Antonio Mosquera González cnica de Dise cnica de Diseñ ño Normalizaci Normalización del Modelo Relacional n del Modelo Relacional La normalización es una técnica de diseño de bases de datos que parte del estudio de las relaciones entre los atributos Prof. Dr. Antonio Mosquera González 2 La normalización emplea una serie de pruebas para tratar de identificar el agrupamiento óptimo de los atributos 3 Normalización Dependencias Funcionales Proceso de Normalización Primera Forma Normal Segunda Forma Normal Tercera Forma Normal Prof. Dr. Antonio Mosquera González Normalizaci Normalización del Modelo Relacional n del Modelo Relacional Í Índice ndice Normalizaci Normalización Normalizaci Normalización del Modelo Relacional n del Modelo Relacional Bases de Datos Bases de Datos Ingenier Ingeniería T a Técnica en Inform cnica en Informática de Sistemas tica de Sistemas Prof. Dr. Antonio Mosquera González 5 El propósito de la normalización es identificar un conjunto adecuado de relaciones que soporten los requisitos de datos de una organización Prof. Dr. Antonio Mosquera González Normalizaci Normalización Conjunto de Relaciones Conjunto de Relaciones Características del conjunto adecuado de relaciones: Número mínimo de atributos necesarios Agrupación de los atributos que presenten una relación lógica fuerte Redundancia mínima (cada atributo una vez salvo las claves externas) 6 Principales usos del proceso de normalización: Técnica autónoma de diseño de tipo abajo-arriba Técnica de validación para comprobar una estructura de relaciones creada mediante una técnica de tipo arriba-abajo Prof. Dr. Antonio Mosquera González Normalizaci Normalización Dise Diseñ ñ o de Bases de Datos o de Bases de Datos

Normalización

Embed Size (px)

DESCRIPTION

Normalización

Citation preview

Page 1: Normalización

1

NormalizaciNormalizacióón del n del Modelo RelacionalModelo Relacional

Bases de DatosBases de DatosIngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas

Prof. Dr. Antonio Mosquera González

TTéécnica de Disecnica de Diseññoo

NormalizaciNormalizacióón del Modelo Relacionaln del Modelo Relacional

La normalización es una técnica de diseño de bases de datos que parte del estudio de las relaciones entre los atributos

Prof. Dr. Antonio Mosquera González

22

La normalización emplea una serie de pruebas para tratar de identificar el agrupamiento óptimo de los atributos

33

Normalización

Dependencias Funcionales

Proceso de Normalización

Primera Forma Normal

Segunda Forma Normal

Tercera Forma Normal

Prof. Dr. Antonio Mosquera González

NormalizaciNormalizacióón del Modelo Relacionaln del Modelo Relacional

ÍÍndicendice

NormalizaciNormalizacióónn

NormalizaciNormalizacióón del Modelo Relacionaln del Modelo RelacionalBases de DatosBases de Datos

IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de SistemasProf. Dr. Antonio Mosquera González

55

El propósito de la normalización es identificar un conjunto adecuado de relaciones que soporten los requisitos de datos de una organización

Prof. Dr. Antonio Mosquera González

NormalizaciNormalizacióónn

Conjunto de RelacionesConjunto de Relaciones

Características del conjunto adecuado de relaciones:

Número mínimo de atributos necesarios

Agrupación de los atributos que presenten una relación lógica fuerte

Redundancia mínima (cada atributo una vez salvo las claves externas)

66

Principales usos del proceso de normalización:

Técnica autónoma de diseño de tipo abajo-arriba

Técnica de validación para comprobar una estructura de relaciones creada mediante una técnica de tipo arriba-abajo

Prof. Dr. Antonio Mosquera González

NormalizaciNormalizacióónn

DiseDiseñño de Bases de Datoso de Bases de Datos

Page 2: Normalización

2

77

Problemas asociados con la redundancia indeseadaen los datos

Prof. Dr. Antonio Mosquera González

NormalizaciNormalizacióónn

AnomalAnomalíías de Actualizacias de Actualizacióónn

Personal (numPersonal, nombre, categoría, salario, numSucursal)

PersonalSucursal (numPersonal, nombre, categoría, salario, numSucursal, ciudad)

B005B003B003B007B003B005

3000012000180009000240009000

GerenteAyudanteSupervisorAyudanteGerenteAyudante

JuanAnaDavidMaríaSusanaJulia

SL21SG37SG14SA9SG5SL41

numSucursalsalariocategoríanombrenumPersonal

B005B003B003B007B003B005

numSucursal

LéridaZaragozaZaragozaÁvilaZaragozaLérida

3000012000180009000240009000

GerenteAyudanteSupervisorAyudanteGerenteAyudante

JuanAnaDavidMaríaSusanaJulia

SL21SG37SG14SA9SG5SL41

ciudadsalariocategoríanombrenumPersonal

LéridaÁvilaZaragozaBarcelonaLérida

B005B007B003B004B002

ciudadnumSucursal

Sucursal (numSucursal, ciudad)

88

Para insertar los detalles de un nuevo empleado en la relación PersonalSucursal, se deben incluir los detalles de la sucursal en la que trabaja

Prof. Dr. Antonio Mosquera González

NormalizaciNormalizacióónn

AnomalAnomalíías de Insercias de Insercióónn

B005B003B003B007B003B005

numSucursal

LéridaZaragozaZaragozaÁvilaZaragozaLérida

3000012000180009000240009000

GerenteAyudanteSupervisorAyudanteGerenteAyudante

JuanAnaDavidMaríaSusanaJulia

SL21SG37SG14SA9SG5SL41

ciudadsalariocategoríanombrenumPersonal

Cuando es un empleado de una sucursal que ya existe los datos de sucursal deben ser coherentes con los que ya existen

99

Para insertar los detalles de una nueva sucursal, que actualmente no tenga ningún empleado, es necesario introducir valores nulos en los atributos del empleado

Prof. Dr. Antonio Mosquera González

NormalizaciNormalizacióónn

AnomalAnomalíías de Insercias de Insercióónn

B005B003B003B007B003B005

numSucursal

LéridaZaragozaZaragozaÁvilaZaragozaLérida

3000012000180009000240009000

GerenteAyudanteSupervisorAyudanteGerenteAyudante

JuanAnaDavidMaríaSusanaJulia

SL21SG37SG14SA9SG5SL41

ciudadsalariocategoríanombrenumPersonal

Si la clave principal es algún atributo de empleado, numPersonal, se viola la integridad referencial

1010

Si se borra una tupla de la relación PersonalSucursal que corresponda con el último empleado de una sucural se perderá la información acerca de dicha sucursal

Prof. Dr. Antonio Mosquera González

NormalizaciNormalizacióónn

AnomalAnomalíías de Borradoas de Borrado

B005B003B003B007B003B005

numSucursal

LéridaZaragozaZaragozaÁvilaZaragozaLérida

3000012000180009000240009000

GerenteAyudanteSupervisorAyudanteGerenteAyudante

JuanAnaDavidMaríaSusanaJulia

SL21SG37SG14SA9SG5SL41

ciudadsalariocategoríanombrenumPersonal

1111

Si se quiere cambiar el valor de uno de los atributos de una sucursal concreta, se tiene que actualizar todas las tuplas de todos los empleados de la sucursal

Prof. Dr. Antonio Mosquera González

NormalizaciNormalizacióónn

AnomalAnomalíías de Modificacias de Modificacióónn

B005B003B003B007B003B005

numSucursal

LéridaZaragozaZaragozaÁvilaZaragozaLérida

3000012000180009000240009000

GerenteAyudanteSupervisorAyudanteGerenteAyudante

JuanAnaDavidMaríaSusanaJulia

SL21SG37SG14SA9SG5SL41

ciudadsalariocategoríanombrenumPersonal

1212

Las relaciones Personal y Sucursal por separado tienen propiedades más deseables que la relación PersonalSucursal

Prof. Dr. Antonio Mosquera González

NormalizaciNormalizacióónn

DescomposiciDescomposicióónn

Propiedades importantes asociadas a la descomposiciónde una relación en varias más pequeñas:

Combinación sin pérdidas (cualquier instancia de la relación original puede identificarse a partir de instancias de las relaciones más pequeñas)

Preservación de las dependencias (una restricción de la relación original se puede mantener imponiendo restricciones a cada una de las relaciones más pequeñas)

Page 3: Normalización

3

Dependencias Dependencias FuncionalesFuncionales

NormalizaciNormalizacióón del Modelo Relacionaln del Modelo RelacionalBases de DatosBases de Datos

IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de SistemasProf. Dr. Antonio Mosquera González

1414

El concepto de dependencia funcional describe la relación que existe entre los atributos

Prof. Dr. Antonio Mosquera González

Dependencias FuncionalesDependencias Funcionales

RelaciRelacióón Entre Atributosn Entre Atributos

R = (A, B, C, …, Z)Relación Universal

(todo atributo tiene un nombre distintivo en la base de datos)

1515

Las dependencias funcionales describen la relación existente entre atributos de una relación

Por ejemplo, si A y B son atributos de la relación R, B será funcionalmente dependiente de A o A determina funcionalmente a B (lo que se denota A B) si cada valor de A está asociado con exactamente un valor de B

Prof. Dr. Antonio Mosquera González

Dependencias FuncionalesDependencias Funcionales

Dependencia FuncionalDependencia Funcional

La dependencia funcional es una propiedad de la semántica de los atributos de una relación

A y B pueden consistir cada uno de ellos de uno o más atributos

1616

El determinante hace referencia al atributo o grupo de atributos en el lado izquierdo de la flecha que define una dependencia funcional

Prof. Dr. Antonio Mosquera González

Dependencias FuncionalesDependencias Funcionales

DeterminanteDeterminante

A B B A

b1a2b1a2

b1a1b1a1BA

Una dependencia funcional es una propiedad de un esquema de relación y no de una instancia concreta del esquema

1717

Una característica útil para el proceso de normalización es que los determinantes de las dependencias funcionalestengan el mínimo número de atributos necesarios para mantener la dependencia funcional del lado derecho

Prof. Dr. Antonio Mosquera González

Dependencias FuncionalesDependencias Funcionales

Dependencia Funcional CompletaDependencia Funcional Completa

Este requisito se conoce como dependencia funcional completa: Si a y B son atributos de la relación R, B depende funcionalmente de manera completa de A si B depende de A pero no de ningún subconjunto de A

1818

Las dependencias funcionales que se utilizan en el proceso de normalización tienen las siguientes características

Prof. Dr. Antonio Mosquera González

Dependencias FuncionalesDependencias Funcionales

CaracterCaracteríísticassticas

Hay una relación de uno a uno entre los atributos del lado izquierdo (determinante) y los del lado derecho

Se cumplen en todo instante de tiempo

El determinante tiene el número mínimo de atributos necesarios para mantener la dependencia

Page 4: Normalización

4

1919

La existencia de dependencias transitivas en una relación podría llegar a causar anomalías de actualización

Prof. Dr. Antonio Mosquera González

Dependencias FuncionalesDependencias Funcionales

Dependencias TransitivasDependencias Transitivas

Sean A, B y C atributos de una relación R tales que A B y B C, entonces C depende transitivamente de A a través de B

B005B003B003B007B003B005

numSucursal

LéridaZaragozaZaragozaÁvilaZaragozaLérida

3000012000180009000240009000

GerenteAyudanteSupervisorAyudanteGerenteAyudante

JuanAnaDavidMaríaSusanaJulia

SL21SG37SG14SA9SG5SL41

ciudadsalariocategoríanombrenumPersonal

2020

La identificación de todas las dependencias funcionales entre un conjunto de atributos debería ser bastante simple si se comprende bien el significado de cada atributo y las relaciones existentes entre los atributos

Prof. Dr. Antonio Mosquera González

Dependencias FuncionalesDependencias Funcionales

IdentificaciIdentificacióónn

Estos datos se suelen obtener con las técnicas de determinación de hechos

B005B003B003B007B003B005

numSucursal

LéridaZaragozaZaragozaÁvilaZaragozaLérida

3000012000180009000240009000

GerenteAyudanteSupervisorAyudanteGerenteAyudante

JuanAnaDavidMaríaSusanaJulia

SL21SG37SG14SA9SG5SL41

ciudadsalariocategoríanombrenumPersonal

numPersonal nombre, categoría, salario, numSucursal, ciudad

numSucursal ciudad

ciudad numSucursal

numSucursal, categoría salario

ciudad, categoría salario

2121

Cuando no hay información apropiada sobre el significado de los atributos se recurre al estudio de los datos (esto puede ser un problema si no constituyen una representación veraz de todos los posibles valores)

Prof. Dr. Antonio Mosquera González

Dependencias FuncionalesDependencias Funcionales

IdentificaciIdentificacióónn

qptqtt

E

wwwwss

zrzrzr

bbddff

aeaeae

DCBAA C

C A

B D

A, B E

2222

El objetivo principal de identificar un conjunto de dependencias funcionales para una relación es el de especificar el conjunto de restricciones de integridad que la relación debe satisfacer

Una restricción de integridad importante es la identificación de claves candidatas de las cuales saldrá la clave primaria

Prof. Dr. Antonio Mosquera González

Dependencias FuncionalesDependencias Funcionales

Clave PrimariaClave Primaria

Serán claves candidatas los determinantes de dependencias funcionales que determinen cada tupla de la relación (es decir, todos los atributos)

2323Prof. Dr. Antonio Mosquera González

Dependencias FuncionalesDependencias Funcionales

Clave PrimariaClave Primaria

numPersonal nombre, categoría, salario, numSucursal, ciudad

numSucursal ciudad

ciudad numSucursal

numSucursal, categoría salario

ciudad, categoría salario

A C

C A

B D

A, B E

Proceso de Proceso de NormalizaciNormalizacióónn

NormalizaciNormalizacióón del Modelo Relacionaln del Modelo RelacionalBases de DatosBases de Datos

IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de SistemasProf. Dr. Antonio Mosquera González

Page 5: Normalización

5

2525

La normalización es una técnica formal para analizar relaciones basándose en su clave principal (o claves candidatas) y en las dependencias funcionales

Prof. Dr. Antonio Mosquera González

Proceso de NormalizaciProceso de Normalizacióónn

BaseBase

Implica una serie de reglas que pueden utilizarse de modo que una base de datos pueda normalizarse hasta el grado deseado

Cuando no se satisfaga un requisito, la relación que viole dicho requisito deberá ser descompuesta en una serie de relaciones que cumplan individualmente el requisito

2626Prof. Dr. Antonio Mosquera González

Proceso de NormalizaciProceso de Normalizacióónn

Formas NormalesFormas Normales

Un esquema de relación está en una determinada forma normal si satisface un cierto conjunto de restricciones

Universo de Relaciones1FN

5FN

4FN

FNBC

3FN

2FN Cood, 1972

Boyce y Cood, 1974

Fagin, 1977

Fagin, 1979

En realidad, son ideas sencillas

2727

A medida que avanza el proceso de normalización, las relaciones tienen un formato más fuerte y son menos vulnerables a las anomalías de actualización

Prof. Dr. Antonio Mosquera González

Proceso de NormalizaciProceso de Normalizacióónn

Avance del ProcesoAvance del Proceso

Para el modelo de datos relaciones la única forma crítica es 1FN, el resto son opcionales

Para evitar la mayor parte de las anomalías de actualización es conveniente llegar a 3FN

2828Prof. Dr. Antonio Mosquera González

Proceso de NormalizaciProceso de Normalizacióónn

EjemploEjemplo

CO40CO93CO93

CO40CO93

numPropietario

TinaAntonioAntonio

350375450

10-Jun-031-Dic-0410-Ago-06

1-Sep-0210-Oct-031-Nov-05

Lágrimas, 6Mayor, 2Nueva, 5

PG4PG36PG16

AlinneCR56

TinaAntonio

350450

31-Ago-041-Sep-05

1-Jul-031-Sep-04

Lágrimas, 6Nueva, 5

PG4PG16

JuanCR76

nombrePropietario

rentafinRenta

inicioRenta

callenumPropiedad

nombreCliente

numCliente

Un cliente sólo puede alquilar un inmueble una vez

Primera Forma Primera Forma NormalNormal

NormalizaciNormalizacióón del Modelo Relacionaln del Modelo RelacionalBases de DatosBases de Datos

IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de SistemasProf. Dr. Antonio Mosquera González

3030

Primera Forma Normal (1FN): Una relación en la que la intersección de toda fila y columna contiene un valor y sólo un valor

Prof. Dr. Antonio Mosquera González

Primera Forma NormalPrimera Forma Normal

DefiniciDefinicióónn

Para conseguir Primera Forma Normal se colocan los datos repetitivos, junto con una copia de los atributos clave originales en una relación independiente

Page 6: Normalización

6

3131

ClienteAlquiler (numCliente, nombreCliente, numPropiedad, calle, inicioRenta, finRenta, renta, numPropietario, nombrePropietario)

Prof. Dr. Antonio Mosquera González

Primera Forma NormalPrimera Forma Normal

EjemploEjemplo

CO40CO93CO40CO93CO93

numPropietario

TinaAntonioTinaAntonioAntonio

350450350375450

31-Ago-041-Sep-0510-Jun-031-Dic-0410-Ago-06

1-Jul-031-Sep-041-Sep-0210-Oct-031-Nov-05

Lágrimas, 6Nueva, 5Lágrimas, 6Mayor, 2Nueva, 5

PG4PG16PG4PG36PG16

JuanJuanAlinneAlinneAlinne

CR76CR76CR56CR56CR56

nombrePropietario

rentafinRenta

inicioRenta

callenumPropiedad

nombreCliente

numCliente

3232

Cliente (numCliente, nombreCliente)

PropietarioPropiedadAlquilar (numCliente, numPropiedad, calle, inicioRenta, finRenta, renta, numPropietario, nombrePropietario)

Prof. Dr. Antonio Mosquera González

Primera Forma NormalPrimera Forma Normal

EjemploEjemplo

JuanAlinne

CR76CR56

nombreCliente

numCliente

CO40CO93CO40CO93CO93

numPropietario

TinaAntonioTinaAntonioAntonio

350450350375450

31-Ago-041-Sep-0510-Jun-031-Dic-0410-Ago-06

1-Jul-031-Sep-041-Sep-0210-Oct-031-Nov-05

Lágrimas, 6Nueva, 5Lágrimas, 6Mayor, 2Nueva, 5

PG4PG16PG4PG36PG16

CR76CR76CR56CR56CR56

nombrePropietario

rentafinRenta

inicioRenta

callenumPropiedad

numCliente

Segunda Forma Segunda Forma NormalNormal

NormalizaciNormalizacióón del Modelo Relacionaln del Modelo RelacionalBases de DatosBases de Datos

IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de SistemasProf. Dr. Antonio Mosquera González

3434

Segunda Forma Normal (2FN): Una relación que está en primera forma normal y en la que todo atributo que no sea de clave principal depende funcionalmente de manera completa de la clave principal

Prof. Dr. Antonio Mosquera González

Segunda Forma NormalSegunda Forma Normal

DefiniciDefinicióónn

Para conseguir Segunda Forma Normal se crean nuevas relaciones de modo que se eliminen los atributos que no sean de clave principal, situándolos en otra relación junto con una copia de aquella parte de la clave primaria de la que dependen funcionalmente

3535

Segunda Forma Normal (2FN): Una relación que está en primera forma normal y en la que todo atributo que no sea de clave candidata depende funcionalmente de manera completa de cualquier clave candidata

Prof. Dr. Antonio Mosquera González

Segunda Forma NormalSegunda Forma Normal

DefiniciDefinicióón Generaln General

3636

Cliente (numCliente, nombreCliente)

PropietarioPropiedadAlquilar (numCliente, numPropiedad, calle, inicioRenta, finRenta, renta, numPropietario, nombrePropietario)

Prof. Dr. Antonio Mosquera González

Segunda Forma NormalSegunda Forma Normal

EjemploEjemplo

df1: numCliente, numPropiedad inicioRenta, finRenta

df2: numCliente nombreCliente

df3: numPropiedad calle, renta, numPropietario, nombrePropitario

df4: numPropietario nombrePropietario

df5: numCliente, inicioRenta numPropiedad, calle, finRenta, renta, numPropietario, nombrePropietario

df6: numPropiedad, inicioRenta numCliente, nombreCliente, finRenta

Page 7: Normalización

7

3737

Cliente (numCliente, nombreCliente)

Alquiler (numCliente, numPropiedad, inicioRenta, finRenta)

PropietarioPropiedad (numPropiedad, calle, renta, numPropietario, nombrePropietario)

Prof. Dr. Antonio Mosquera González

Segunda Forma NormalSegunda Forma Normal

EjemploEjemplo

JuanAlinne

CR76CR56

nombreCliente

numCliente

CO40CO93CO40CO93CO93

numPropietario

TinaAntonioTinaAntonioAntonio

350450350375450

Lágrimas, 6Nueva, 5Lágrimas, 6Mayor, 2Nueva, 5

PG4PG16PG4PG36PG16

nombrePropietario

rentacallenumPropiedad

31-Ago-041-Sep-0510-Jun-031-Dic-0410-Ago-06

1-Jul-031-Sep-041-Sep-0210-Oct-031-Nov-05

PG4PG16PG4PG36PG16

CR76CR76CR56CR56CR56

finRenta

inicioRenta

numPropiedad

numCliente

Tercera Forma Tercera Forma NormalNormal

NormalizaciNormalizacióón del Modelo Relacionaln del Modelo RelacionalBases de DatosBases de Datos

IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de SistemasProf. Dr. Antonio Mosquera González

3939

Tercera Forma Normal (3FN): Una relación que está en primera y segunda forma normales y en la que ningún atributo que no sea clave principal depende transitivamente de la clave primaria

Prof. Dr. Antonio Mosquera González

Tercera Forma NormalTercera Forma Normal

DefiniciDefinicióónn

Para conseguir Tercera Forma Normal se eliminan los atributos de la relación que dependan transitivamente situándolos en una nueva relación junto con una copia del determinante

4040

Tercera Forma Normal (3FN): Una relación que está en primera y segunda forma normales y en la que ningún atributo que no sea de clave candidata depende transitivamente de ninguna clave candidata

Prof. Dr. Antonio Mosquera González

Tercera Forma NormalTercera Forma Normal

DefiniciDefinicióón Generaln General

4141Prof. Dr. Antonio Mosquera González

Tercera Forma NormalTercera Forma Normal

EjemploEjemplo

Cliente (numCliente, nombreCliente)

Alquiler (numCliente, numPropiedad, inicioRenta, finRenta)

PropietarioPropiedad (numPropiedad, calle, renta, numPropietario, nombrePropietario)

df1: numCliente, numPropiedad inicioRenta, finRenta

df2: numCliente nombreCliente

df3: numPropiedad calle, renta, numPropietario, nombrePropitario

df4: numPropietario nombrePropietario

df5’: numCliente, inicioRenta numPropiedad, finRenta

df6’: numPropiedad, inicioRenta numCliente, finRenta

4242Prof. Dr. Antonio Mosquera González

Tercera Forma NormalTercera Forma Normal

EjemploEjemplo

Cliente (numCliente, nombreCliente)

Alquiler (numCliente, numPropiedad, inicioRenta, finRenta)

Propiedad (numPropiedad, calle, renta, numPropietario)

Propietario (numPropietario, nombrePropietario)

JuanAlinne

CR76CR56

nombreCliente

numCliente

CO40CO93CO40CO93CO93

numPropietario

TinaAntonioTinaAntonioAntonio

nombrePropietario

31-Ago-041-Sep-0510-Jun-031-Dic-0410-Ago-06

1-Jul-031-Sep-041-Sep-0210-Oct-031-Nov-05

PG4PG16PG4PG36PG16

CR76CR76CR56CR56CR56

finRenta

inicioRenta

numPropiedad

numCliente

CO40CO93CO40CO93CO93

numPropietario

350450350375450

Lágrimas, 6Nueva, 5Lágrimas, 6Mayor, 2Nueva, 5

PG4PG16PG4PG36PG16

rentacallenumPropiedad