ADMBD - 02 Normalizacion

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 37

NORMALIZACIÓN

Normalización es el proceso de convertir una relación


(Tabla) en otras de forma tal que se cumplan ciertas
restricciones.

El proceso de normalización consiste básicamente en


obtener un conjunto de tablas, dichas tablas se
obtendrán utilizando proyecciones de la tabla original.

Una característica fundamental de dichas proyecciones


es que deben ser sin pérdida ni ganancia, esto se refiere
a que debe ser posible deducir de las tablas
proyectadas la información original, ni más ni menos.
Ing.
11/12/2009
Juan Carlos TORRES LOZANO
FORMAS NORMALES
Dentro de la literatura se han definido diversas formas
normales, pero las más difundidas se ilustran en la
siguiente figura:
1NF
2NF

3NF/BCNF
4NF
5NF

DKNF

Ing.
11/12/2009
Juan Carlos TORRES LOZANO
PRIMERA FORMA NORMAL (1FN)
Una relación esta en primera forma normal (1FN) si
(léase si solo si) todos los dominios base de los campos
tienen valores atómicos. Es decir, un campo solo tiene un
valor y no un conjunto de valores.

Tomemos como ejemplo el caso de una relación para


llevar la información de materias y calificaciones de
alumnos, un posible diseño sería el siguiente:

MATRICULA CALIFS
331678 CB-001 10, MA-001 9
337890 FS-001 7, HD-002 8
337777 CB-002 7, CS-056 8
446789 MA-031 7, CB-072 8, HD-002 9

Ing.
11/12/2009
Juan Carlos TORRES LOZANO
Observando la relación anterior nos damos cuenta que el
dominio del campo MATRICULA si cumple la característica de
tener valores atómicos, pero el campo CALIFS tiene el
problema de que el dominio utilizado proporciona un
conjunto de valores, es decir, no está en
1FN. Por lo tanto, se deduce que toda relación
normalizada se encuentra en 1FN.
Un posible mejor diseño sería entonces:
MATRICULA CLAVE CALIF
331678 CB-001 10
331678 MA-001 9
337890 FS-001 7
337890 HD-002 8
337777 CB-002 7
337777 CS-056 8
446789 MA-031 7
446789 CV-072 8

Ing. Juan Carlos TORRES LOZANO


Revisando esta relación observamos que todos los
dominios de los campos proporcionan valores atómicos,
es decir, ninguno de los campos tiene un conjunto de
valores; por lo tanto esta relación ya está en 1FN.

Ing. Juan Carlos TORRES LOZANO


SEGUNDA FORMA NORMAL (2FN)
Una relación está en segunda forma normal sii está en
1FN y además cumple la condición de que cada
atributo no-llave depende de la llave primaria.

La llave primaria es el conjunto mínimo de atributos que


cumplen la característica de unicidad y que se escogió
para ser la llave.

Si existe más de un conjunto mínimo de atributos que


cumplen la unicidad, al conjunto escogido como llave se
le llama llave primaria y a los demás conjuntos se les
llama llaves candidatas.

Ing. Juan Carlos TORRES LOZANO


Supongamos que tenemos una relación que permite
llevar la información de los proveedores de una empresa
junto con las partes y la cantidad en la que son
suministradas:
NUM_PROV NOM_PROV CIUDAD ESTATUS NO_PARTE CANTIDAD
S1 JUAN ACAPULCO 2 P1 10
S1 JUAN ACAPULCO 2 P2 10
S2 PEDRO MERIDA 4 P1 200
S2 PEDRO MERIDA 4 P3 10
S2 PEDRO MERIDA 4 P5 300
S3 ANA TIJUANA 5 P3 200
S3 ANA TIJUANA 5 P4 10
S3 ANA TIJUANA 5 P5 300
S4 RENE DF 1 P1 200
S5 PATRICIA REYNOSA 2 P1 10
S5 PATRICIA REYNOSA 2 P4 200
S6 RENATA OAXACA 2 P5 10
Ing. Juan Carlos TORRES LOZANO
Considerando que la llave NOM_PROV
primaria es NUM_PROV,
NUM_PROV CIUDAD
NUM_PARTE,
tendríamos las siguientes relaciones ESTATUS
de dependencia entre los campos
no llave y los campos de la llave
candidato: CANTIDAD
NUM_PARTE

De la figura anterior podemos deducir que:


Los atributos NOM_PROV, CIUDAD y ESTATUS dependen de
NUM_PROV, mientras que el atributo CANTIDAD depende de
NUM_PROV + NUM_PARTE.
De lo anterior podemos concluir que la relación no está en 2NF (pero si
está en 1FN) debido a que no todos los campos llave dependen de la
llave primaria, pues existen dependencias de otros atributos no-llave como
lo es el atributo NUM_PARTE del cual depende el valor de
CANTIDAD, dicho de otro modo, la CANTIDAD depende de
NUM PARTE.
Ing. Juan Carlos TORRES LOZANO
Para normalizar esta relación es necesario realizar una
proyección dando como resultado una tabla con los
atributos que se muestran a continuación a la cual
podríamos denominar Tabla S.

NOM_PROV
NUM_PROV CIUDAD
NUM_PROV NUM_PROV CIUDAD ESTATUS
ESTATUS
S1 S1 ACAPULCO 2
S2 S2 MERIDA 4
S3 S3 TIJUANA 5
S4 S4 DF 1
S5 S5 REYNOSA 2
S6 S6 OAXACA 2

Ing. Juan Carlos TORRES LOZANO


Además obtendremos una tabla más denominada tabla
SP la cual se muestra a continuación:

NUM_PROV NUM_PARTE CANTIDAD


S1 P1 10
S1 P2 10
S2 P1 200
S2 P3 10
S2 P5 300
S3 P3 200
S3 P4 10
S3 P5 300
S4 P1 200
NUM_PROV S5 P1 10
S5 P4 200
S6 P5 10

CANTIDAD
NUM_PARTE

Ing. Juan Carlos TORRES LOZANO


Tercera Forma Normal (3FN)
Una relación esta en 3FN si está en 2FN y además se
cumple que todos los atributos de la relación no
dependen transitivamente de la llave primaria.
Es decir no se da la situación de que un campo dependa
de la llave y otro dependa del primero.
Tomando como ejemplo la tabla siguiente:
NUM_PROV NUM_PROV CIUDAD ESTATUS
S1 S1 ACAPULCO 2
S2 S2 MERIDA 4
S3 S3 TIJUANA 5
S4 S4 DF 1
S5 S5 REYNOSA 2
S6 S6 OAXACA 2

Ing. Juan Carlos TORRES LOZANO


Haciendo un análisis de los atributos de la relación anterior,
podemos observar que el atributo ESTADO depende realmente
de CIUDAD y no directamente del NUM_PROV, es decir se
tiene la siguiente relación de dependencia:

NOM_PROV
Para poder normalizar la relación
NUM_PROV CIUDAD anterior es necesario realizar dos
proyecciones y las tablas resultantes
serian:
ESTATUS

NUM_PROV NOM_PROV CIUDAD CIUDAD ESTADO


S1 JUAN ACAPULCO ACAPULCO 2
S2 PEDRO MERIDA
MERIDA 4
S3 ANA MERIDA
REYNOSA 6
S4 RENE ACAPULCO
S5 PATRICIA REYNOSA
S6 RENATA REYNOSA

Ing. Juan Carlos TORRES LOZANO


Caso de estudio sobre
Normalización BD

Ing. Juan Carlos TORRES LOZANO


Al inicio del curso se discutió la forma de diseñar
la estructura de base de datos utilizando tablas y
campos, a fin de evitar problemas como la
duplicación innecesaria de datos y la
imposibilidad de identificar de forma exclusiva los
registros.

Aunque no se pidió la normalización en aquel


entonces, que fue el concepto utilizado. En esta
sección se explica la normalización con más
detalle y cómo utilizarlo para crear bien una
estructura de bases de datos.
Ing. Juan Carlos TORRES LOZANO
La normalización consiste en una serie de
directrices que ayuden a orientar en la creación
de una buena estructura de base de datos.
Tenga en cuenta que son directrices y no reglas
a seguir ciegamente.

El diseño de bases de datos es, probablemente,


tanto el arte como es la ciencia, y su
propio sentido común es importante, también.

Ing. Juan Carlos TORRES LOZANO


Ing. Juan Carlos TORRES LOZANO
Primera forma normal
Al inicio del curso caminó a través de algunos pasos
básicos para crear una buena organización de la
estructura de la base de datos. En particular, se dijo que
usted debe hacer lo siguiente:
❑ Definir los datos necesarios, porque se convierten en
las columnas de una tabla.
❑ Asegúrese de que no hay repetición de grupos de
datos.
❑ Asegúrese de que hay una clave primaria.
Estas normas son aquellas de la primera forma normal,
por lo que has cubierto primera forma normal sin siquiera
saberlo.
Ing. Juan Carlos TORRES LOZANO
En la base de datos del club cine, ya cumple
con la primera forma normal, pero para refrescar
la memoria, aquí se da un resumen breve de la
primera forma normal.

En primer lugar, debe definir los elementos de


información. Esto significa mirar a los datos que
deben almacenarse, la organización de los
datos en columnas, definir qué tipo de dato
cada columna contiene, y por último, poner en
columnas relacionadas con los de su propia
tabla.
Ing. Juan Carlos TORRES LOZANO
El siguiente paso es asegurarse de que no hay
repetición de grupos de los datos. Un ejemplo de
cómo los registros tienen el aspecto siguiente en la
tabla para la 1FN, se muestra a continuación:

Ing. Juan Carlos TORRES LOZANO


Segunda forma normal
Primera forma normal requiere que todas las tablas deben tener
una clave primaria. Esta clave primaria puede constar de uno o
más columnas. La clave principal es el identificador único de
ese registro, y la segunda forma normal establece que no debe
haber dependencias parciales de cualquiera de las columnas
de la clave primaria.
Por ejemplo se puede crear una tabla llamada ActorFilms con
las siguientes columnas:

Ing. Juan Carlos TORRES LOZANO


Solución para que la tabla cumpla la 2FN.

I. Primero creamos una tabla que almacene las películas.

II. Segundo creamos una tabla que almacene los detalles de los autores.

Ing. Juan Carlos TORRES LOZANO


III . Finalmente creamos una tercera tabla que almacene los FilmIds Y
ActorIds , para saber que actores protagonizaron que película.

Ahora las tablas están en segunda forma normal.


Puedes buscar en cada tabla y se puede ver que
todas las columnas son vinculado a la clave principal,
salvo que las dos columnas en la tercera tabla
componen la clave primaria.

Ing. Juan Carlos TORRES LOZANO


Tercera forma normal

Tercera forma normal es un poco más opcional, y su uso


depende de las circunstancias.

Una tabla está en tercera forma normal cuando se cumplan las


siguientes condiciones:
❑ Es en la segunda forma normal.
❑ Todos los campos no primarios son dependientes de la clave
primaria.

La dependencia de campos no primarios se sitúa entre los


datos.

Ing. Juan Carlos TORRES LOZANO


La dependencia de campos no primarios se sitúa entre los datos. Por
ejemplo, nombre de calle, ciudad, estado son vinculados al código postal.
Por ejemplo, la calle, ciudad, y estado, tienen asignada un único código
postal. La dependencia del código postal y la dirección se llama una
dependencia transitiva.

Eche un vistazo a la base de datos del Cine Club. ¿Puedes ver que esta
tabla no está en la tercera forma normal?
Echa un vistazo a la tabla MemberDetails:

Ing. Juan Carlos TORRES LOZANO


La Calle, Ciudad, Estado y todos los campos tienen
una dependencia transitiva en el campo de Código
postal. Para cumplir con tercera forma normal, todo lo
que necesita hacer es mover la calle, Ciudad y Estado
en sus ámbitos propios de otra tabla, que usted puede
llamar a la tabla de Código Postal:

Tabla: Código Postal

Ing. Juan Carlos TORRES LOZANO


A continuación, modificar la tabla MemberDetails y eliminar los
campos Calle, Ciudad, Estado, lo que deja el campo Código
como una manera de hacer coincidir la dirección que figura en
el cuadro Código postal:

Tabla MemberDetails:

Ing. Juan Carlos TORRES LOZANO


Las ventajas de eliminar las dependencias libres son
principalmente de dos tipos.
En primer lugar, la cantidad de datos se reduce y la
duplicación, y por tanto, se convierte la base de datos
más pequeña. Dos o más personas que viven en la
misma calle en la misma ciudad en la misma ciudad
tienen el mismo código postal.

En lugar de almacenar todos los datos en más de una


vez, almacenar sólo una vez en la tabla Código
postal para que el Código postal se almacene solo
una vez.

Ing. Juan Carlos TORRES LOZANO


La segunda ventaja es la integridad de los datos.
Cuando los datos duplicados cambian hay un gran
riesgo de actualización de sólo algunos de los datos,
especialmente si se extiende en una serie de lugares
diferentes en la base de datos.

Si la dirección y código postal de los datos se


almacenan en tres o cuatro tablas diferentes, entonces
cualquier cambio de los códigos postales tendría que
recorrer todos los registros en las tres o cuatro tablas.
Sin embargo, si se almacenan todos en una sola tabla,
entonces usted necesita cambiar en un solo lugar.
Hay un aspecto negativo, el cual añade complejidad y
una menor eficiencia.
Ing. Juan Carlos TORRES LOZANO
FORMA NORMAL DE BOYCE-CODD (FNBC)
FNBC hace lo siguiente.
❑ Una tabla debe estar en 3FN.
❑ Una tabla puede tener sólo una clave candidata.

Una clave candidata tiene el potencial para ser la clave


principal de una tabla. En una tabla no se permite más de
una clave principal, porque la integridad referencial se
exige como tal.

Sería imposible para comprobar las claves foráneas contra


más de una clave principal. La integridad referencial sería
automáticamente inválida, inaplicable, y, por tanto,
no habría ningún modelo de base de datos relacional.
Ing. Juan Carlos TORRES LOZANO
FNBC es un tanto rara, porque es un poco como un
caso especial de 3FN.

FNBC exige que cada determinante en una tabla es


una clave candidata. Si sólo hay una clave candidata,
3FN y FNBC son los mismos. ¿Qué significa esto? Un
factor determinante es un campo cuyo valor puede
depender de otros campos por sus valores. Y algunas
tablas pueden ser identificados de forma unívoca por
más de un campo o combinación de campos.

Cada uno de estos es una clave principal potencial que


puede identificar los registros en una tabla, y, por tanto,
son claves candidatas, o potenciales claves principales.
Ing. Juan Carlos TORRES LOZANO
La división de
las tablas como
se muestra en la
Figura 1, puede
dar lugar a
cierta
ineficiencia
grave como
resultado de
demasiadas
tablas en el
código SQL
cuando quiera
unirse en una
consulta.
Es una locura
FNBC en el
caso de la
figura 1, pero
eso nos dice
FNBC, QUE LE
PODEMOS
HACER….

Fig 1. Uso FNBC para separar todas las claves candidatas en tablas separadas.
Ing. Juan Carlos TORRES LOZANO
Fig 2. Un tipo común de transformación FNBC
Ing. Juan Carlos TORRES LOZANO
Fig 3. Los datos para la transformación FNBC
Ing. Juan Carlos TORRES LOZANO
Ing. Juan Carlos TORRES LOZANO
El punto sobre la FNBC es que una clave candidata es,
por definición, una clave única, y por lo tanto una clave
principal potencial.

Si una tabla contiene más de una clave candidata


(clave principal), tiene un problema, según FNBC. No
estoy de acuerdo! FNBC divide una tabla en varias
tablas para asegurarse de que no haya ninguna tabla
que posea más de una clave primaria potencial.

Este es mi entendimiento de FNBC. En mi opinión,


FNBC es exagerada para un entorno comercial.

Ing. Juan Carlos TORRES LOZANO


En esencia, FNBC prohíbe a una tabla de tener dos
posibles claves primaria. ¿Por qué? Y qué! Esto no es
una dura y rápida norma comercial, pero es mas bien
un requisito purista, desde una perspectiva matemática.
En otras palabras, es bueno, pero no es cool
comercialmente.

Ing. Juan Carlos TORRES LOZANO


Ing. Juan Carlos TORRES LOZANO

También podría gustarte