SlideShare una empresa de Scribd logo
1 de 58
Normalización
Las bases de datos relacionales se normalizan para: 
• Evitar la redundancia de los datos. 
• Evitar problemas de actualización de los datos en las tablas. 
• Proteger la integridad de los datos. 
Una tabla puede encontrarse en primera forma normal y no 
en segunda forma normal, pero no al contrario. 
• Lo mismo aplica para las siguientes formas normales.
1FN: 
• Eliminar “grupos de repetición”. Para poderlos eliminar se crea 
una nueva tabla con una llave primaria compuesta. 
• Impedir que un atributo pueda tomar más de un valor. 
2FN: 
• Eliminar dependencias parciales y separar dentro de sus propias 
tablas. 
3FN: 
• Eliminar dependencias transitivas (aquellas en la cual existen 
columnas que dependen de otras columnas que no son llave).
1FN 
Los dominios de los atributos deben incluir solo valores 
atómicos. 
• Los atributos no pueden ser multi-valorados ni compuestos. 
Si no se aplica: se presenta repetición de datos.
1FN
2FN 
df2 y df3 son dependencias parciales.
2FN
3FN
3FN
Forma normal de Boyce-Codd 
(FNBC o BCFN) 
Dentro de la dependencia funcional de la tabla, todo 
determinante es una clave candidata. 
(DNI, Asignatura) →Tutor y Tutor→Asignatura.
Tutoria (DNI, asignatura, tutor) 
F = { DNI, asignatura  tutor, tutor  asignatura } 
Descomposiciones posibles: 
• {DNI, tutor} y {DNI, asignatura} 
• {asignatura, tutor} y {asignatura, DNI} 
• {tutor, asignatura} y {tutor, DNI}
Ejercicio 4FN 
Eliminar dependencias multi-valoradas. 
• Un atributo multi-valorado es un atributo que ayuda a describir una 
entidad; en la extensión de una tabla, el valor del atributo se 
repetiría varias veces. 
• Sucede en tablas de «producto cruzado». 
Si no se hace con cuidado: 
• Se puede perder información. 
• Presenta repetición. 
Si XY|Z, entonces X,Y y X,Z.
Para la 4FN, se separa en dos tablas: 
Reduce la necesidad de inserciones, actualizaciones y borrados. 
Beneficio: En algunos casos, ocupará menos espacio. 
Costo: Afecta el desempeño de las consultas, ya que implicaría más 
uniones entre tablas.
Ejercicio 5FN 
Divide una tabla en tres o más. 
Se puede encontrar en una relación muchos a muchos a 
muchos. 
FN polémica (depende de la situación). 
Una tabla no está en 5FN si hay una descomposición de 
esa tabla que muestre la misma información que la 
original.
Ejemplos
Ejemplo: Un servicio de biblioteca quiere llevar el control 
del préstamo que incluya los siguientes datos: 
• Información sobre el usuario del servicio, datos del libro y la 
información sobre el préstamos que se realiza. 
usuario libro 
• Usuario(id_usuario, nombre, id_libro, fecha_prestamo, 
fecha_entrega) 
• Libro(id_libro, título, editorial, país, año)
• Usuario(id_usuario, nombre, id_libro, fecha_prestamo, 
fecha_entrega) 
• Libro(id_libro, título, editorial, país, año) 
En Usuario, cada vez que un usuario pida un libro hay que 
escribir su número de usuario (id_usuario) y su nombre 
(nombre). 
¿Qué problemas puede traer esto? 
• Hacer una tabla con datos y ver que pasa.
¿Qué problemas puede traer esto? 
id_usuario nombre id_libro fecha_prestamo fecha_entrega 
3435 J. Perez Qa76.9 25/4/07 13/5/07 
3435 J. Perez Qa76.9 5/10/07 13/10/07 
3435 J. Perez Qa76.893 3/4/07 13/3/07 
5678 A. Ramírez Qa76.9 2/4/07 3/5/07
1FN 
Usuario(id_usuario, nombre, id_libro, fecha_prestamo, 
fecha_entrega) 
1. Identificar “grupos de repetición”. 
• “grupo de repetición”: id_usuario, nombre, id_libro, 
fecha_prestamo, fecha_entrega. 
2. Eliminar “grupos de repetición”. 
• Se crea una nueva tabla con una llave primaria compuesta. 
Prestamo(id_usuario, id_libro, fecha_prestamo, fecha_entrega).
2FN 
Todas las dependencias parciales se deben eliminar y 
separar dentro de sus propias tablas. 
• Una dependencia parcial es un atributo que no depende 
completamente de la llave primaria (dependencia funcional). 
• Normalmente se presenta cuando la llave primaria es compuesta. 
Prestamo(id_usuario, id_libro, fecha_prestamo, fecha_entrega)
Pasos 2FN: 
• Determinar cuáles atributos no dependen de la llave primaria 
compuesta de la tabla. 
• Eliminar esas columnas de la tabla base. 
• Crear una segunda tabla con esos atributos cuya llave primaria será 
el atributo del cual dependen.
3FN 
En ésta no hay dependencias transitivas. 
• Una dependencia transitiva es aquella en la cual existen atributos 
que dependen de otros atributos que tampoco son llave. 
Usuario(id_usuario, nombre) 
Prestamo(id_usuario, id_libro, fecha_prestamo, fecha_entrega)
Pasos 3FN: 
• Determinar que columnas son dependientes de otra columna no 
llave. 
• Eliminar esas columnas de la tabla base 
• Crear otra tabla con esas columnas y con la columna no llave de la 
cual son dependientes, crear una llave primaria para esta tabla.
Considerando la entidad usuario, sus atributos son: 
Usuario(id_usuario, nombre) 
Libro(id_libro, título, editorial, país, año) 
Prestamo(id_usuario, id_libro, fecha_prestamo, fecha_entrega) 
usuario prestamo libro
Ejercicio 
Venta (Num_Orden, Fecha, Num_Cliente, 
Nombre_Cliente, Direccion_Cliente, Num_Vendedor, 
Nombre_Vendedor, Clave_Prod, Descripcion, Cantidad, 
Precio_Unidad)
1FN 
Venta(Num_Orden, Fecha, Num_Cliente, Nombre_Cliente, 
Direccion_Cliente, Num_Vendedor, Nombre_Vendedor, Clave_Prod, 
Descripcion, Cantidad, Precio_Unidad) 
Venta(Num_Orden, Fecha, Num_Cliente, Nombre_Cliente, 
Direccion_Cliente, Num_Vendedor, Nombre_Vendedor) 
DetalleVenta(Num_Orden, Clave_Prod, Descripcion, Cantidad, 
PrecioUnidad)
2FN 
Venta(Num_Orden, Fecha, Num_Cliente, Nombre_Cliente, 
Direccion_Cliente, Num_Vendedor, Nombre_Vendedor) 
DetalleVenta(Num_Orden, Clave_Prod, Descripcion, Cantidad, 
PrecioUnidad) 
Producto(Clave_Prod, Descripcion) 
DetalleVenta(Num_Orden, Clave_Prod, Cantidad, PrecioUnidad) 
//caso donde el precio puede variar, por promociones, descuento a 
clientes, etc. 
Venta(Num_Orden, Fecha, Num_Cliente, Nombre_Cliente, 
Direccion_Cliente, Num_Vendedor, Nombre_Vendedor)
2FN 
Si no se aplica: 
• Repetición de datos. La “descripción” aparecería cada que se 
tiene una venta sobre un producto. 
• Al borrar: Al borrar información de los productos en 
DetalleVenta, se borra el producto. 
• Al insertar: Para insertar un producto, se debería insertar una 
órden de venta. 
• Al actualizar: Para cambiar una descripción, se debe cambiar en 
cada DetalleVenta.
3FN 
Venta(Num_Orden, Fecha, Num_Cliente, 
Nombre_Cliente, Direccion_Cliente, Num_Vendedor, 
Nombre_Vendedor) 
Cliente(Num_Cliente, Nombre_Cliente, 
Direccion_Cliente) 
Vendedor(Num_Vendedor, Nombre_Vendedor) 
Venta(Num_Orden, Fecha, Num_Cliente, Num_Vendedor)
Si no se aplica 3FN: 
• Repetición de datos: El nombre del cliente y del vendedor 
aparecería en cada Venta. 
• Al borrar: Al borrar una Venta, se borra el cliente y el vendedor. 
• Al insertar: Al insertar un vendedor o cliente, se tendría que 
agregar una venta. 
• Al actualizar: Para cambiar un nombre o dirección, se debe 
cambiar en cada Venta.
Ejemplo 
Se requiere tener la información sobre los alumnos de los 
distintos programas de posgrado: 
• datos generales, 
• que grado cursan (especialidad, maestría o doctorado), 
• el nombre del programa, 
• que materias han cursado, 
• que calificación llevan en cada una de ellas, 
• en que período la cursaron y con que profesor, 
• de cada materia se necesita saber su clave, su área y el número de 
créditos.
alumno(matricula, nombre, grado, programa, clave_mat, 
materia, profesor, periodo_cursado, calificacion, creditos, 
área) 
1FN: Identificar “grupos de repetición” y sacarlos a otra 
tabla.
alumno(matricula, nombre, grado, programa, clave_mat, 
materia, profesor, periodo_cursado, calificacion, creditos, 
area) 
alumno(matricula, nombre, grado, programa) 
alumno-materia(matricula, clave_mat, materia, profesor, 
periodo_cursado, calificacion, creditos, area))
2FN: Identificar atributos que no dependen completamente 
de la llave primaria compuesta y mandarlos a otra tabla. 
alumno-materia(matricula, clave_mat, materia, profesor, 
periodo_cursado, calificacion, creditos, area))
alumno-materia(matricula, clave_mat, materia, profesor, 
periodo_cursado, calificacion, creditos, area) 
alumno-materia(matricula, clave_mat, periodo_cursado, 
profesor, calificacion) 
materia(clave_mat, materia, creditos, área)
3FN: Identificar atributos no llave que dependan de otro 
atributo no llave. 
nombre 
alumno matricula grado 
programa 
alumno-materia profesor 
matricula, clave_mat, periodo_cursada 
calificacion 
materia 
materia clave_mat creditos 
area
Ejercicio 
ordenes (id_orden, fecha, id_cliente, nom_cliente, estado, 
num_art, nom_art, cant, precio)
1FN 
ordenes (id_orden, fecha, id_cliente, nom_cliente, estado, 
num_art, nom_art, cant, precio) 
ordenes (id_orden, fecha, id_cliente, nom_cliente, estado) 
articulos_ordenes (id_orden, num_art, nom_art, cant, 
precio)
2FN 
ordenes (id_orden, fecha, id_cliente, nom_cliente, estado) 
//ya está en 2FN 
articulos_ordenes (id_orden, num_art, nom_art, cant, 
precio) 
articulos_ordenes (id_orden, num_art, cant) 
articulos ( num_art, nom_art, precio)
3FN 
ordenes (id_orden, fecha, id_cliente, nom_cliente, estado) 
ordenes (id_orden, fecha, id_cliente) 
clientes (id_cliente, nom_cliente, estado)
Ejercicio
Ejercicio
Ejemplo:
Ejercicios
Desnormalización 
Puede ser conveniente desnormalizar según aspectos de 
desempeño y manejabilidad (propósito de la base de 
datos). 
Diferenciar el punto de vista académico y teórico del 
práctico. 
Si las tablas están en 3FN, las inserciones no serían un 
problema, pero las actualizaciones y los borrados 
constantes sí lo podrían ser.
Desde la perspectiva de un desarrollador, podría no ser 
práctico llegar a la 5FN. 
• Repetir atributos que se usen para un cálculo, sin necesidad de 
tener que unir con otras tablas. 
• Cuando existen grupos de filas, que deben ser procesadas como 
grupo, más que como fila. 
• Cuando ciertos atributos en una tabla son constantemente 
consultados.

Más contenido relacionado

La actualidad más candente

Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosSergio Sanchez
 
Diccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónDiccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónYaskelly Yedra
 
Diccionario De Datos
Diccionario De DatosDiccionario De Datos
Diccionario De Datosnahun1385
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosYarquiri Claudio
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosVannesa Salazar
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de javainnovalabcun
 
esto es de transformacion del modelo relacional
esto es  de transformacion del modelo relacionalesto es  de transformacion del modelo relacional
esto es de transformacion del modelo relacionalBrahyan Marquez
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalLuis Jherry
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosJorge Luis Chalén
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniRAUL CHIPANA LARICO
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...Jesús Navarro
 

La actualidad más candente (20)

Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Diccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónDiccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de información
 
Normalizacion de Base de datos,
Normalizacion de Base de datos, Normalizacion de Base de datos,
Normalizacion de Base de datos,
 
22 ejercicios base de datos
22 ejercicios base de datos 22 ejercicios base de datos
22 ejercicios base de datos
 
Colas estáticas. IESIT
Colas estáticas. IESITColas estáticas. IESIT
Colas estáticas. IESIT
 
Diccionario De Datos
Diccionario De DatosDiccionario De Datos
Diccionario De Datos
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
 
esto es de transformacion del modelo relacional
esto es  de transformacion del modelo relacionalesto es  de transformacion del modelo relacional
esto es de transformacion del modelo relacional
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
 

Destacado

Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnLuis Jherry
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosMayra Romero
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciònomarzon
 
Base de datos modelo entidad relacion
Base de datos modelo entidad relacionBase de datos modelo entidad relacion
Base de datos modelo entidad relacionFco Javier Rodriguez
 
5. ejercicios normalización
5. ejercicios normalización5. ejercicios normalización
5. ejercicios normalizaciónAny Saula
 
Normalizacion
NormalizacionNormalizacion
NormalizacionHugo HJ
 
Politicas de seguridad de la informacion
Politicas de seguridad de la informacionPoliticas de seguridad de la informacion
Politicas de seguridad de la informacionRomario Correa Aguirre
 
Tipos de dependencias funcionales
Tipos de dependencias funcionalesTipos de dependencias funcionales
Tipos de dependencias funcionalesald32
 
Politicas de seguridad INFORMATICA
Politicas de seguridad INFORMATICAPoliticas de seguridad INFORMATICA
Politicas de seguridad INFORMATICAerickaoblea1
 
Políticas de seguridad de la información
Políticas de seguridad de la informaciónPolíticas de seguridad de la información
Políticas de seguridad de la informaciónFranklin Duarte
 
Unidad iii normalizacion
Unidad iii normalizacionUnidad iii normalizacion
Unidad iii normalizacionOrlando Verdugo
 
Seguridad informacion
Seguridad informacionSeguridad informacion
Seguridad informacionBioga Dixital
 
Seguridad de la informacion
Seguridad de la informacionSeguridad de la informacion
Seguridad de la informacionGiovanita Caira
 
Seguridad De La información
Seguridad De La informaciónSeguridad De La información
Seguridad De La informaciónLiliana Pérez
 
Introducción a la Seguridad de la Información
Introducción a la Seguridad de la Información Introducción a la Seguridad de la Información
Introducción a la Seguridad de la Información Jonathan López Torres
 
Ai seguridad de_la_informacion
Ai seguridad de_la_informacionAi seguridad de_la_informacion
Ai seguridad de_la_informacionGeGuMe
 
Seguridad de la Informacion
Seguridad de la InformacionSeguridad de la Informacion
Seguridad de la InformacionDigetech.net
 

Destacado (20)

Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fn
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciòn
 
Base de datos modelo entidad relacion
Base de datos modelo entidad relacionBase de datos modelo entidad relacion
Base de datos modelo entidad relacion
 
5. ejercicios normalización
5. ejercicios normalización5. ejercicios normalización
5. ejercicios normalización
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Politicas de seguridad de la informacion
Politicas de seguridad de la informacionPoliticas de seguridad de la informacion
Politicas de seguridad de la informacion
 
Base datos normalización une
Base datos normalización uneBase datos normalización une
Base datos normalización une
 
Tema 7
Tema 7Tema 7
Tema 7
 
Tipos de dependencias funcionales
Tipos de dependencias funcionalesTipos de dependencias funcionales
Tipos de dependencias funcionales
 
Politicas de seguridad INFORMATICA
Politicas de seguridad INFORMATICAPoliticas de seguridad INFORMATICA
Politicas de seguridad INFORMATICA
 
Políticas de seguridad de la información
Políticas de seguridad de la informaciónPolíticas de seguridad de la información
Políticas de seguridad de la información
 
Normalización de las bases de datos
Normalización de las bases de datosNormalización de las bases de datos
Normalización de las bases de datos
 
Unidad iii normalizacion
Unidad iii normalizacionUnidad iii normalizacion
Unidad iii normalizacion
 
Seguridad informacion
Seguridad informacionSeguridad informacion
Seguridad informacion
 
Seguridad de la informacion
Seguridad de la informacionSeguridad de la informacion
Seguridad de la informacion
 
Seguridad De La información
Seguridad De La informaciónSeguridad De La información
Seguridad De La información
 
Introducción a la Seguridad de la Información
Introducción a la Seguridad de la Información Introducción a la Seguridad de la Información
Introducción a la Seguridad de la Información
 
Ai seguridad de_la_informacion
Ai seguridad de_la_informacionAi seguridad de_la_informacion
Ai seguridad de_la_informacion
 
Seguridad de la Informacion
Seguridad de la InformacionSeguridad de la Informacion
Seguridad de la Informacion
 

Similar a Normalización en Bases de datos

Clase 6 - Normalización
Clase 6  - NormalizaciónClase 6  - Normalización
Clase 6 - NormalizaciónEddie Malca
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalizacióncintiap25
 
Bases de datos 16112009
Bases de datos 16112009Bases de datos 16112009
Bases de datos 16112009mariqueve
 
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVERTODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVERSaulTapiaAlmidon
 
10Guia2
10Guia210Guia2
10Guia2Wilson
 
Diseño logico de la base de datos
Diseño logico de la base de datosDiseño logico de la base de datos
Diseño logico de la base de datosFabricio Sanchez
 
Tecnologia relaciones y consultas 8-7 (1)
Tecnologia relaciones y consultas 8-7 (1)Tecnologia relaciones y consultas 8-7 (1)
Tecnologia relaciones y consultas 8-7 (1)MarianaMillan4
 
creacion de basse de datos para alumnos de unidep en sistamas portales
creacion de basse de datos para alumnos de unidep en sistamas portalescreacion de basse de datos para alumnos de unidep en sistamas portales
creacion de basse de datos para alumnos de unidep en sistamas portalesLuisMagaa45
 

Similar a Normalización en Bases de datos (20)

Clase 6 - Normalización
Clase 6  - NormalizaciónClase 6  - Normalización
Clase 6 - Normalización
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
004 normalizacion
004 normalizacion004 normalizacion
004 normalizacion
 
Tuto 2 -normalizacion
Tuto 2 -normalizacionTuto 2 -normalizacion
Tuto 2 -normalizacion
 
05. normalización
05. normalización05. normalización
05. normalización
 
Bases de datos 16112009
Bases de datos 16112009Bases de datos 16112009
Bases de datos 16112009
 
5 n
5 n5 n
5 n
 
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVERTODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
 
Base de datos ti09313
Base de datos ti09313Base de datos ti09313
Base de datos ti09313
 
10Guia2
10Guia210Guia2
10Guia2
 
capV_normalizacion.pptx
capV_normalizacion.pptxcapV_normalizacion.pptx
capV_normalizacion.pptx
 
Taller Access #2
Taller Access #2Taller Access #2
Taller Access #2
 
Diseño logico de la base de datos
Diseño logico de la base de datosDiseño logico de la base de datos
Diseño logico de la base de datos
 
Base
BaseBase
Base
 
Visualfoxpro
VisualfoxproVisualfoxpro
Visualfoxpro
 
Base de datos ti09313
Base de datos ti09313Base de datos ti09313
Base de datos ti09313
 
Computacion sb
Computacion sbComputacion sb
Computacion sb
 
Tecnologia relaciones y consultas 8-7 (1)
Tecnologia relaciones y consultas 8-7 (1)Tecnologia relaciones y consultas 8-7 (1)
Tecnologia relaciones y consultas 8-7 (1)
 
01 introduccion (1)my sql
01 introduccion (1)my sql01 introduccion (1)my sql
01 introduccion (1)my sql
 
creacion de basse de datos para alumnos de unidep en sistamas portales
creacion de basse de datos para alumnos de unidep en sistamas portalescreacion de basse de datos para alumnos de unidep en sistamas portales
creacion de basse de datos para alumnos de unidep en sistamas portales
 

Más de kamui002

Evaluación
EvaluaciónEvaluación
Evaluaciónkamui002
 
2.1 Diseño, prototipo y construcción
2.1 Diseño, prototipo y construcción2.1 Diseño, prototipo y construcción
2.1 Diseño, prototipo y construcciónkamui002
 
Instalación de MySQL en Linux Mint
Instalación de MySQL en Linux MintInstalación de MySQL en Linux Mint
Instalación de MySQL en Linux Mintkamui002
 
Instalación Mysql en Win7
Instalación Mysql en Win7Instalación Mysql en Win7
Instalación Mysql en Win7kamui002
 
Diseño interactivo centrado en usuario
Diseño interactivo centrado en usuarioDiseño interactivo centrado en usuario
Diseño interactivo centrado en usuariokamui002
 
Prototipado
PrototipadoPrototipado
Prototipadokamui002
 
Base de datos: Algebra relacional
Base de datos: Algebra relacionalBase de datos: Algebra relacional
Base de datos: Algebra relacionalkamui002
 
El proceso del diseño interactivo
El proceso del diseño interactivoEl proceso del diseño interactivo
El proceso del diseño interactivokamui002
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuariokamui002
 
Comprendiendo al usuario
Comprendiendo al usuarioComprendiendo al usuario
Comprendiendo al usuariokamui002
 
Conocimiento en la cabeza y en el mundo
Conocimiento en la cabeza y en el mundoConocimiento en la cabeza y en el mundo
Conocimiento en la cabeza y en el mundokamui002
 
La psicología de las acciones cotidianas
La psicología de las acciones cotidianasLa psicología de las acciones cotidianas
La psicología de las acciones cotidianaskamui002
 
Modelo relacional y reglas de integridad
Modelo relacional y reglas de integridadModelo relacional y reglas de integridad
Modelo relacional y reglas de integridadkamui002
 
Recopilación de datos
Recopilación de datosRecopilación de datos
Recopilación de datoskamui002
 
Observación de usuario
Observación de usuarioObservación de usuario
Observación de usuariokamui002
 
1.2 Puertas de Norman
1.2 Puertas de Norman1.2 Puertas de Norman
1.2 Puertas de Normankamui002
 
BD - Semana 1
BD - Semana 1BD - Semana 1
BD - Semana 1kamui002
 
1-1 Introducción IHC
1-1 Introducción IHC1-1 Introducción IHC
1-1 Introducción IHCkamui002
 
Presentación curso Base de Datos
Presentación curso Base de DatosPresentación curso Base de Datos
Presentación curso Base de Datoskamui002
 

Más de kamui002 (20)

Evaluación
EvaluaciónEvaluación
Evaluación
 
2.1 Diseño, prototipo y construcción
2.1 Diseño, prototipo y construcción2.1 Diseño, prototipo y construcción
2.1 Diseño, prototipo y construcción
 
Instalación de MySQL en Linux Mint
Instalación de MySQL en Linux MintInstalación de MySQL en Linux Mint
Instalación de MySQL en Linux Mint
 
Instalación Mysql en Win7
Instalación Mysql en Win7Instalación Mysql en Win7
Instalación Mysql en Win7
 
Diseño interactivo centrado en usuario
Diseño interactivo centrado en usuarioDiseño interactivo centrado en usuario
Diseño interactivo centrado en usuario
 
Prototipado
PrototipadoPrototipado
Prototipado
 
Base de datos: Algebra relacional
Base de datos: Algebra relacionalBase de datos: Algebra relacional
Base de datos: Algebra relacional
 
El proceso del diseño interactivo
El proceso del diseño interactivoEl proceso del diseño interactivo
El proceso del diseño interactivo
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
 
Comprendiendo al usuario
Comprendiendo al usuarioComprendiendo al usuario
Comprendiendo al usuario
 
Conocimiento en la cabeza y en el mundo
Conocimiento en la cabeza y en el mundoConocimiento en la cabeza y en el mundo
Conocimiento en la cabeza y en el mundo
 
La psicología de las acciones cotidianas
La psicología de las acciones cotidianasLa psicología de las acciones cotidianas
La psicología de las acciones cotidianas
 
Modelo relacional y reglas de integridad
Modelo relacional y reglas de integridadModelo relacional y reglas de integridad
Modelo relacional y reglas de integridad
 
Recopilación de datos
Recopilación de datosRecopilación de datos
Recopilación de datos
 
Observación de usuario
Observación de usuarioObservación de usuario
Observación de usuario
 
Modelo ER
Modelo ERModelo ER
Modelo ER
 
1.2 Puertas de Norman
1.2 Puertas de Norman1.2 Puertas de Norman
1.2 Puertas de Norman
 
BD - Semana 1
BD - Semana 1BD - Semana 1
BD - Semana 1
 
1-1 Introducción IHC
1-1 Introducción IHC1-1 Introducción IHC
1-1 Introducción IHC
 
Presentación curso Base de Datos
Presentación curso Base de DatosPresentación curso Base de Datos
Presentación curso Base de Datos
 

Normalización en Bases de datos

  • 2. Las bases de datos relacionales se normalizan para: • Evitar la redundancia de los datos. • Evitar problemas de actualización de los datos en las tablas. • Proteger la integridad de los datos. Una tabla puede encontrarse en primera forma normal y no en segunda forma normal, pero no al contrario. • Lo mismo aplica para las siguientes formas normales.
  • 3. 1FN: • Eliminar “grupos de repetición”. Para poderlos eliminar se crea una nueva tabla con una llave primaria compuesta. • Impedir que un atributo pueda tomar más de un valor. 2FN: • Eliminar dependencias parciales y separar dentro de sus propias tablas. 3FN: • Eliminar dependencias transitivas (aquellas en la cual existen columnas que dependen de otras columnas que no son llave).
  • 4. 1FN Los dominios de los atributos deben incluir solo valores atómicos. • Los atributos no pueden ser multi-valorados ni compuestos. Si no se aplica: se presenta repetición de datos.
  • 5. 1FN
  • 6. 2FN df2 y df3 son dependencias parciales.
  • 7. 2FN
  • 8. 3FN
  • 9. 3FN
  • 10. Forma normal de Boyce-Codd (FNBC o BCFN) Dentro de la dependencia funcional de la tabla, todo determinante es una clave candidata. (DNI, Asignatura) →Tutor y Tutor→Asignatura.
  • 11.
  • 12. Tutoria (DNI, asignatura, tutor) F = { DNI, asignatura  tutor, tutor  asignatura } Descomposiciones posibles: • {DNI, tutor} y {DNI, asignatura} • {asignatura, tutor} y {asignatura, DNI} • {tutor, asignatura} y {tutor, DNI}
  • 13. Ejercicio 4FN Eliminar dependencias multi-valoradas. • Un atributo multi-valorado es un atributo que ayuda a describir una entidad; en la extensión de una tabla, el valor del atributo se repetiría varias veces. • Sucede en tablas de «producto cruzado». Si no se hace con cuidado: • Se puede perder información. • Presenta repetición. Si XY|Z, entonces X,Y y X,Z.
  • 14. Para la 4FN, se separa en dos tablas: Reduce la necesidad de inserciones, actualizaciones y borrados. Beneficio: En algunos casos, ocupará menos espacio. Costo: Afecta el desempeño de las consultas, ya que implicaría más uniones entre tablas.
  • 15.
  • 16.
  • 17. Ejercicio 5FN Divide una tabla en tres o más. Se puede encontrar en una relación muchos a muchos a muchos. FN polémica (depende de la situación). Una tabla no está en 5FN si hay una descomposición de esa tabla que muestre la misma información que la original.
  • 18.
  • 20. Ejemplo: Un servicio de biblioteca quiere llevar el control del préstamo que incluya los siguientes datos: • Información sobre el usuario del servicio, datos del libro y la información sobre el préstamos que se realiza. usuario libro • Usuario(id_usuario, nombre, id_libro, fecha_prestamo, fecha_entrega) • Libro(id_libro, título, editorial, país, año)
  • 21. • Usuario(id_usuario, nombre, id_libro, fecha_prestamo, fecha_entrega) • Libro(id_libro, título, editorial, país, año) En Usuario, cada vez que un usuario pida un libro hay que escribir su número de usuario (id_usuario) y su nombre (nombre). ¿Qué problemas puede traer esto? • Hacer una tabla con datos y ver que pasa.
  • 22. ¿Qué problemas puede traer esto? id_usuario nombre id_libro fecha_prestamo fecha_entrega 3435 J. Perez Qa76.9 25/4/07 13/5/07 3435 J. Perez Qa76.9 5/10/07 13/10/07 3435 J. Perez Qa76.893 3/4/07 13/3/07 5678 A. Ramírez Qa76.9 2/4/07 3/5/07
  • 23. 1FN Usuario(id_usuario, nombre, id_libro, fecha_prestamo, fecha_entrega) 1. Identificar “grupos de repetición”. • “grupo de repetición”: id_usuario, nombre, id_libro, fecha_prestamo, fecha_entrega. 2. Eliminar “grupos de repetición”. • Se crea una nueva tabla con una llave primaria compuesta. Prestamo(id_usuario, id_libro, fecha_prestamo, fecha_entrega).
  • 24. 2FN Todas las dependencias parciales se deben eliminar y separar dentro de sus propias tablas. • Una dependencia parcial es un atributo que no depende completamente de la llave primaria (dependencia funcional). • Normalmente se presenta cuando la llave primaria es compuesta. Prestamo(id_usuario, id_libro, fecha_prestamo, fecha_entrega)
  • 25. Pasos 2FN: • Determinar cuáles atributos no dependen de la llave primaria compuesta de la tabla. • Eliminar esas columnas de la tabla base. • Crear una segunda tabla con esos atributos cuya llave primaria será el atributo del cual dependen.
  • 26. 3FN En ésta no hay dependencias transitivas. • Una dependencia transitiva es aquella en la cual existen atributos que dependen de otros atributos que tampoco son llave. Usuario(id_usuario, nombre) Prestamo(id_usuario, id_libro, fecha_prestamo, fecha_entrega)
  • 27. Pasos 3FN: • Determinar que columnas son dependientes de otra columna no llave. • Eliminar esas columnas de la tabla base • Crear otra tabla con esas columnas y con la columna no llave de la cual son dependientes, crear una llave primaria para esta tabla.
  • 28. Considerando la entidad usuario, sus atributos son: Usuario(id_usuario, nombre) Libro(id_libro, título, editorial, país, año) Prestamo(id_usuario, id_libro, fecha_prestamo, fecha_entrega) usuario prestamo libro
  • 29. Ejercicio Venta (Num_Orden, Fecha, Num_Cliente, Nombre_Cliente, Direccion_Cliente, Num_Vendedor, Nombre_Vendedor, Clave_Prod, Descripcion, Cantidad, Precio_Unidad)
  • 30. 1FN Venta(Num_Orden, Fecha, Num_Cliente, Nombre_Cliente, Direccion_Cliente, Num_Vendedor, Nombre_Vendedor, Clave_Prod, Descripcion, Cantidad, Precio_Unidad) Venta(Num_Orden, Fecha, Num_Cliente, Nombre_Cliente, Direccion_Cliente, Num_Vendedor, Nombre_Vendedor) DetalleVenta(Num_Orden, Clave_Prod, Descripcion, Cantidad, PrecioUnidad)
  • 31. 2FN Venta(Num_Orden, Fecha, Num_Cliente, Nombre_Cliente, Direccion_Cliente, Num_Vendedor, Nombre_Vendedor) DetalleVenta(Num_Orden, Clave_Prod, Descripcion, Cantidad, PrecioUnidad) Producto(Clave_Prod, Descripcion) DetalleVenta(Num_Orden, Clave_Prod, Cantidad, PrecioUnidad) //caso donde el precio puede variar, por promociones, descuento a clientes, etc. Venta(Num_Orden, Fecha, Num_Cliente, Nombre_Cliente, Direccion_Cliente, Num_Vendedor, Nombre_Vendedor)
  • 32. 2FN Si no se aplica: • Repetición de datos. La “descripción” aparecería cada que se tiene una venta sobre un producto. • Al borrar: Al borrar información de los productos en DetalleVenta, se borra el producto. • Al insertar: Para insertar un producto, se debería insertar una órden de venta. • Al actualizar: Para cambiar una descripción, se debe cambiar en cada DetalleVenta.
  • 33. 3FN Venta(Num_Orden, Fecha, Num_Cliente, Nombre_Cliente, Direccion_Cliente, Num_Vendedor, Nombre_Vendedor) Cliente(Num_Cliente, Nombre_Cliente, Direccion_Cliente) Vendedor(Num_Vendedor, Nombre_Vendedor) Venta(Num_Orden, Fecha, Num_Cliente, Num_Vendedor)
  • 34. Si no se aplica 3FN: • Repetición de datos: El nombre del cliente y del vendedor aparecería en cada Venta. • Al borrar: Al borrar una Venta, se borra el cliente y el vendedor. • Al insertar: Al insertar un vendedor o cliente, se tendría que agregar una venta. • Al actualizar: Para cambiar un nombre o dirección, se debe cambiar en cada Venta.
  • 35. Ejemplo Se requiere tener la información sobre los alumnos de los distintos programas de posgrado: • datos generales, • que grado cursan (especialidad, maestría o doctorado), • el nombre del programa, • que materias han cursado, • que calificación llevan en cada una de ellas, • en que período la cursaron y con que profesor, • de cada materia se necesita saber su clave, su área y el número de créditos.
  • 36. alumno(matricula, nombre, grado, programa, clave_mat, materia, profesor, periodo_cursado, calificacion, creditos, área) 1FN: Identificar “grupos de repetición” y sacarlos a otra tabla.
  • 37. alumno(matricula, nombre, grado, programa, clave_mat, materia, profesor, periodo_cursado, calificacion, creditos, area) alumno(matricula, nombre, grado, programa) alumno-materia(matricula, clave_mat, materia, profesor, periodo_cursado, calificacion, creditos, area))
  • 38. 2FN: Identificar atributos que no dependen completamente de la llave primaria compuesta y mandarlos a otra tabla. alumno-materia(matricula, clave_mat, materia, profesor, periodo_cursado, calificacion, creditos, area))
  • 39. alumno-materia(matricula, clave_mat, materia, profesor, periodo_cursado, calificacion, creditos, area) alumno-materia(matricula, clave_mat, periodo_cursado, profesor, calificacion) materia(clave_mat, materia, creditos, área)
  • 40. 3FN: Identificar atributos no llave que dependan de otro atributo no llave. nombre alumno matricula grado programa alumno-materia profesor matricula, clave_mat, periodo_cursada calificacion materia materia clave_mat creditos area
  • 41. Ejercicio ordenes (id_orden, fecha, id_cliente, nom_cliente, estado, num_art, nom_art, cant, precio)
  • 42. 1FN ordenes (id_orden, fecha, id_cliente, nom_cliente, estado, num_art, nom_art, cant, precio) ordenes (id_orden, fecha, id_cliente, nom_cliente, estado) articulos_ordenes (id_orden, num_art, nom_art, cant, precio)
  • 43. 2FN ordenes (id_orden, fecha, id_cliente, nom_cliente, estado) //ya está en 2FN articulos_ordenes (id_orden, num_art, nom_art, cant, precio) articulos_ordenes (id_orden, num_art, cant) articulos ( num_art, nom_art, precio)
  • 44. 3FN ordenes (id_orden, fecha, id_cliente, nom_cliente, estado) ordenes (id_orden, fecha, id_cliente) clientes (id_cliente, nom_cliente, estado)
  • 46.
  • 47.
  • 48.
  • 50.
  • 52.
  • 53.
  • 55.
  • 56.
  • 57. Desnormalización Puede ser conveniente desnormalizar según aspectos de desempeño y manejabilidad (propósito de la base de datos). Diferenciar el punto de vista académico y teórico del práctico. Si las tablas están en 3FN, las inserciones no serían un problema, pero las actualizaciones y los borrados constantes sí lo podrían ser.
  • 58. Desde la perspectiva de un desarrollador, podría no ser práctico llegar a la 5FN. • Repetir atributos que se usen para un cálculo, sin necesidad de tener que unir con otras tablas. • Cuando existen grupos de filas, que deben ser procesadas como grupo, más que como fila. • Cuando ciertos atributos en una tabla son constantemente consultados.