Normalizacion
-
Upload
dorvineduardo -
Category
Engineering
-
view
59 -
download
1
Transcript of 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
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.
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
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).
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
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
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
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.
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.
Tercer nivel de F/N.Eliminar aquellos campos que no dependan de la clave.
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.
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.
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
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.
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.
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.
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.
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