You are on page 1of 37

Normalización

Diseño de esquemas relacionales
Relaciones libres de anomalías
Ejemplos de descomposición
Descomposición sin pérdida

Dependencia funcional
Ejemplos básicos

Formas normales (anomalías)
1ª. Forma normal(1NF)
2ª. Forma normal(2NF)
3ª. Forma normal(3NF)

Guía para normalizar 3NF
Otras formas normales
Comparación con otros modelos
Modelos de datos
1

Primera Forma Normal (1FN)
Nombre

Antig

Direcciones

Ciudad

reg 1

TASA

25 a–os

Reforma 23 Puebla

reg 2

MESA

15 a–os

Juarez 15

Cholula

reg 3

GISA

20 a–os

Sur 322

Puebla

Entidad en 1FN
En el producto
cartesiano todos los
dominios tienen
valores atómicos

Nombre
tupla 1
tupla 2
tupla 3
tupla 4
tupla 5
tupla 6
tupla 7
tupla 8
tupla 9

TASA
TASA
TASA
TASA
MESA
MESA
TASA
GISA
GISA

Producto
clavos
tornillos
tuercas
tachuelas
tuercas
tachuelas
clavos
tornillos
tuercas

Antig
25 a–os
25 a–os
25 a–os
25 a–os
15 a–os
15 a–os
20 a–os
20 a–os
20 a–os

Direcciones
Reforma 23
Reforma 23
Reforma 23
Reforma 23
Juarez 15
Juarez 15
Sur 322
Sur 322
Sur 322

No esta normalizada
ya que no existen
relaciones atómicas
entre los dominios.
Anomalía
¿De qué tamaño es
un registro?

Ciudad
Puebla
Puebla
Puebla
Puebla
Cholula
Cholula
Puebla
Puebla
Puebla

Producto
clavos
tornillos
tuercas
tachuelas
tuercas
tachuelas
clavos
tornillos
tuercas

Cant
400
200
100
50
30
20
20
2 50
40

Segunda Forma Normal (2FN)
Sin embargo la 1FN tiene problemas cuando los atributos tienen
dependencia de varias llaves o dominios independiente.
Nombre
tupla 1
tupla 2
tupla 3
tupla 4
tupla 5
tupla 6
tupla 7
tupla 8
tupla 9

TASA
TASA
TASA
TASA
MESA
MESA
TASA
GISA
GISA

Antig

Direcciones

Ciudad

Producto

Anomalía

Cant

23 Puebla
clavos
400
¿QuéReforma
pasa
cuando
Reforma
23 Puebla
tornillos dejo
200 de

25 a–os
25 a–os
25 a–os
25 a–os
15 a–os
15 a–os
20 a–os
20 a–os
20 a–os

Reforma 23
Reforma 23
Juarez 15
Juarez 15
Sur 322
Sur 322
Sur 322

Puebla
Puebla
Cholula
Cholula
Puebla
Puebla
Puebla

tuercas
tachuelas
tuercas
tachuelas
clavos
tornillos
tuercas

comprarle a TASA ?

100
50
30
20
20
50
40

Ent 1

Entidades en 2FN
Las entidades están en 1FN y
además cada dominio o atributo
depende de un sola llave:
Ent 1 Nombre
==> Ant, Dir,Cd
Ent 2 Nombre, Producto
==> Cant

tupla 1
tupla 2
tupla 3

Nombre
TASA
MESA
GISA
Ent 2
tupla 1
tupla 2
tupla 3
tupla 4
tupla 5
tupla 6
tupla 7
tupla 8
tupla 9

Antig
25 a–os
15 a–os
20 a–os
Nombre
TASA
TASA
TASA
TASA
MESA
MESA
TASA
GISA
GISA

Direcciones Ciudad
Reforma 23 Puebla
Juarez 15
Cholula
Sur 322
Puebla
Producto
clavos
tornillos
tuercas
tachuelas
tuercas
tachuelas
clavos
tornillos
tuercas

Cant
400
200
100
50
30
20
20
503
40

Direcciones Ent 3 Direcciones ==> Ciudad Ent 1 Nombre tupla 1 tupla 2 tupla 3 TASA MESA GISA Ent 3 tupla 1 tupla 2 tupla 3 Antig 25 a–os 15 a–os 20 a–os Direcciones Reforma 23 Juarez 15 Sur 322 Direcciones Reforma 23 Juarez 15 Sur 322 Ciudad Puebla Cholula Puebla 4 .Tercera Forma Normal (3FN) Sin embargo la 2FN tiene problemas cuando uno de los atributos tienen dependencia transitiva de los dominios o atributos Anomalía Ent 1 tupla 1 tupla 2 tupla 3 Nombre Direcciones Ciudad ¿Qué Antig pasa cuando TASA TASA MESA GISA ser Reforma mi proveedor? 25de a–os 23 Puebla 15 a–os Juarez 15 Cholula 20 a–os Sur 322 Puebla Entidades en 3FN Las entidades están en 2FN y además cada dominio o atributo depende NO transitivamente de un sola llave: Ent 1 Nombre ==> Ant.

siendo ajena para el usuario. tupla 1 tupla 2 tupla 3 Ent 2 Entidad sin normalizar Nombre Antig Direcciones Ciudad reg 1 TASA 25 a–os Reforma 23 Puebla reg 2 MESA 15 a–os Juarez 15 Cholula reg 3 GISA 20 a–os Sur 322 Puebla Producto clavos tornillos tuercas tachuelas tuercas tachuelas clavos tornillos tuercas tupla 1 tupla 2 tupla 3 tupla 4 tupla 5 tupla 6 tupla 7 tupla 8 tupla 9 Ent 3 tupla 1 tupla 2 tupla 3 Nombre Antig TASA MESA GISA 25 a–os 15 a–os 20 a–os Nombre Producto TASA TASA TASA TASA MESA MESA TASA GISA GISA Direcciones Reforma 23 Juarez 15 Sur 322 Cant clavos tornillos tuercas tachuelas tuercas tachuelas clavos tornillos tuercas Direcciones Reforma 23 Juarez 15 Sur 322 400 200 100 50 30 20 20 50 40 Ciudad Puebla Cholula Puebla 5 .Normalización: Redundancia controlada La normalización genera más entidades. Entidades normalizadas Ent 1 Por otro lado el tamaño de los archivos tiende a reducirse. sin embargo esta redundancia aparente esta controlada por el manejador de BD.

Normalización Ulterior La normalización puede ser continuada mas allá de la 3FN.B.D} y las depencias son A==> BCD y D==>A aqui A y D son llaves 4FN Cuarta Forma Normal Las entidades están en BCFN y además no se tienen dependencias multievaluadas 5FN Quinta Forma Normal D/KFN Forma Normal de Dominio y Llave Para los propósitos de una operación administrativa la 3FN es suficientemente poderosa.C. : 6 . existen argumentos académicos interesantes para la existencia de BCFN Forma Normal de Boyce y Codd Las entidades están en 3FN y además todo dominio independiente es una llave candidato: Ent={A.

Con calma hombre. Así por ejemplo un mueble lleva distintos herrajes.Mire yo no soy experto en la materia. dígame que máquina comprar y que sistema de base de datos a usar. He aquí un registro de la entrevista: E n t r e v i s Gerente -. con una cantidad específica de cada herraje por cada mueble. Ingeniero -.La empresa YAVAS empresa dedicada a la fabricación de herrajes para muebles de diversos tipos. precisamente por eso lo llame a UD. ha llamado al experto para que sistematice su operación de pedidos. que son los chunches que se le ponen a los muebles para armarlos hoy en día (no clavos pues).Mire ingeniero queremos que nos ponga un sistema moderno con todas las ventajas de la computación. Los mismos herrajes se usan en diversos muebles pero en cantidades distintas. sus formatos de entrada. en fin las relaciones del sistema de pedidos. El éxito que hemos tenido es que nos piden diversos herrajes para diversos muebles. 7 . esto es sus reportes. primero necesito conocer su realidad informacional. Gerente -. para hacerlos modulares. Esta compañía dedicada a la manufactura de herrajes.

.Gerente -. por cada cliente.Además por cada orden de compra llevamos información de la E n t r e v i s dirección de envío. Por cada herraje conocemos su tipo. Ingeniero -. Conocemos también la información de cada mueble en términos de los tipos y números de herrajes que requieren para usarse en pedidos futuros. sus direcciones. Los descuentos los manejamos únicamente por volumen de compra de cada artículo en cada orden.Como los herrajes se adquieran de distintas plantas necesitamos conocer el nombre de la planta que lo manufactura y la cantidad en inventario del mismo. calidad y descripción. Gerente -. el nombre del cliente y la cantidad y tipo de herrajes de cada mueble en cuestión... Guardamos también el precio del artículo (herraje) por línea de detalle y la fecha de la orden de compra con su numero de folio..Muy bien déjeme trabajar un rato con esta información y le propongo una esquema de sistematización 8 . Ciertamente cada planta nos entrega diversos herrajes.

Suposiciones 10. Defina los Formatos ( Defina formatos comunes ) 3. Defina los Dominios ( Atomice lo mínimo necesario ) 2.Determine las dependencias funcionales ( sentido de la fecha. Elimine las dependencias transitivas 7. Presente los resultados: Dominios. Escriba todas las suposiciones semánticas iniciales 4. Partiendo de la Tabla de Dependencias obtenga: las entidades mínimas necesarias. 8. Obtenga la Tabla de Dependencias (conectando todos los dominios) 5. dominios independientes conjuntos ) 6. tomando cada dominio(s) independiente para entablar a la entidad.Guía de Normalización 1. Entidades. Obtenga aprobación firmada de la definición ó en caso necesario efectúe las modificaciones requeridas (un buen diseño debe no contener más de 100 dominios y 40 entidades por sistema ) 9 . Complete la lista de suposiciones semánticas 9.

D o m i n i o s 1. Descripción Mueble: String ( 40 ) Ejemplo : "Librero Grande" 3. Calidad: String ( 10 ) Ejemplo : "cromo" 8. Méx. Volumen: Integer Ejemplo : 500 16. Precio: Real Ejemplo : $ 0.50 10 . Inventario: Integer Ejemplo : 439 14. Línea Detalle: Integer Ejemplo : 13 11. Toluca. Cantidad: Integer Ejemplo : 80 12. Herraje: Integer Ejemplo : 45 5. Planta: Integer Ejemplo : 12 13. Folio: Integer Ejemplo : 1234 9. Dirección: String ( 40 ) Ejemplo : "Juárez 34. Fecha: Date long Ejemplo : 12/12/1997 10. % de Descuento: Integer Ejemplo : 25 17. Descripción Planta: String (30) Ejemplo : "automatizada grande" 15. Mueble: Integer Ejemplo : 32 2. Descripción Herraje: String ( 40 ) Ejemplo :"horquilla mediana” 7. Número: Integer Ejemplo : 12 6." 4.

Realidad Informacional 11 .

Ordenes : 6. Detalles : 7. Muebles : 2. Plantas : 9. Volumen. Herraje ) ( Planta. Descripción Planta ) ( Herraje. Descripción Herraje. Dirección. Herraje. Cantidad. Inventario ) ( Planta. Descripción Mueble ) ( Dirección. Descuentos : ( Mueble. Mueble. Precio ) ( Folio. Número ) ( Herraje. Direcciones : 3. Línea Detalle. % Descuento ) Suposiciones En cada se planta se producen diversos herrajes Herrajes iguales se producen en plantas distintas El descuento depende del volumen y del herraje El cliente tiene distintas direcciones de envío Un mismo herraje se utiliza en varios muebles Muebles distintos usan herrajes similares En una orden de compra puede tener varias líneas de detalle 12 . Fecha ) ( Folio.E n t i d a d e s 1. Herrajes : 5. Inventarios : 8. Calidad. Cliente ) ( Herraje. Ensambles : 4.

La información con la que cuenta es la siguiente: Por cada departamento tiene un número individual. Date. Codd y su ayudante C. ¿Podría UD. que les de todas las flexibilidades y ventajas de que tanto habla un conferenciante un tanto loco llamado F. Por cada empleado.J. así como su teléfono y su historia salarial. Cada departamento tiene un presupuesto asignado. plantear un esquema de bases de datos relacional para esta información? 13 . además esta convencida de la necesidad de cambiar sus sistemas de información a una base de datos relacional. Por cada proyecto se tiene la información de los empleados que trabajan en el proyecto y el presupuesto del proyecto.Ejercicios de Normalización (1) La empresa ADELANTE tiene una estructura jerárquica en su operación. Igualmente las oficinas asignadas a cada departamento y los teléfonos de cada oficina. así como los proyectos que maneja. Finalmente la empresa conoce el tamaño de cada oficina. consistente en los salarios y puestos que ha desempeñado en la empresa en diferentes fechas.J. cada departamento es manejado por un jefe ( y solo uno ). la empresa conoce en que proyecto esta laborando y a que departamento pertenece.

Por cada línea de detalle en la orden de compra maneja igualmente la cantidad de producto y el número del producto. la dirección de envío. Por cada orden de compra. Por cada producto la descripción del mismo y las plantas donde se produce y por cada planta los productos que produce y el nivel de inventario de cada producto. ahora la empresa ADELANTE desea reestructurar su sistema de ordenes y pedidos. Actualmente maneja la siguiente información: Por cada cliente maneja su limite de crédito. su balance y las direcciones del mismo.Ejercicios de Normalización (2) Habiendo resuelto su base de datos de personal. la fecha. plantear un esquema de bases de datos relacional para esta información? . el número del orden. 14 ¿Podría UD.

Relación 15 .Conversión entre Modelos de Relacional a Entidad .

Elementos del modelo Entidad . si esta subrayado es llave primaria Línea Ligas 16 .Relación Elementos Rectángulo Representa entidades básicas Doble Rectángulo Representa entidades débiles que no tienen llaves primarias Diamante identificador de relaciones Elipse Atributos de la entidad.

17 .Relación Introduce el enfoque de Orientado a Objetos al definir tipos de datos que encapsulen a una entidad completa como un nuevo objeto Permite analizar partes de una Base de Datos de mayor dimensión (muchos dominios) a nivel entidades sin tener que estudiar todos los dominios específico que se vuelven atributos de las mismas.Modelo Entidad .

 DONDE y CUANDO de la BD . 18 Contienen el QUE. QUIEN.6. Integridad y seguridad: Directorio de Datos Las bitácoras modelan y registran los procesos que se  efectúan dentro de la base de datos Se logra por medio de almacenar los datos asociados con la ejecución de los comandos del SQL de la base de datos (altas bajas cambios. COMO. perdidas)  .

dominos. archivos. sistema. depto. Permiso.BITACORAS:  QUE. ubicación. descripción. sistema. tipo de a. archivo. nivel de sistematización/automatización 19 . QUIEN. programas. terminal. sistema Bitácora de Uso: Fecha. terminal. Sistema. programa. Terminal. lugar. depto. COMO. sistema que los usan. usuarios Catálogo de Sistemas: Depto. procedimiento de uso. Dueño. responsable Bitácora de Errores: Tipo. DONDE y CUANDO Bitácora de Usuarios: Usuario. archivos. Registro. permisos Bitácora de Archivos: Password.cceso Imagen Vieja. Password. hora. Imagen Nueva Manuales del Sistema: Sistema. formatos. fecha. Usuario. archivos. usuario.

Normalización del Directorio Ejemplo de las dependencias funcionales de la bitácora de uso 20 .

Uso de la Bitácora Ante estas actualizaciones en las Entidades TAM y ABC la bitácora refleja la siguiente actividad 21 .

Recuperación 22 .

Arranque en Frío 1 2 3 4 5 6 Determinación de la Entidad (Archivo) perdido Cargado del último respaldo Ordenamiento de la bitácora según el archivo perdido Lectura de Imágenes nuevas de cada registro de la entidad en cuestión Lectura de Imágenes viejas de la bitácora y corroboración con la imagen en el respaldo Actualización correspondiente de más antiguo a más reciente 23 .

Respaldos 1 2 3 4 5 Respaldar la base de datos BD cuando se llene la bitácora de uso Respaldar la bitácora de uso y limpiarla la copia actual Se deben mantener copias de la BD y la bitácora en el sitio Es recomendable tener una copia adicional en un lugar ajeno físicamente de la instalación El tamaño de la bitácora es función del número de actualizaciones que tenga la base de datos 24 .

Arranque en Caliente 1 2 3 4 5 Determinación del último punto estable Lectura de imágenes viejas de los archivos modificados en el período de inestabilidad del proceso usando la bitácora de uso Lectura de imágenes nuevas de la bitácora y corroboración con la imagen en el archivo Desactualización de los archivos por medio del reemplazo de imágenes viejas por nuevas Aviso a los usuarios para que repitan las actualizaciones efectuadas durante el período de inestabilidad 25 .

Capacitación Poder Ser == > Costo Inversión Adecuada en tecnología DEBER SER == > Crecimiento e Innovación Libertad. Confiabilidad e Independencia 26 . Selección. dependiente y limitado Querer Ser == > Convencimiento Unificación y Confianza Saber Ser == > Compromiso Preparación. Eficiencia.Camino al cambio de las TI SER == > Existencia de Carencias Sistema caótico.

Estrategias en Base de Datos Para convencer Simulaciones en Hoja de Cálculo Para unificar y generar confianza Llevar a Base de Datos las aplicaciones nuevas Para promover la cooperación Primero llevar a Base de Datos los procesos externos 27 .

CIUDAD = “Puebla” Basados en el cálculo de predicados.7. Lenguajes para BD: álgebra y cálculo relacional El LDD es el Lenguaje de Definición de los Datos El LMD es el Lenguaje de Manipulación de los Datos Existen dos grandes clases de lenguajes de consulta y acceso relacional: Basados en álgebra relacional El prototipo de esta clase es el denominado SQL (Structured Query Language) Select PROV.PROV# From PROV Where PROV. El prototipo de esta tipo de lenguajes es el PROLOG 28 .

Cantidad. % Descuento ) 29 . Dirección. Descripción Mueble ) Direcciones : ( Dirección. Calidad. Precio ) Ordenes : ( Folio. Mueble. Descripción Herraje. Fecha ) Detalles : ( Folio.Ejemplos de SQL Asumiendo la existencia de los siguientes archivos (entidades) Muebles : ( Mueble. Cliente ) Ensambles : ( Herraje. Volumen. Descripción Planta ) Descuentos : ( Herraje. Herraje. Línea Detalle. Inventario ) Plantas : ( Planta. Número ) Herrajes : ( Herraje. Herraje ) Inventarios : ( Planta.

Solución del SQL 30 .

Ejemplos de SQL (2) Asumiendo la existencia de los siguientes archivos (entidades) 31 .

Solución del SQL (2) 32 .

Ejemplo Numérico Se obtienen las siguientes tuplas Asumiendo estos datos en las entidades 33 .

Manejo de Transacciones Transacciones. Serialización  Enfoques de solución  Protocolo de bloque en dos fases  Transacciones  Consistencia Estado de transacciones  Diagrama de estado en una transacción  Recuperación de falla 34 .8.

o se completa toda o no se completa En su ejecución Activa: SI se encuentra en proceso de ejecución Activa: SI se encuentra en proceso de ejecución Parcialmente Comprometida: se ha ejecutado parte de ella (es estado temporal) Fallida: NO puede ser completada (requiere ser terminada) Terminada: Se efectúa un ROLLBACK para deshacer el proceso Comprometida: Se efectúa un COMMIT para completarla 35 .Criterios en una Transacción En su diseño Correctitud Una transacción debe mantener la consistencia de la BD Atomicidad Una transacción debe manejarse como un objeto atómico. esto es no puede ejecutarse un pedazo del mismo únicamente.

Ejemplo de transacción 36 .

Bibliografía Date C. Data Base Systems 37 . J.