normalizacion de datos
DESCRIPTION
NORMALIZACION DE DATOS. ANDREA CATALINA GALLEGO GONZALEZ. INTRODUCCIÒN. El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional . - PowerPoint PPT PresentationTRANSCRIPT
NORMALIZACION DE NORMALIZACION DE DATOSDATOS
ANDREA CATALINA ANDREA CATALINA
GALLEGO GONZALEZGALLEGO GONZALEZ
INTRODUCCIÒNINTRODUCCIÒN El proceso de El proceso de normalización de normalización de bases de datosbases de datos consiste consiste
en aplicar una serie de reglas a las relaciones obtenidas en aplicar una serie de reglas a las relaciones obtenidas tras el paso del tras el paso del modelo entidad-relaciónmodelo entidad-relación al modelo al modelo relacional.relacional.
Las bases de datos relacionales se normalizan para:Las bases de datos relacionales se normalizan para: Evitar la redundancia de los datos. Evitar la redundancia de los datos. Evitar problemas de actualización de los datos en las tablas. Evitar problemas de actualización de los datos en las tablas. Proteger la integridad de los datos. Proteger la integridad de los datos. En el modelo relacional es frecuente llamar En el modelo relacional es frecuente llamar tablatabla a una a una
relación, aunque para que una tabla sea considerada como relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones:una relación tiene que cumplir con algunas restricciones:
Cada columna debe tener su nombre único. Cada columna debe tener su nombre único. No puede haber dos filas iguales. No se permiten los No puede haber dos filas iguales. No se permiten los
duplicados. duplicados. Todos los datos en una columna deben ser del mismo tipo. Todos los datos en una columna deben ser del mismo tipo.
CLAVESUna clave primaria es aquella columna (pueden ser
también dos columnas o más) que identifica únicamente a esa fila. La clave primaria es un
identificador que va a ser único para cada fila. Se acostumbra poner la clave primaria como la primera
columna de la tabla pero esto no tiene que ser necesario, si no es más una conveniencia. Muchas
veces la clave primaria es autonumérica
En una tabla puede que tengamos más de una clave, en tal caso se puede escoger una para ser la clave
primaria, las demás claves son las claves candidatas.además es la posible clave primaria.
CLAVECLAVE Una Una clave foráneaclave foránea es aquella columna que existiendo es aquella columna que existiendo
como dependiente en una tabla, es a su vez clave como dependiente en una tabla, es a su vez clave primaria en otra tabla.primaria en otra tabla.
Una Una clave alternativaclave alternativa es aquella clave candidata que no es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que ha sido seleccionada como clave primaria, pero que también puede identificar de forma única a una fila también puede identificar de forma única a una fila dentro de una tabla. Ejemplo: Si en un tabla clientes dentro de una tabla. Ejemplo: Si en un tabla clientes definimos el número de documento (id_cliente) como definimos el número de documento (id_cliente) como clave primaria, el número de seguro social de ese cliente clave primaria, el número de seguro social de ese cliente podría ser una clave alternativa. En este caso no se usó podría ser una clave alternativa. En este caso no se usó como clave primaria porque es posible que no se como clave primaria porque es posible que no se conozca ese datos en todos los clientes.conozca ese datos en todos los clientes.
Una Una clave compuestaclave compuesta es una clave que está es una clave que está compuesta por más de una columna.compuesta por más de una columna.
Normalización de datosNormalización de datos A través del siguiente ejercicio se intenta afirmar los conocimientos A través del siguiente ejercicio se intenta afirmar los conocimientos
de normalización con un ejemplo simplificado de una base de datos de normalización con un ejemplo simplificado de una base de datos para una pequeña biblioteca.para una pequeña biblioteca.
CodLibro
Titulo Autor Editorial NombreLector
FechaDev
1001Variable compleja
Murray Spiegel
McGraw Hill
Pérez Gómez, Juan
15/04/2005
1004 Visual Basic 5E. Petroustsos
AnayaRíos Terán, Ana
17/04/2005
1005 EstadísticaMurray Spiegel
McGraw Hill
Roca, René16/04/2005
1006Oracle University
Nancy Greenberg y Priya Nathan
Oracle Corp.
García Roque, Luis
20/04/2005
1007 Clipper 5.01 RamalhoMcGraw Hill
Pérez Gómez, Juan
18/04/2005
Normalización de datosNormalización de datos
Esta tabla no cumple el requisito de la Esta tabla no cumple el requisito de la Primera Forma Normal (1NF) de sólo Primera Forma Normal (1NF) de sólo tener campos atómicos, pues el tener campos atómicos, pues el nombre del lector es un campo que nombre del lector es un campo que puede (y conviene) descomponerse en puede (y conviene) descomponerse en apellido paterno, apellido materno y apellido paterno, apellido materno y nombres. Tal como se muestra en la nombres. Tal como se muestra en la siguiente tabla.siguiente tabla.
Normalización de datosNormalización de datosCodLibro Titulo Autor Editorial Paterno Materno Nombres FechaDev
1001 Variable compleja Murray Spiegel McGraw Hill Pérez Gómez Juan 15/04/2005
1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán Ana 17/04/2005
1005 Estadística Murray Spiegel McGraw Hill Roca René 16/04/2005
1006 Oracle University Nancy Greenberg Oracle Corp. García Roque Luis 20/04/2005
1006 Oracle University Priya Nathan Oracle Corp. García Roque Luis 20/04/2005
1007 Clipper 5.01 Ramalho McGraw Hill Pérez Gómez Juan 18/04/2005
Como se puede ver, hay cierta redundancia Como se puede ver, hay cierta redundancia característica de 1NF. característica de 1NF.
La Segunda Forma Normal (2NF) pide que no La Segunda Forma Normal (2NF) pide que no existan dependencias parciales o dicho de otra existan dependencias parciales o dicho de otra manera, todos los atributos no clave deben manera, todos los atributos no clave deben depender por completo de la clave primaria. depender por completo de la clave primaria. Actualmente en nuestra tabla tenemos varias Actualmente en nuestra tabla tenemos varias dependencias parciales si consideramos como dependencias parciales si consideramos como atributo clave el código del libro.atributo clave el código del libro.
Por ejemplo, el título es completamente Por ejemplo, el título es completamente identificado por el código del libro, pero el identificado por el código del libro, pero el nombre del lector en realidad no tiene nombre del lector en realidad no tiene dependencia de este código, por tanto estos dependencia de este código, por tanto estos datos deben ser trasladados a otradatos deben ser trasladados a otra tabla. tabla.
Normalización de datosNormalización de datos
CodLibro Titulo Autor Editorial
1001 Variable compleja Murray Spiegel McGraw Hill
1004 Visual Basic 5 E. Petroustsos Anaya
1005 Estadística Murray Spiegel McGraw Hill
1006 Oracle University Nancy Greenberg Oracle Corp.
1006 Oracle University Priya Nathan Oracle Corp.
1007 Clipper 5.01 Ramalho McGraw Hill
Normalización de datosNormalización de datos
CodLector Paterno Materno Nombres
501 Pérez Gómez Juan
502 Ríos Terán Ana
503 Roca René
504 García Roque Luis
La nueva tabla sólo contendrá datos del lector.
Normalización de datosNormalización de datos
Hemos creado una tabla para contener los datos del lector y también tuvimos que crear la columna CodLector para identificar unívocamente a cada uno. Sin embargo, esta nueva disposición de la base de datos necesita que exista otra tabla para mantener la información de qué libros están prestados a qué lectores. Esta tabla se muestra a continuación:
CodLibro CodLector FechaDev
1001 501 15/04/2005
1004 502 17/04/2005
1005 503 16/04/2005
1006 504 20/04/2005
1007 501 18/04/2005
Para la Tercera Forma Normal (3NF) la relación Para la Tercera Forma Normal (3NF) la relación debe estar en 2NF y además los atributos no debe estar en 2NF y además los atributos no clave deben ser mutuamente independientes y clave deben ser mutuamente independientes y dependientes por completo de la clave primaria. dependientes por completo de la clave primaria. También recordemos que dijimos que esto También recordemos que dijimos que esto significa que las columnas en la tabla deben significa que las columnas en la tabla deben contener solamente información sobre la entidad contener solamente información sobre la entidad definida por la clave primaria y, por tanto, las definida por la clave primaria y, por tanto, las columnas en la tabla deben contener datos columnas en la tabla deben contener datos acerca de una sola cosa.acerca de una sola cosa.
En nuestro ejemplo en 2NF, la primera tabla En nuestro ejemplo en 2NF, la primera tabla conserva información acerca del libro, los autores conserva información acerca del libro, los autores y editoriales, por lo que debemos crear nuevas y editoriales, por lo que debemos crear nuevas tablas para satisfacer los requisitos de 3NF.tablas para satisfacer los requisitos de 3NF.
CodLibro Titulo
1001
Variable compleja
1004
Visual Basic 5
1005
Estadística
1006
Oracle University
1007
Clipper 5.01
CodAutor Autor
801 Murray Spiegel
802 E. Petroustsos
803 Nancy Greenberg
804 Priya Nathan
806 Ramalho
CodEditorial Editorial
901
McGraw Hill
902
Anaya
903
Oracle Corp.
Aunque hemos creado nuevas tablas para que Aunque hemos creado nuevas tablas para que cada una tenga sólo información acerca de una cada una tenga sólo información acerca de una entidad, también hemos perdido la información entidad, también hemos perdido la información acerca de qué autor ha escrito qué libro y las acerca de qué autor ha escrito qué libro y las editoriales correspondientes, por lo que editoriales correspondientes, por lo que debemos crear otras tablas que relacionen cada debemos crear otras tablas que relacionen cada libro con sus autores y editoriales libro con sus autores y editoriales
VENTAJASVENTAJAS Integridad de datos (porque no hay datos Integridad de datos (porque no hay datos
redundantes ni omitidos). redundantes ni omitidos). Consultas optimizadas (porque las tablas Consultas optimizadas (porque las tablas
normalizadas generan combinaciones eficaces y normalizadas generan combinaciones eficaces y rápidas). rápidas).
Creación y ordenación de índices más rápidas Creación y ordenación de índices más rápidas (porque las tablas tienen menos columnas). (porque las tablas tienen menos columnas).
Ejecución más rápida de la instrucción UPDATE Ejecución más rápida de la instrucción UPDATE (porque hay menos índices por tabla). (porque hay menos índices por tabla).
Resolución de concurrencias mejorada (porque Resolución de concurrencias mejorada (porque los bloqueos de tabla afectarán a menos datos). los bloqueos de tabla afectarán a menos datos).