Académique Documents
Professionnel Documents
Culture Documents
Normalización
Elementos básicos del MR
RELACIÓN
Es la estructura básica del modelo relacional. Se representa
mediante una tabla.
DOMINIO
Es el conjunto válido de valores que toma un atributo.
Existen con independencia de cualquier otro elemento.
ATRIBUTO
Representa las propiedades de la relación. Se representa
mediante una columna.
TUPLA
Es una ocurrencia de la relación. Se representa mediante una
fila.
EJEMPLOS
Normalizando la BD: primera
forma normal (1FN)
Incorrecto
Clientes
45 Francisco 45 444444444
275 666666666
No se permiten campos nulos
Esta regla es algo discutible, pero tiene su lógica. Para
empezar, si un campo va a tener valores nulos, ¿qué
proporción de registros tendrán ese campo con valor
nulo? En mi opinión esta regla nos ayuda a separar unas
entidades de otras, porque si una cantidad de registros
tienen unos atributos que otros no, ¿no será que
pertenecen a otra clase? Por ejemplo, si en una tabla de
productos definimos los campos talla, kilates y potencia
se ve que los productos tendrán clases diversas y
entonces habrá que crear una entidad para cada clase
(ropas, joya y eléctricos, por ejemplo) construyendo lo
que se llama una generalización.
Ejemplo3: Incorrecto
productos
IDProducto Nombre Talla Kilates Potencia
Blusa
147 44 NULL NULL
fashion
Broche
155 NULL 24 NULL
duquesa
Subwoofe
221 NULL NULL 1500
r extreme
Correcto
NORMALIZANDO LA BD:
SEGUNDA FORMA NORMAL
(2FN)
Ejemplo: Incorrecto
lineas_pedido
IDCliente IDProducto Cantidad Nombre_producto
Zapatillas deportivas de
29 42 1
tenis
Balón reglamentario de
46 9 5
baloncesto
Zapatillas deportivas de
204 42 1
tenis
Zapatillas deportivas de
144 10 1
rugby
correcto
Como vemos en la tabla “lineas_pedido” del ejemplo
incorrecto, la única clave candidata es IDCliente +
IDProducto, ya que en conjunto son únicas en la tabla
(podríamos tener un IDLinea_pedido único también, pero
aún así esos dos campos segurían siendo una clave
candidata). El campo Cantidad es dependiente de la clave
candidata, pues el cliente ha pedido de ese producto una
cantidad determinada de artículos, pero el nombre en
cambio es dependiente sólo del producto, no del cliente. Si
dejaramos esa tabla como está, tendríamos por una parte una
redundancia de datos innecesaria pues el nombre del
producto lo podemos sacar uniendo la tabla de productos, y
además podrían darse inconsistencias de datos si
cambiamos el nombre del producto en un registro… ¿cuál
sería el nombre real del producto 42 si en varios registros
tiene un nombre distinto?
NORMALIZANDO LA BD:
TERCERA FORMA NORMAL
(3FN)
Ejemplo: Incorrecto
carga_diaria
Nombre_ser
IDServidor Fecha IDServicio Carga
vicio
21 2009-01-14 1 Oracle 100
21 2009-01-15 9 MySQL 100
21 2009-01-16 22 Apache 85
34 2009-01-14 3 PostgreSQL 74
34 2009-01-15 22 Apache 58
34 2009-01-16 22 Apache 67
66 2009-01-14 9 MySQL 98
66 2009-01-15 22 Apache 94
66 2009-01-16 1 Oracle 10g 84
Correcto
servicios
carga_diaria
IDServidor Fecha IDServicio Carga Nombre_servi
IDServicio
cio
21 2009-01-14 1 100
1 Oracle
21 2009-01-15 9 100
9 MySQL
21 2009-01-16 22 85
22 Apache
34 2009-01-14 3 74
3 PostgreSQL
34 2009-01-15 22 58
22 Apache
34 2009-01-16 22 67
22 Apache
66 2009-01-14 9 98
9 MySQL
66 2009-01-15 22 94
22 Apache
66 2009-01-16 1 84
1 Oracle 10g
Imaginad que una tabla se encarga de registrar el primer
servicio que más carga los servidores cada día. Del
ejemplo incorrecto deducimos que el IDServidor y la
Fecha son la clave candidata, pues identifican de manera
única los registros. Analizando vemos que el IDServicio,
que no es un campo primario, depende únicamente de la
clave candidata, y que la carga también. Pero resulta que
el Nombre_servicio depende de esa clave candidata pero
también depende del IDServicio, pues con el IDServicio
podemos averiguar qué Nombre_servicio tiene el
registro. Para solucionar esto sacamos el campo
Nombre_servicio de la tabla, y nos llevamos el
IDServicio para que sea la clave principal pues es el
campo del que depende
Y con este ejemplo vemos qué fácil es librarnos
de las inconsistencias de no cumplir la tercera
forma normal, y de la redundancia de datos. Si
no hubieramos normalizado tendríamos que en
un registro el IDServicio 22 es Apache y nadie
nos asegura que en otro el IDServicio 22 también
lo sea pues puede haberse modificado el campo
Nombre_servicio. Y si resulta que la tabla fuese
un histórico de 500 servidores durante 1000 días,
tendríamos 500 mil registros con un campo
innecesario que estaría duplicado muchísimas
veces.
Proceso de Construcción
de una base de datos
Minimund
o
OBTENCION Y ANALISIS DE
REQUERIMIENTOS
DISEÑO CONCEPTUAL
Modelo Entidad Relación NORMALIZACION
Extendido
DISEÑO FISICO
¿Cómo utilizamos la normalización
nosotros?
Minimund
o
OBTENCION Y ANALISIS DE
REQUERIMIENTOS
DISEÑO CONCEPTUAL
Modelo Entidad Relación
Extendido
DISEÑO FISICO
Normalización
permitiendo
Expresar formalmente las razones por las
que una agrupación de atributos
es mejor que otra
Normalización
“Bondad” de las relaciones
no es válido no es válido
Analicemos la redundancia:
• ¿Cuantas veces aparece la información correspondiente a
cada sucursal? ¿Qué problemas puede acarrear?
Aspectos importantes a
considerar a la hora de diseñar
Anomalías de actualización
Aspectos importantes a
considerar a la hora de diseñar
3. Reducción de valores redundantes
Analicemos los mismos interrogantes con las siguientes relaciones:
Sucursales
Nro_Suc Nombre Direccion Localidad Departamento
1 Sacramento Toranzo 350 Norte Desamparados Capital
2 Higueras C.Cabot 3350 Oeste Rivadavia Rivadavia
3 Espigas Aberastain 333 Sur Concepcion Capital
4 Santa Rita Av. Libertador 1230 Oeste Desamparados Capital
5 Excelencia Av. Libertador 30 Oeste Capital Capital
6 Castillo Ig. de la Roza 671 Caucete Caucete
Clientes
DNI_Cli Nombre_Cli Tel_Cli Direccion_Cli Localidad Departamento
17.343.232 Ana Perez 4223465 25 de Mayo 504 Este Concepcion Capital
7.432.567 Juan Flores 4223312 Av. Cordoba 107 Oeste Capital Capital
6.987.675 Sergio Alba 4221674 Aberastain 34 Sur Capital Capital
14.878.234 Miguel Rueda 4340023 H. Yrigoyen 1171 Sur Rawson Rawson
20.333.675 Silvia Gomez 4233495 Av. Libertador 3300 Oeste Rivadavia Rivadavia
6.967.908 Javier Lima 4231100 H. Yrigoyen 11 Sur Rivadavia Rivadavia
DNI_Cli Nro_Suc
Es_cliente_de 17.343.232 1
7.432.567 1
6.987.675 3
14.878.234 5
20.333.675 3
6.967.908 6
Aspectos importantes a
considerar a la hora de diseñar
3. Reducción de valores redundantes:
Debemos diseñar las relaciones de manera de evitar las
anomalías de inserción, eliminación y modificación en
las relaciones
Evitar la inconsistencia
de la base de datos
GUÍA PRÁCTICA 1
MODELO ENTIDAD/RELACIÓN
ENUNCIADO
Utilizar el modelo entidad/relación para modelar:
El Sauna XYZ requiere registrar el ingreso de los
clientes, guardando un control de fecha y hora de
ingreso; así mismo, asigna una llave numerada a de
un casillero donde el podrá dejar sus pertenencias.
Cuando el Cliente abandone el sauna, debe entregar la
llave asignada para que el encargado registre la
hora de salida, liberando el casillero para que pueda ser
asignado a otro cliente.
CONOCIMIENTO TEÓRICO REQUERIDO.-
Para la realización de esta práctica el estudiante
debe conocer la notación gráfica del modelo
entidad-relación.
OBJETIVOS.-
Practicar el modelamiento de bases de datos
MATERIALES Y EQUIPOS.-
Se empleará como herramienta de trabajo la
notación del modelo entidad-relación
TÉCNICA O PROCEDIMIENTO.-
En esta práctica el estudiante debe:
Diseñar la base de datos utilizando el modelo
entidad-relación
Realizar varias pruebas para verificar que el
modelo propuesto este completo
CUESTIONARIO.-
¿Qué resultó más difícil para usted en la solución de los problemas
planteados?
¿Qué pasos aplicó en la construcción del modelo entidad/relación?
¿Alguno de los ejercicios requirió la utilización de entidades débiles?