Está en la página 1de 10

Departamento de Informtica Ctedra de Base de Datos I

Facultad Politcnica Seccin NA


Universidad Nacional de Asuncin Docente: os !o"as Dvalos
Unidad #: Dise$o de %ases de datos relacionales
#&'& Normali(acin
Documentos de consulta
Por Jos Rojas Dvalos Basado en Concepcin y Diseo de Bases de Datos Adoracin de MiguelMario Piattini
Pro%lemas del es)uema relacional
!l es"ue#a relacional$ cual"uiera sea la %or# en la "ue se lleg a ella & o'servacin directa o
diseo en dos %ases($ co#o consecuencia de una percepcin %alsa o inco#pleta de la realidad$
puede presentar algunos pro'le#as$ a sa'er)
* +ncapacidad para representar ciertos ,ec,os
* Redundancias y$ por tanto$ posi'ilidad de inco,erencias
* A#'ig-edades$
* Perdida de in%or#acin
* Perdida de dependencias %uncionales
. Base de datos "ue no re%lejan el #undo real.
/leve#os esto a un eje#plo para co#prender #ejor los pro'le#as posi'les. /a ta'la #ostrada a
continuacin registra los datos de clientes y pedidos de productos)
clid clape clno# pid0 pno#0 pprec0 pi#g0 pid1 pno#1 pprec1 pi#g1 pdnro pd%ec pdcant ceno#
Donde)
clid es id del cliente$
clape es apellido del cliente$
clno# es no#'re del cliente$
pid0 es id del producto0$
pno#0 es no#'re del producto0$
pprec0 es precio del producto0$
pi#g0 es i#agen del producto0$
pid1 es id del producto1$
pno#1 es no#'re del producto1$
pprec1 es precio del producto1$
pi#g1 es i#agen del producto1$
pdnro es n2#ero de pedido$
pde%ec es %ec,a del pedido$
pdcant es cantidad del pedido y
ceno# es no#'re de la co#pa3a por #edio de la cual se env3a el pedido.
4i o'serva#os con atencin$ encontrare#os varios de los pro'le#as #encionados)
005 560001 10)01)57 #ediaJR8JA4D%puna150191'd0naunidad:docu#entosdeconsultad5:951.odt
Departamento de Informtica Ctedra de Base de Datos I
Facultad Politcnica Seccin NA
Universidad Nacional de Asuncin Docente: os !o"as Dvalos
Unidad #: Dise$o de %ases de datos relacionales
#&'& Normali(acin
Documentos de consulta
clid clape clno# pid0 pno#0 pprec0 pi#g0 pid1 pno#1 pprec1 pi#g1 pdnro pd%ec pdcant ceno#
0 ;onse <ri 0 4al 1555 4al.jpg 1 A=ucar >555 A=.jpg 0 115001 > !nvios
1 Rojas Marga : Carne 15555 Car.jpg > Papa 6555 pa.jpg 1 1:5101 6 /levo
0 ;onse <ri : Carne 15555 Car.jpg > Papa 6555 pa.jpg : 1:5101 7 /levo
: Rojas Clara ? Pan :555 Pan.jpg 05 <as ?5555 <a.jpg > 5@5@01 0 8,o
!edundancia)
!n la #is#a linea se repetir3an los datos de dos productos di%erentes
Por cada pedido ,ay "ue repetir los no#'res y apelidos
4e repite el no#'re de la co#pa3a
Perdida de informacin) Ao sa'e#os si pdcant &cantidad de producto pedido( si a cual producto se
re%iere.
Pro%lemas de modificacin) Pode#os ca#'iar el no#'re y apellido en una %ila y olvidarnos de
ca#'iar en otra. !n la pri#era %ila ca#'ia#os B<riC por B<riseldaC y B;onseC por B;onsecaC. Aos
olvida#os de ca#'iar en la %ila :.
Pro%lemas de insercin) Para agregar los datos de un pedido$ ,ay "ue cargar necesaria#ente los
datos del cliente$ para #antener la consistencia de datos dentro de la ta'la. !sto ta#'in da ocasin
a "ue se o#ita o se cargue #al alg2n dato del cliente a%ectado por la carga de pedido. Por eje#plo$
una de las %ilas "ue corresponde a un pedido est al#acenada as3)
1 Marga Rojas : Carne 15555 Car.jpg > Papa 6555 pa.jpg 1 1:5101 6 /levo
4i agrega#os un nuevo pedido)
1 *ar+u Rojas 7 /ec,e 6555 /ec.jpg D 4oja D555 so.jpg 6 5D5D01 05 8,o
Co#o ve#os se co#eti un error en la carga del no#'re.
Pro%lemas de %orrado) 4i se "uiere 'orrar sola#ente un pedido y #antener los datos del cliente$
ser3a i#posi'le.
Eea#os en el eje#plo)
: Clara Rojas ? Pan :555 Pan.jpg 05 <as ?5555 <a.jpg > 5@5@01 0 8,o
4i "uere#os eli#inar los datos del 2nico #ovi#iento de Clara !o"as nos "uedar3a#os sin datos de
ese cliente$ pues tendr3a#os "ue eli#inar todo la %ila.
105 560001 10)01)57 #ediaJR8JA4D%puna150191'd0naunidad:docu#entosdeconsultad5:951.odt
Departamento de Informtica Ctedra de Base de Datos I
Facultad Politcnica Seccin NA
Universidad Nacional de Asuncin Docente: os !o"as Dvalos
Unidad #: Dise$o de %ases de datos relacionales
#&'& Normali(acin
Documentos de consulta
,acia la normali(acin
/os eje#plos nos de#uestran "ue tanto la actuali=acin de los #ovi#ientos$ co#o la de los datos
de clientes$ nos puede o'ligar a actuali=ar #as de una %ila$ dejando la integridad en #anos de los
usuarios$ ade#s de #uc,os otros pro'le#as potenciales.
!sta relacin)
clid clno# clape pid0 pno#0 pprec0 pi#g0 pid1 pno#1 pprec1 pi#g1 pdnro pd%ec pdcant ceno#
0 <ri ;onse 0 4al 1555 4al.jpg 1 A=ucar >555 A=.jpg 0 115001 > !nvios
1 Marga Rojas : Carne 15555 Car.jpg > Papa 6555 pa.jpg 1 1:5101 6 /levo
0 <ri ;onse : Carne 15555 Car.jpg > Papa 6555 pa.jpg : 1:5101 7 /levo
: Clara Rojas ? Pan :555 Pan.jpg 05 <as ?5555 <a.jpg > 5@5@01 0 8,o

de%inida co#o eje#plo atenta contra un principio 'sico en todo diseo)
HECHOS DISTINTOS SE DEBEN ALMACENAR EN OBJETOS DIFERENTES
/os #todos de diseo son ,erra#ientas "ue ayudan a #ini#i=ar grande#ente estos pro'le#as
planteados. 4in e#'argo ante las posi'les dudas de la valide= de un #odelo relacional$ se
reco#ienda aplicar a dic,o #odelo un #todo %or#al de deteccin de los errores y generar otro
es"ue#a de relaciones "ue cu#plan los re"uisitos. !se #todo %or#al$ constituye la teora de la
normalizacin . !sta teor3a trata de evitar las redundancias y los pro'le#as de actuali=acin. As3$ en
lugar de la relacin del eje#plo$ se podr3a ,a'er diseado el siguiente es"ue#a relacional)
cliente-clid. clape. clnom/
producto-pid. pnom. pprec. pim+/
pedido-pdnro. pdfec. pid. pdcant&clid/
ciaenvio-ceid.cenom%re/
Co#o se ve$ se ,a seguido estricta#ente el principio 'sico anterior#ente enunciado$ separando
,ec,os distintos en relaciones distintas$ de %or#a "ue cada uno de estos es"ue#as recoge un ,ec,o
'ien deter#inado y concreto del #undo real$ con sus correspondientes atri'utos. /a nor#ali=acin
es el proceso de si#pli%icar la relacin entre los colu#nas de una %ila. Mediante este proceso un
conjunto de datos en una %ila se ree#pla=a por varias %ilas "ue son #s si#ples y predeci'les y por
lo tanto$ #s #aneja'les.
!a(ones para la normali(acin
/a nor#ali=acin se lleva a ca'o$ entre otras ra=ones$ para)
Fener estructuras "ue pueda representar las relaciones entre los datos
Propiciar la recuperacin de los datos en %or#a sencilla$ en respuesta a las peticiones de
consultas y reportes
;acilitar las operaciones de actuali=acin de datos) insercin$ #odi%icacin y eli#inacin
Mini#i=ar la necesidad de reorgani=ar o reestructurar los datos cuando surjan nuevas
aplicaciones.

:05 560001 10)01)57 #ediaJR8JA4D%puna150191'd0naunidad:docu#entosdeconsultad5:951.odt


Departamento de Informtica Ctedra de Base de Datos I
Facultad Politcnica Seccin NA
Universidad Nacional de Asuncin Docente: os !o"as Dvalos
Unidad #: Dise$o de %ases de datos relacionales
#&'& Normali(acin
Documentos de consulta
/a nor#ali=acin #ejora la calidad del diseo de una aplicacin. !n general un proceso de este tipo
i#plica)
Desco#poner todos los grupos de datos en ta'las 'idi#ensionales &%ilas y colu#nas(
!li#inar todas la relaciones en las "ue los datos no dependan co#pleta#ente de la clave
pri#aria de la %ila
!li#inar todas las relaciones "ue tengan dependencias transitivas.
Antes de entrar a ver las %or#as nor#ales$ repase#os 'reve#ente algunos conceptos de la
terminolo+0a relacional)
*odelo !elacional-!elational *odel/
Gn #odelo de 'ase de datos en "ue los ele#entos se representan co#o ta'las$ los registros se
guardan co#o %ilas de la ta'la y los datos aclaratorios o ca#pos co#o colu#nas de cada %ila.
1a%la-1a%le/
Gna coleccin de registros en los "ue cada uno es %ila y cada ca#po en el registro es una colu#na.
/as ta'las ta#'in son conocidas co#o relaciones.
2"emplo: 1a%la cliente 3 sus datos
clid clape clnom
0 ;onseca <ricelda Margarita
1 Rojas ;onseca Margarita Maria
: Rojas ;onseca Clara Margarita
> Prieto Rojas Ana <iselle
Atri%utos-Attri%utes/
Gna propiedad de un ele#ento. !n una 'ase de datos relacional$ los ele#entos se guardan co#o
ta'las y los atri'utos co#o colu#nas.
2"emplo)
clnom
<ricelda Margarita
Margarita Maria
Clara Margarita
>05 560001 10)01)57 #ediaJR8JA4D%puna150191'd0naunidad:docu#entosdeconsultad5:951.odt
Departamento de Informtica Ctedra de Base de Datos I
Facultad Politcnica Seccin NA
Universidad Nacional de Asuncin Docente: os !o"as Dvalos
Unidad #: Dise$o de %ases de datos relacionales
#&'& Normali(acin
Documentos de consulta
Ana <iselle
4alores atmicos-Atomic values/
Ealores "ue no tienen estructura interna. /os valores at#icos no se pueden desco#poner en
valores o tipos de datos #s sencillos
2"emplo)
clid
0
Fila-!o5/
Registros guardados en una ta'la. Gna ta'la no de'e tener %ilas duplicadas. Dentro de una %ila$ la
in%or#acin se distri'uye en colu#nas. !stas colu#nas de'en tener valores at#icos. /as %ilas son
aconteci#ientos de un ele#ento. Fa#'in son conocidas tuplas.
2"emplo)
clid clape clnom
> Prieto Rojas Ana <iselle
1a%la %ase-Base ta%le/
Gna ta'la de una 'ase de datos "ue sirve co#o 'ase para una consulta al#acenada en la #is#a 'ase
de datos. /a ta'la 'ase o %3sica se contrapone al concepto de consulta $ ta'la virtual o vista lgica.
2"emplo)
A partir de una la ta%la %ase cliente$ con los siguientes datos)
clid clape clnom
0 ;onseca <ricelda Margarita
1 Rojas ;onseca Margarita Maria
605 560001 10)01)57 #ediaJR8JA4D%puna150191'd0naunidad:docu#entosdeconsultad5:951.odt
Departamento de Informtica Ctedra de Base de Datos I
Facultad Politcnica Seccin NA
Universidad Nacional de Asuncin Docente: os !o"as Dvalos
Unidad #: Dise$o de %ases de datos relacionales
#&'& Normali(acin
Documentos de consulta
: Rojas ;onseca Clara Margarita
> Prieto Rojas Ana <iselle
se puede construir una consulta$ ta'la virtual o vista lgica)
clape clnom
;onseca <ricelda Margarita
Rojas ;onseca Margarita Maria
Rojas ;onseca Clara Margarita
Prieto Rojas Ana <iselle
Atri%uto clave-6e3 attri%ute/
Gn atri'uto "ue es una clave o parte de ella en una ta'la.
2"emplo) el atri'uto cclid en la ta'la cliente.
Atri%uto no clave-Non 7e3 attri%ute/
Gn atri'uto "ue no es una clave o no forma parte de ella en una ta'la.
2"emplo) el atri'uto clape en la ta'la cliente.
Clave candidata-Candidate 7e3/
Conjunto de uno o #as atri'utos "ue identi%ican una %ila en una ta'la
2"emplo) los atri'utos cclid$clape y clno# en la ta'la cliente.
Clave primaria-Primar3 7e3 o P6/
/a clave candidata elegida co#o clave principal para la ta'la. /as regla para esta clave dice "ue su
valor de'e ser 2nico y no nulo.
2"emplo) clid en la ta'la cliente.
Clave fornea. e8terna o e8tran"era -Forei+n 7e3 o F6/
Conjunto de una o #as colu#nas en una ta'la "ue no son la clave principal de esa ta'la pero lo son
@05 560001 10)01)57 #ediaJR8JA4D%puna150191'd0naunidad:docu#entosdeconsultad5:951.odt
Departamento de Informtica Ctedra de Base de Datos I
Facultad Politcnica Seccin NA
Universidad Nacional de Asuncin Docente: os !o"as Dvalos
Unidad #: Dise$o de %ases de datos relacionales
#&'& Normali(acin
Documentos de consulta
de otra ta'la. Gna clave %ornea es una re%erencia a una sola %ila en otra ta'la "ue contenga el valor
"ue concuerda con la clave principal. /a integridad re%erencial asegura "ue no ,aya valores no
vlidos de clave %ornea en la ta'la.
2"emplo) clid en la ta'la pedido "ue de'e concordar en valor con clid en cliente "ue es la clave
pri#aria&PH( en dic,a ta'la.
Clave alterna-Alternate 6e3/
Atri'uto&s( clave candidata "ue no se eligi&(&eron( co#o clave pri#aria.
2"emplo: clape y clno# en conjuncin %or#an la clave alterna de la ta'la cliente.

Primera forma normal-9FN/
!s la lla#ada %or#a at#ica por el ,ec,o de "ue es i#posi'le dividirla a2n #s. !sta %or#a nor#al
es la "ue no per#ite #ult3ples ele#entos en una %ila co#o podr3a ser el eje#plo "ue se #uestra a
continuacin)
clid clno# clape pid0 pno#0 pprec0 pi#g0 pid1 pno#1 pprec1 pi#g1 pdnro pd%ec pdcant ceno#
0 <ri ;onse 0 4al 1555 4al.jpg 1 A=ucar >555 A=.jpg 0 115001 > !nvios
1 Marga Rojas : Carne 15555 Car.jpg > Papa 6555 pa.jpg 1 1:5101 6 /levo
0 <ri ;onse : Carne 15555 Car.jpg > Papa 6555 pa.jpg : 1:5101 7 /levo
: Clara Rojas ? Pan :555 Pan.jpg 05 <as ?5555 <a.jpg > 5@5@01 0 8,o
Co#o se nota en el eje#plo$ se registra #as de un pedido del cliente en una sola %ila. !l pri#er
pro'le#a aparecer3a cuando el cliente tiene #as de 1 pedidos. 4i se #antiene el l3#ite de registrar
,asta dos pedidos por cada cliente ser3a i#posi'le registrar un tercer #ovi#iento.
/a %or#a correcta de estructurar los datos es separar la parte "ue se repite. /os datos repetidos son
los de productos$ por lo tendria#os)
producto&pid$pno#$pprec$pi#g(
I lo "ue resta)
cliente&clid$clape$clno#$pdnro$pd%ec$pid$pdcant$ceno#(
/as ta'las #ostradas estn en primera forma normal. A propsito$ recorde#os lo "ue eJpresa la
Feor3a Relacional$ con respecto a esto)
BSe dice )ue una relacin est en rimera !orma normal"#FN$ si 3 slo si todos los dominios
simples su%3acentes contienen slo valores atmicos. es decir cuando no admiten +rupos
repetitivosC.
705 560001 10)01)57 #ediaJR8JA4D%puna150191'd0naunidad:docu#entosdeconsultad5:951.odt
Departamento de Informtica Ctedra de Base de Datos I
Facultad Politcnica Seccin NA
Universidad Nacional de Asuncin Docente: os !o"as Dvalos
Unidad #: Dise$o de %ases de datos relacionales
#&'& Normali(acin
Documentos de consulta
Se+unda forma normal-'FN/
!sta %or#a nor#al es igual a la pri#era$ salvo por el ,ec,o de "ue co#prende adicional#ente el
criterio "ue todos los ca#pos "ue no sean clave principal de'en depender por co#pleto del valor de
la clave principal. !l tr#ino Bpor co#pletoC es #uy i#portante en este caso$ dada la posi'ilidad de
"ue una clave principal de co#ponga de #as de un ca#po.
4i anali=a#os la relacin y elegi#os pid co#o clave pri#aria)
producto&pid$pno#$pprec$pi#g(
Kaga#os el ensayo)
pid L pno#$ "ue signi%ica "ue pno# depende %uncional y co#pleta#ente de pid$ es decir de la
clave pri#aria$
pid L pprec$ ta#'in es una dependencia %uncional directa$ co#o en)
pid L pi#g
Por lo tanto$ pode#os decir "ue la relacin producto est en se+unda forma normal.
A,ora elegi#os clave pri#aria y analice#os la relacin)
cliente&clid$clape$clno#$pdnro$pd%ec$pid$pdcant$ceno#(
Aota#os "ue)
clid L clape
clid L clno#
Por lo tanto separa#os la relacin anali=ada en)
cliente&clid$ clape$ clno#(
pedido&pdnro.pd%ec$pid$pdcant$ceno#$clid(
/a relacin cliente est en se+unda forma normal.
I la relacin pedidoM 4a'e#os "ue)
pdid L pd%ec$ pues el pedido se reali=a en una %e,a dada$
pdid L pid$ siendo "ue el pedido es de un producto$
pdid L pdcant$ en una cantidad deter#inada$
pdid L ceno# $ es trasportada por una co#pa3a de envio$ y
pdid L clid$ es para un cliente.
D05 560001 10)01)57 #ediaJR8JA4D%puna150191'd0naunidad:docu#entosdeconsultad5:951.odt
Departamento de Informtica Ctedra de Base de Datos I
Facultad Politcnica Seccin NA
Universidad Nacional de Asuncin Docente: os !o"as Dvalos
Unidad #: Dise$o de %ases de datos relacionales
#&'& Normali(acin
Documentos de consulta
!ntonces pode#os decir "ue la relacin pedido est en se+unda forma normal.
Por lo eJpuesto $ pode#os decir "ue a#'as relaciones estn en segunda %or#a nor#al$ "ue es
de%inida por la Feor3a Relacional co#o sigue)
BSe dice )ue una relacin est en %e&'nda !orma normal"(FN$ s0 3 solo s0:
: 2st en 9FN
: 1odos los atri%utos no clave dependen por completo de la clave primaria;&
1ercera forma normal-#FN/
!sta %or#a nornal esta'lece "ue los atri'utos "ue %or#an parte de una relacin son #utua#ente
independientes$ eJcepcin ,ec,a de la dependencia esta'lecida en la segunda %or#a nor#al. !n este
punto es i#portante destacar "ue para una relacin est en :;A$ de'e estar en 1;A. Asocie#os lo
eJpuesto a un eje#plo.
Agregue#os a la ta'la pedido el atri'uto "ue identi%ica a la co#pa3a de envios)
pedido&pdnro.pd%ec$pid$pdcant$ceid$ceno#$clid(
4a'e#os "ue)
pdid L pd%ec
pdid L pid
pdid L pdcant
pdid L clid
Pero ta#'in "ueN
pdid L ceid
ceid L ceno#
y por lo tanto)
pdid L ceno#
!s decir ,ay una dependencia %uncional transitiva entre ceno# y pdid. Para "ue "uede en tercera
%or#a nor#al separa#os)
cenvio&ceid$ ceno#(
pedido&pdid.pd%ec$pid$pdcant$ceid$clid(
Reto#ando lo "ue es la tercera %or#a nor#al recorde#os lo "ue dice la Feor3a Relacional al
respecto)
?05 560001 10)01)57 #ediaJR8JA4D%puna150191'd0naunidad:docu#entosdeconsultad5:951.odt
Departamento de Informtica Ctedra de Base de Datos I
Facultad Politcnica Seccin NA
Universidad Nacional de Asuncin Docente: os !o"as Dvalos
Unidad #: Dise$o de %ases de datos relacionales
#&'& Normali(acin
Documentos de consulta
BSe dice )ue una relacin est en Tercera !orma normal")FN$ s0 3 solo s0:
: 2st en 'FN
: 1odos los atri%utos no claves dependen de manera no transitiva de la clave primaria;&
Conclusin
Concluyendo$ nuestra 'ase de datos en la tercera %or#a nor#al estar3a constituida por las siguientes
relaciones)
cliente&clid$ clape$ clno#(
producto&pid$pno#$pprec$pi#g(
cenvio&ceid$ ceno#(
pedido&pdid$pd%ec$pid$pdcant$ceid$clid(
!n esta ulti#a ta'la eJisten)
;H0) ceid con re%erencia cenvio
;H1) pid con re%erencia a producto
;H:) clid con re%erencia a cliente
Normali(acin adicional -enlaces/
;or#a nor#al de Boyce9Codd
Cuarta %or#a nor#al
Ouinta %or#a nor#al
;or#a nor#al do#inioclave
Desnor#ali=acin
Fin del documento
0505 560001 10)01)57 #ediaJR8JA4D%puna150191'd0naunidad:docu#entosdeconsultad5:951.odt

También podría gustarte