Normalizacion

18
John Denis Suarez Ortiz Dorvin Eduardo Bardales Lucana Normalización BASE DE DATOS I Ingeniería de Sistemas y Telemática http:// heroepatriota.blogspot.com Ing. Marco Aurelio Porro Chulli http:// jhonsuarezortiz.blogspot.com

Transcript of Normalizacion

Page 1: Normalizacion

John Denis Suarez OrtizDorvin Eduardo Bardales Lucana

Normalización

BASE DE DATOS I

Ingeniería de Sistemas y Telemáticahttp://

heroepatriota.blogspot.comIng. Marco Aurelio Porro Chulli

http://jhonsuarezortiz.blogspot.com

Page 2: Normalizacion

Dependencia funcional

Una dependencia funcional es una conexión entre uno o más atributos. Por ejemplo si se conoce el valor de DNI tiene una conexión con Apellido o Nombre.

Dependencia funcional reflexiva

Si "y" está incluido en "x" entonces x  y

A partir de cualquier atributo o conjunto de atributos siempre puede deducirse él mismo. Si la dirección o el nombre de una persona están incluidos en el DNI, entonces con el DNI podemos determinar la dirección o su nombre.

Page 3: Normalizacion

Dependencia funcional Aumentativa

DNI nombre

DNI,dirección     nombre,dirección

Si con el DNI se determina el nombre de una persona, entonces con el DNI más la dirección también se determina el nombre y su dirección.

Dependencia funcional transitiva

Page 4: Normalizacion

Sean X, Y, Z tres  atributos  (o  grupos  de  atributos)  de  la  misma  entidad.  Si Y depende funcionalmente  de X y Z de Y,  pero X no  depende  funcionalmente  de Y,  se  dice  entonces  que Z depende transitivamente de X. Simbólicamente sería:

X Y Z entonces X  Z

Entonces  tenemos  que FechaDeNacimiento determina  a Edad y  la Edad determina  a Conducir, indirectamente podemos  saber  a  través de FechaDeNacimiento a Conducir (En muchos países, una persona necesita ser mayor de cierta edad para poder conducir un automóvil, por eso se utiliza este ejemplo).

Page 5: Normalizacion

Una clave primaria es aquella columna (o conjunto de columnas) que identifica unívocamente a cada fila. La clave primaria es un identificador que va a ser siempre único para cada fila. Se acostumbra a poner la clave primaria como  la primera columna de  la  tabla pero es más una conveniencia que una obligación. Muchas veces  la  clave  primaria  es  numérica  auto-incrementada,  es  decir,  generada  mediante  una  secuencia numérica incrementada automáticamente cada vez que se inserta una fila.En una tabla puede que tengamos más de una columna que puede ser clave primaria por sí misma. En ese caso se puede escoger una para ser la clave primaria y las demás claves serán claves candidatas.Una clave ajena (foreign key o clave foránea) es aquella columna que existiendo como dependiente en una tabla, es a su vez clave primaria en otra tabla.

 

Claves

Page 6: Normalizacion

Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que también puede identificar de forma única a una fila dentro de una tabla. Ejemplo: Si en una tabla clientes definimos el número de documento (id_cliente) como clave primaria, el número de seguro social de ese cliente podría ser una clave alternativa. En este caso no se usó como clave primaria porque es posible que no se conozca ese dato en todos los clientes.

Una clave compuesta es una clave que está compuesta por más de una columna.

La visualización de todas las posibles claves candidatas en una tabla ayudan a su optimización. Por ejemplo, en una tabla PERSONA podemos identificar como claves su DNI, o el conjunto de su nombre, apellidos, fecha de nacimiento y dirección. Podemos usar cualquiera de las dos opciones o incluso todas a la vez como clave primaria, pero es mejor en la mayoría de sistemas la elección del menor número de columnas como clave primaria.

Claves

Page 7: Normalizacion

 

Básicamente, las reglas de Normalización están encaminadas a eliminar redundancias e inconsistencias de dependencia en el diseño de las tablas. Tienes que tener en cuenta que debes crear una BD funcional y eficiente.

 

NORMALIZACIÓN CERO:

FORMAS DE NORMALIZACIÓN

Page 8: Normalizacion

Primer nivel de Formalización/Normalización. (F/N)1.   Eliminar los grupos repetitivos de las tablas individuales.

2.   Crear una tabla separada por cada grupo de datos relacionados.

3.   Identificar cada grupo de datos relacionados con una clave primaria.

Ahora diremos que nuestra tabla está en el primer nivel de F/N. Hemos solucionado el problema de la limitación del campo url. Pero sin embargo vemos otros problemas. Cada vez que introducimos un nuevo registro en la tabla usuarios, tenemos que duplicar el nombre de la empresa y del usuario. 

Page 9: Normalizacion

Segundo nivel de F/N

1.   Crear  tablas  separadas para  aquellos  grupos de datos que  se  aplican a  varios registros.

2.   Relacionar estas tablas mediante una clave externa.

Hemos  creado  tablas  separadas  y  la  clave  primaria  en  la  tabla  usuarios,  userId,  está  relacionada ahora con la clave externa en la tabla urls.

Page 10: Normalizacion

Tercer nivel de F/N.Eliminar aquellos campos que no dependan de la clave.

Page 11: Normalizacion

Relaciones entre los Datos

Antes  de  definir  el  cuarto  nivel  de  F/N,   veremos  tres  tipos  de  relaciones  entre los datos: uno-a-uno, uno-con-varios y  varios-con-varios.  Por un momento  imaginemos que  ponemos  el  campo  url  en  una  tabla  separada,  y cada  vez  que  introducimos un registro en  la  tabla usuarios también  introducimos una sola  fila en  la  tabla urls. Entonces  tendríamos  una  relación  uno-a-uno:  cada  fila  en  la  tabla  usuarios  tendría    exactamente    una    fila   correspondiente  en  la  tabla  urls.  Para  los propósitos de nuestra aplicación no sería útil la normalización.

Las  tablas en el ejemplo del Segundo Nivel de F/N. Nuestras tablas permiten a un sólo usuario tener asociadas varias urls. Esta es una relación uno- con-varios, el tipo de relación más común, y hasta que se nos presentó el dilema del Tercer Nivel de F/N. la única clase de relación que necesitamos.

La  relación varios-con-varios, sin embargo, es  ligeramente más compleja. En el ejemplo del Tercer Nivel  de F/N que tenemos a un usuario relacionado con varias urls.

Page 12: Normalizacion

Para disminuir la duplicación de los datos (este proceso nos llevará al Cuarto Nivel de F/N), hemos creado una tabla que sólo tiene claves externas y primarias url_elations. 

Page 13: Normalizacion

Cuarto Nivel de F/N. 1.  En  las  relaciones varios-con-varios, entidades  independientes no pueden ser almacenadas en la misma tabla. Ya  que  sólo  se  aplica  a  las  relaciones  varios-con-varios,  la  mayoria  de  los desarrolladores pueden ignorar esta regla de forma correcta. Pero es muy útil en ciertas situaciones, tal como está. Hemos optimizado nuestra tabla urls eliminado duplicados y hemos puesto las relaciones en su propia tabla. Ejemplo: SELECT nombre, url FROM usuarios, urls, url_relations WHERE url_relations.relatedUserId = 1 AND usuarios.userId = 1 AND urls.urlId = url_relations.relatedUrlId Y si queremos recorrer todas las urls de cada uno de los usuarios, hariamos algo así: SELECT nombre, url FROM usuarios, urls, url_relations WHERE usuarios.userId = url_relations.relatedUserId AND urls.urlId = url_relations.relatedUrlId

Page 14: Normalizacion

Quinto Nivel de F/N.

 Existe otro nivel de normalización que se aplica a veces, pero es de hecho algo esotérico y en la mayoría de los casos no es necesario para obtener la mejor funcionalidad de nuestra estructura de datos o aplicación. Su principio sugiere: 1.  La tabla original debe ser reconstruida desde las tablas resultantes en las cuales ha sido troceada. Los beneficios de aplicar esta regla aseguran que no has creado ninguna columna extraña en tus tablas y que la estructura de las tablas que has creado sea del tamaño justo que tiene que ser. Es una buena práctica aplicar esta regla, pero a no ser que estés tratando con una extensa estructura de datos probablemente no la necesitarás.

Page 15: Normalizacion

RESUMEN La normalización es una técnica que se utiliza para crear relaciones lógicas apropiadas entre tablas de una base de datos. Ayuda a prevenir errores lógicos en la manipulación de datos. La normalización facilita también agregar nuevas columnas sin romper el esquema actual ni las relaciones.Existen varios niveles de normalización: Primera Forma Normal, Segunda Forma Normal, Tercera Forma Normal, Forma Normal Boyce-Codd, Cuarta Forma Normal, Quinta Forma Normal o Forma Normal de Proyección-Unión,  Forma  Normal  de  Proyección-Unión  Fuerte,  Forma  Normal  de  Proyección-Unión  Extra Fuerte y Forma Normal de Clave de Dominio. Cada nuevo nivel o forma nos acerca más a hacer unabase de datos verdaderamente relacional.Se discutieron las primeras tres formas. Éstas proveen suficiente nivel de normalización para cumplir con las necesidades de la mayoría de las bases de datos. Normalizar demasiado puede conducir a tener una base  de  datos  ineficiente  y  hacer  a  su  esquema  demasiado  complejo  para  trabajar.  Un  balance apropiado de sentido común y práctico puede ayudarnos a decidir cuándo normalizar.

Page 16: Normalizacion

SUMMARY Normalization  is  a  technique  that  is  used  to  create  appropriate  between  tables  in  a  database  logical relationships.  It  helps  prevent  logical  errors  in  data  manipulation.  Normalization  also  easy  to  add  new columns without breaking the current scheme or relationships.There  are  several  levels  of  normalization:  First  Normal  Form  Second  Normal  Form,  Third  Normal  Form, Normal  Form Boyce-Codd,  Fourth Normal  Form, Quinta Normal  Form or Normal  Form Projection-Union, Normal  Form  Projection-Union  Strong,  Normal  Form  projection-Union  Extra  Strong  and  Normal  Form Domain Key. Each new level or form brings us closer to making a truly relational data base.the  first  three  forms  discussed. They  provide  sufficient  level  standardization  to meet  the  needs  of most databases. Normalize  too much can  lead to  inefficient have a base of data and make her too complex to work scheme. A proper balance of common sense can help us practical decide when to normalize.

Page 17: Normalizacion

RecomendacionesSiempre tener en cuenta las reglas de normalización en una base de datos, cada regla se denomina una forma normal. Si se cumple la primera regla, se dice que esta en la primera forma normal. Si se cumplen las tres primeras reglas la base de Datos se considera que esta en la tercera forma normal aunque son posibles otros niveles de normalización la tercera forma se considera el máximo nivel 

Apreciación del EquipoMientras mas normalizada este la base de datos este será mas flexible al eliminar la redundancia y las dependencias incoherentes. 

ConclusionesLa normalización permite evitar la redundancia de los datos, evitar los problemas de actualización de los datos en las tablas, proteger la integridad de los datos.

Page 18: Normalizacion

GLOSARIO Axiomas de Armstrong: Eliminación de dependencias redundantes. Obtención de claves. Normal Form (NF): Forma normal.

BIBLIOGRAFÍAhttps://www.cs.upc.edu/~bcasas/docencia/pfc/NormalitzacioBD.pdfhttp://www.eet2mdp.edu.ar/alumnos/MATERIAL/MATERIAL/info/infonorma.pdfhttp://www.galeon.com/nevifi/Archivos/Normalizacion.pdfhttp://biblioteca.uns.edu.pe/saladocentes/archivoz/publicacionez/2011_normalizacion_bd.pdf