Está en la página 1de 10

EJERICICIO

TABLA: Factura
SucursalYNumFactura FechaFactura FormaPago CodCliente NomCliente CodArticulo NomArticulo CanArticulo PrecioUnitario Subtotal TotalFactura
01-500 1/01/06 E 01 ALVAREZ 01 LAPIZ 3 1.25 3.75 48.20
01-500 1/01/06 E 01 ALVAREZ 02 GOMA 6 0.75 4.50 48.20
01-500 1/01/06 E 01 ALVAREZ 10 HOJAS 8 5.00 40.00 48.20
01-501 2/01/06 CC 107 CASTRO 08 COMPAS 4 4.00 16.00 16.00
02-500 3/01/06 E 110 LIZ 20 REGLA 2 2.45 4.90 14.90
02-500 3/01/06 E 110 LIZ 10 HOJAS 2 5.00 10.00 14.90

1 FN (ATRIBUTOS QUE CONTIENEN VALORES ATOMICOS Y MONOVALENTES)

TABLA: Factura
Sucursal NumFactura FechaFactura FormaPago CodCliente NomCliente CodArticulo NomArticulo CanArticulo PrecioUnitario Subtotal TotalFactura
01 500 1/01/06 E 01 ALVAREZ 01 LAPIZ 3 1.25 3.75 48.20
01 500 1/01/06 E 01 ALVAREZ 02 GOMA 6 0.75 4.50 48.20
01 500 1/01/06 E 01 ALVAREZ 10 HOJAS 8 5.00 40.00 48.20
01 501 2/01/06 CC 107 CASTRO 08 COMPAS 4 4.00 16.00 16.00
02 500 3/01/06 E 110 LIZ 20 REGLA 2 2.45 4.90 14.90
02 500 3/01/06 E 110 LIZ 10 HOJAS 2 5.00 10.00 14.90

Datos repetidos.¿?
Estos datos deben presentarse una sola vez en la estructura normalizada en 1FN. Entonces, Sucursal, NumFactura, FechaFactura, FormaPago, CodCliente,
NomCliente y TotalFactura deben figurar una sola vez.
TABLA: Factura
Sucursal NumFactura FechaFactura FormaPago CodCliente NomCliente CodArticulo NomArticulo CanArticulo PrecioUnitario Subtotal TotalFactura
01 500 1/01/06 E 01 ALVAREZ 01 LAPIZ 3 1.25 3.75 48.20
01 500 1/01/06 E 01 ALVAREZ 02 GOMA 6 0.75 4.50 48.20
01 500 1/01/06 E 01 ALVAREZ 10 HOJAS 8 5.00 40.00 48.20
01 501 2/01/06 CC 107 CASTRO 08 COMPAS 4 4.00 16.00 16.00
02 500 3/01/06 E 110 LIZ 20 REGLA 2 2.45 4.90 14.90
02 500 3/01/06 E 110 LIZ 10 HOJAS 2 5.00 10.00 14.90

Si eliminamos las filas de ocurrencia que se repiten se perderán el TotalFactura.

Solución:

Para eliminar la redundancia y no perder el detalle de TotalFactura partimos la Tabla Factura (1 para datos repetidos y otra para datos no
repetidos)

TABLA: Factura
Sucursal NumFactura FechaFactura FormaPago CodCliente NomCliente TotalFactura
01 500 1/01/06 E 01 ALVAREZ 48.20
01 500 1/01/06 E 01 ALVAREZ 48.20
01 500 1/01/06 E 01 ALVAREZ 48.20
01 501 2/01/06 CC 107 CASTRO 16.00
02 500 3/01/06 E 110 LIZ 14.90
02 500 3/01/06 E 110 LIZ 14.90

TABLA: DetalleFactura
CodArticulo NomArticulo CanArticulo PrecioUnitario Subtotal
01 LAPIZ 3 1.25 3.75
02 GOMA 6 0.75 4.50
10 HOJAS 8 5.00 40.00
08 COMPAS 4 4.00 16.00
20 REGLA 2 2.45 4.90
10 HOJAS 2 5.00 10.00
Ahora si podemos Eliminar redundancias de tabla 1 Factura

TABLA: Factura
Sucursal NumFactura FechaFactura FormaPago CodCliente NomCliente TotalFactura
01 500 1/01/06 E 01 ALVAREZ 48.20 ELIMINAR
01 500 1/01/06 E 01 ALVAREZ 48.20
01 500 1/01/06 E 01 ALVAREZ 48.20
01 501 2/01/06 CC 107 CASTRO 16.00
02 500 3/01/06 E 110 LIZ 14.90
ELIMINAR
02 500 3/01/06 E 110 LIZ 14.90

TABLA: Factura
Sucursal NumFactura FechaFactura FormaPago CodCliente NomCliente TotalFactura
01 500 1/01/06 E 01 ALVAREZ 48.20
01 501 2/01/06 CC 107 CASTRO 16.00
02 500 3/01/06 E 110 LIZ 14.90

AHORA SURGE LA NECESIDAD DE SABER COMO ESTAN LIGADOS AMBAS TABLAS

Relacion: Factura
PK
Sucursal NumFactura FechaFactura FormaPago CodCliente NomCliente TotalFactura
01 500 1/01/06 E 01 ALVAREZ 48.20
01 501 2/01/06 CC 107 CASTRO 16.00
02 500 3/01/06 E 110 LIZ 14.90

Y LA PREGUNTA QUE RELACION HAY ENTRE LAS DOS TABLAS SEPARADAS SI NO HAY NADA QUE LAS UNA. DEBEMOS INCORPORAR DENTRO DE LA
RELACION DetalleFactura LOS ATRIBUTOS DE PK DE LA RELACION FACTURA.
Relacion DetalleFactura
PK
Sucursal NumFactura CodArticulo NomArticulo CanArticulo PrecioUnitario Subtotal
01 500 01 LAPIZ 3 1.25 3.75
01 500 02 GOMA 6 0.75 4.50
01 500 10 HOJAS 8 5.00 40.00
01 501 08 COMPAS 4 4.00 16.00
02 500 20 REGLA 2 2.45 4.90
02 500 10 HOJAS 2 5.00 10.00

Columnas agregadas para


Establecer relación con Factura
Si bien hay redundancia de datos, ésta es una redundancia controlada y necesaria para establecer el estado de relaciones y de dependencias entre los
datos, que no se debe perder en la creación del nuevo modelo

Ahora bien hay que tomar un atributo nativo para hacer una combinación única.

Relacion: Factura
PK
Sucursal NumFactura FechaFactura FormaPago CodCliente NomCliente TotalFactura
01 500 1/01/06 E 01 ALVAREZ 48.20
01 501 2/01/06 CC 107 CASTRO 16.00
02 500 3/01/06 E 110 LIZ 14.90

Clave primaria compuesta Relacion DetalleFactura


PK
Sucursal NumFactura CodArticulo NomArticulo CanArticulo PrecioUnitario Subtotal
01 500 01 LAPIZ 3 1.25 3.75
01 500 02 GOMA 6 0.75 4.50
01 500 10 HOJAS 8 5.00 40.00
01 501 08 COMPAS 4 4.00 16.00
02 500 20 REGLA 2 2.45 4.90
02 500 10 HOJAS 2 5.00 10.00
FK

Clave foránea hacia la relación Factura


Factura (Sucursal, NumFactura, FechaFactura, FormaPago, CodCliente, NomCliente, TotalFactura)

DetalleFactura (Sucursal, NumFactura CodArticulo, NomArticulo, CanArticulo, PrecioUnitario, Subtotal)

SEGUNDA FORMA NORMAL (2FN)


Una relación se encuentra en segunda forma normal si, y solo si, se encuentra en 1FN y si todos los atributos no clave dependen por completo de la clave.

Relación Factura todos los atributos no clave dependen de la clave primaria.

En cambio en la Relación DetalleFactura hay atributos no clave que no dependen de su totalidad de la clave primaria.

Relacion DetalleFactura
PK
Sucursal NumFactura CodArticulo NomArticulo CanArticulo PrecioUnitario Subtotal
01 500 01 LAPIZ 3 1.25 3.75
01 500 02 GOMA 6 0.75 4.50
01 500 10 HOJAS 8 5.00 40.00
01 501 08 COMPAS 4 4.00 16.00
02 500 20 REGLA 2 2.45 4.90
02 500 10 HOJAS 2 5.00 10.00
FK Atributos no Clave

Atributos no primarios asociados al CodArticulo

Como se soluciona.
Ahora bien hay que tomar un atributo nativo para hacer una combinación única.

Relación: Factura
PK
Sucursal NumFactura FechaFactura FormaPago CodCliente NomCliente TotalFactura
01 500 1/01/06 E 01 ALVAREZ 48.20
01 501 2/01/06 CC 107 CASTRO 16.00
02 500 3/01/06 E 110 LIZ 14.90

Clave primaria compuesta

Relación DetalleFactura
PK
Sucursal NumFactura CodArticulo CanArticulo PrecioUnitario Subtotal
01 500 01 3 1.25 3.75
Relación Articulo
01 500 02 6 0.75 4.50
PK
01 500 10 8 5.00 40.00 CodArticulo NomArticulo PrecioUnitario
01 501 08 4 4.00 16.00 01 LAPIZ 1.25
02 500 20 2 2.45 4.90 02 GOMA 0.75
02 500 10 2 5.00 10.00 10 HOJAS 5.00
FK FK 08 COMPAS 4.00
20 REGLA 2.45

Clave foránea hacia la relación Factura


Clave primaria simple

Clave foránea hacia la relación Articulo


Factura (Sucursal, NumFactura, FechaFactura, FormaPago, CodCliente, NomCliente, TotalFactura)

DetalleFactura (Sucursal, NumFactura CodArticulo, CanArticulo, PrecioUnitario, Subtotal)

Articulo (CodArticulo, NomArticulo, PrecioUnitario)

TERCERA FORMA NORMAL

Una relación se encuentra en Tercera Forma Normal si, y solo si, se encuentra en 2FN, y si los atributos no clave dependen de forma no transitiva
de la clave primaria.

Entonces, se deberá encontrar, dentro de la relación, un subconjunto de atributos con dependencia transitiva, que ninguno de ellos pertenezca a
la clave primaria y que, al cambiar el valor de un atributo, necesariamente cambiarán su valor otros atributos también.

Relación: Factura
PK
Sucursal NumFactura FechaFactura FormaPago CodCliente NomCliente TotalFactura
01 500 1/01/06 E 01 ALVAREZ 48.20
01 501 2/01/06 CC 107 CASTRO 16.00
02 500 3/01/06 E 110 LIZ 14.90
Esta situación se expone en la relación “Factura”, de la relación anterior, en el subconjunto formado por los atributos “Código del cliente” y
“Nombre del cliente”. Sin duda, hay una dependencia funcional entre ambos atributos; si cambia el identificador del cliente, necesariamente
cambiará su nombre.

Solución: Aplicando la tercera forma normal.

Se aparta el atributo que está ligado con una dependencia funcional al otro; en este caso, “Nombre del cliente” de la relación “Factura”. Para ello,
se creará una nueva relación denominada “Clientes” en la que alojará el “Nombre del cliente”. Siempre se mantendrá la dependencia funcional, lo
que obligará, también, a introducir, en esta nueva relación, el identificador del cliente, “Código del cliente”.

Relación: Factura Relación Cliente


PK PK
Sucursal NumFactura FechaFactura FormaPago CodCliente NomCliente TotalFactura CodCliente NomCliente
01 500 1/01/06 E 01 ALVAREZ 48.20 01 ALVAREZ
01 501 2/01/06 CC 107 CASTRO 16.00 107 CASTRO
02 500 3/01/06 E 110 LIZ 14.90 110 LIZ
FK

Clave foránea hacia la relación Cliente


Relación: Factura Relación Cliente
PK PK
Sucursal NumFactura FechaFactura FormaPago CodCliente TotalFactura CodCliente NomCliente
01 500 1/01/06 E 01 48.20 01 ALVAREZ
01 501 2/01/06 CC 107 16.00 107 CASTRO
02 500 3/01/06 E 110 14.90 110 LIZ
FK
Clave primaria compuesta

Relación DetalleFactura
PK
Sucursal NumFactura CodArticulo CanArticulo PrecioUnitario Subtotal
01 500 01 3 1.25 3.75
Relación Articulo
01 500 02 6 0.75 4.50
PK
01 500 10 8 5.00 40.00 CodArticulo NomArticulo PrecioUnitario
01 501 08 4 4.00 16.00 01 LAPIZ 1.25
02 500 20 2 2.45 4.90 02 GOMA 0.75
02 500 10 2 5.00 10.00 10 HOJAS 5.00
FK FK 08 COMPAS 4.00
20 REGLA 2.45

Clave foránea hacia la relación Factura


Clave primaria simple

Clave foránea hacia la relación Articulo


ESQUEMA RELACIONAL

Cliente (CodCliente, NomCliente)

Factura (Sucursal, NumFactura, FechaFactura, FormaPago, CodCliente, TotalFactura)

DetalleFactura (Sucursal, NumFactura CodArticulo, CanArticulo, PrecioUnitario, Subtotal)

Articulo (CodArticulo, NomArticulo, PrecioUnitario)

También podría gustarte