Reglas de Normalización de Base de Datos
Reglas de Normalización de Base de Datos
Reglas de Normalización de Base de Datos
NORMALIZACIÓN
El diseño de una BD relacional se puede realizar aplicando al mundo real, en una primera
fase, un modelo como el modelo E/R, a fin de obtener un esquema conceptual; en una
segunda fase, se transforma dicho esquema al modelo relacional mediante las
correspondientes reglas de transformación. También es posible, aunque quizás menos
recomen- dable, obtener el esquema relacional sin realizar ese paso intermedio que es
el esquema conceptual. En ambos casos, es conveniente (obligatorio en el modelo
relacional directo) aplicar un conjunto de reglas, conocidas como Teoría de
normalización, que nos permiten asegurar que un esquema relacional cumple unas
ciertas propiedades, evitando:
En la teoría de bases de datos relacionales, las formas normales (FN) proporcionan los
criterios para determinar el grado de vulnerabilidad de una tabla a inconsistencias y
anomalías lógicas. Cuanto más alta sea la forma normal aplicable a una tabla, menos
vulnerable será a inconsistencias y anomalías. Edgar F. Codd originalmente definió las
tres primeras formas normales (1FN, 2FN, y 3FN) en 1970. Estas formas normales se han
resumido como requiriendo que todos los atributos sean atómicos, dependan de la
clave completa y en forma directa (no transitiva). La forma normal de Boyce-Codd
(FNBC) fue introducida en 1974 por los dos autores que aparecen en su denominación.
Las cuarta y quinta formas normales (4FN y 5FN) se ocupan específicamente de la
representación de las relaciones muchos a muchos y uno a muchos entre los atributos y
fueron introducidas por Fagin en 1977 y 1979 respectivamente. Cada forma normal
incluye a las anteriores.
Antes de dar los conceptos de formas normales veamos unas definiciones previas:
→
Dependencia funcional: A B, representa que B es funcionalmente dependiente
de A. Para un valor de A siempre aparece un valor de B. Ejemplo: Si A es el D.N.I.,
y B el Nombre, está claro que para un número de D.N.I, siempre aparece el mismo
nombre de titular.
→
Dependencia funcional completa: A B, si B depende de A en su totalidad.
Ejemplo: Tiene sentido plantearse este tipo de dependencia cuando A está
compuesto por más de un atributo. Por ejemplo, supongamos que A corresponde
al atributo compuesto: D.N.I._Empleado + Cod._Dpto. y B es Nombre_Dpto. En este
caso B depende del Cod_Dpto., pero no del D.N.I._Empleado. Por tanto no habría
dependencia funcional completa.
→ →A
Dependencia transitiva: B→ C. Si
→A ByB C, Entonces decimos que C
depende de forma transitiva de A. Ejemplo: Sea A el D.N.I. de un alumno, B la
localidad en la que vive y C la provincia. Es un caso de dependencia transitiva A→
B → C.
→→ A
Dependencia multivaluada: B. Son un tipo de dependencias en las que un
determinante funcional
→→ no implica un único valor, sino un conjunto de ellos. Un valor
de A siempre implica varios valores de B. Ejemplo: CursoBachillerato Modalidad.
Para primer curso siempre va a aparecer en el campo Modalidad uno de los
siguientes valores: Ciencias, Humanidades/Ciencias Sociales o Artes. Igual para
segundo curso.
Ejemplo: Supongamos que tenemos la siguiente tabla con datos de alumnado de un centro
de enseñanza secundaria.
Como se puede observar, esta tabla no está en 1FN puesto que el campo Teléfonos
contiene varios datos dentro de una misma celda y por tanto no es un campo cuyos
valores sean atómicos. La solución sería la siguiente:
Tabla 2.3: Alumnos
Una Relación está en 2FN si y sólo si está en 1FN y todos los atributos que no forman
parte de la Clave Principal tienen dependencia funcional completa de ella.
El único atributo que sí depende de forma completa de la clave compuesta DNI y Curso
es FechaMatrícula: (DNI,Curso) FechaMatrícula.
Curso Tutor
1ESO-A Isabel
1ESO-B Roberto
2ESO-A Federico
Una Relación está en 3FN si y sólo si está en 2FN y no existen dependencias transitivas.
Todas las dependencias funcionales deben ser respecto a la clave principal.
Las dependencias funcionales existentes son las siguientes. Como podemos observar
existe una dependencia funcional transitiva: DNI → Localidad → Provincia.
Para que la tabla esté en 3FN, no pueden existir dependencias funcionales transitivas.
Para solucionar el problema deberemos crear una nueva tabla. El resultado es:
Tabla 2.10: Alumnos
Localidad Provincia
Écija Sevilla
El Villar Córdoba
RESULTADO FINAL
Localidad Provincia
Écija Sevilla
El Villar Córdoba
DNI Teléfono
11111111A 660111222
22222222B 660222333
22222222B 660333444
22222222B 660444555
55555555E 661000111
55555555E 661000222
Tabla 2.15: Matrículas
Curso Tutor
1ESO-A Isabel
1ESO-B Roberto
2ESO-A Federico
Existe también una dependencia funcional en doble sentido (que no nos afecta):
NombreProveedor <-> CIFProveedor.
Para esta tabla existe un solapamiento de 2 claves candidatas compuestas. Para evitar
el solapamiento de claves candidatas dividimos la tabla. La solución es:
CIF Nombre
S-11111111A Ferroman
B-22222222B Ferrotex
M-33333333C Ferropet
Una Relación está en 4FN si y sólo si está en 3FN (o FNBC) y las únicas dependencias
multivaluadas son aquellas que dependen de las claves candidatas.
Ejemplo: Tenemos una tabla con la información de nuestros alumnos y alumnas y las
asignaturas que cursan así como los deportes que practican.
Tabla 2.20: Alumnado
Para normalizar esta tabla, debemos darnos cuenta que la oferta de asignaturas está
compuesta por un conjunto de valores limitado. Igual sucede con los deportes. Por tanto
existen dos dependencias multivaluadas:
Estudiante Asignatura
11111111A Matemáticas
11111111A Lengua
22222222B Matemáticas
Tabla 2.23: Practica Deporte
Estudiante Deporte
11111111A Natación
11111111A Baloncest
o
22222222B Fútbol
22222222B Natación
Proveedor Pieza
E1 PI3
E1 PI6
E4 PI3
E4 PI6
E6 PI3
E6 PI6
E2 PI1
E2 PI2
E5 PI1
E5 PI2
E3 PI4
E3 PI5
E7 PI4
E7 PI5
Tabla 2.27: Pieza-Proyecto
Pieza Proyecto
PI3 PR2
PI3 PR4
PI6 PR2
PI6 PR4
PI1 PR1
PI1 PR3
PI2 PR1
PI2 PR3
PI4 PR5
PI4 PR6
PI5 PR5
PI5 PR6
Proyecto Proveedor
PR2 E1
PR4 E1
PR2 E4
PR4 E4
PR2 E6
PR4 E6
PR1 E2
PR3 E2
PR1 E5
PR3 E5
PR5 E3
PR6 E3
PR5 E7
PR6 E7
El producto natural de estas 3 tablas nos da la tabla original. Proveedor-Pieza |x| Pieza-
Proyecto |x| Proyecto-Proveedor
= Suministros
2.7.1 Test
MODELO ENTIDAD-RELACIÓN
Para cada una de las siguientes cuestiones elige razonadamente cada una de las
respuestas correctas.
1. Define una serie de símbolos para describir la realidad de la BD que se desea crear.
3. Cuenta con símbolos diferentes para representar las entidades fuertes y las débiles.
1. Son objetos reales o abstractos de los que se desea guardar información en una BD.
5. La cardinalidad. . .
1. 1:1 es una cardinalidad binaria que significa que a cada ocurrencia de una entidad
2. En el caso de relaciones entre tres entidades pueden ser de los tipos: 1:1, 1:N o N:M.
2.7.2 Cuestiones
MODELO ENTIDAD-RELACIÓN
1. Entidad.
Una entidad es cualquier objeto o elemento acerca del cual se pueda almacenar
información en la BD. Las entidades pueden ser concretas como una persona o
abstractas como una fecha.
2. Relación.
Una relación es la asociación que existe entre dos a más entidades. Cada relación
tiene un nombre que describe su función.
Es aquel cuyo valor sólo se puede obtener en la relación, puesto que dependen de
todas las entidades que participan en la relación. Se denominan atributos propios.
Es la función que tiene la entidad en una relación. También se conoce como papel.
En el siguiente ejemplo se representa en texto color verde:
3. Clasifica los distintos tipos de relaciones existentes entre dos entidades según
su cardinalidad y pon un ejemplo de cada una de ellas distinto de los vistos en el
tema.
Existen 3 tipos:
Se produce cuando una entidad débil necesita de la presencia de una fuerte para
existir. Si desaparece la existencia de la entidad fuerte, la de la débil carece de
sentido. Suele darse pocas veces. Un caso sería el de una SUBCONTRATA con sus
propios TRABAJADORES. Si nuestra empresa no necesita más los servicios de
dicha SUBCONTRATA, entonces no tiene sentido registrar en nuestra base de datos
dichos TRABAJADORES.
Dependencia en identificación
Se produce cuando una entidad débil necesita de la fuerte para identificarse. Por sí
sola la débil no es capaz de identificar de manera unívoca sus ocurrencias. Por
ejemplo si tenemos una entidad fuerte HOTEL y una entidad débil HABITACIÓN.
Para identificar de forma unívoca cada HABITACIÓN, dentro de un conjunto de
hoteles, necesitamos la combinación CodHotel + NumHabitación.
5. Explica brevemente la Restricción de exclusividad entre dos tipos de relaciones
R1 y R2 respecto a la entidad E1. Pon un ejemplo distinto del visto en el tema.
Un ejemplo sería el de una aerolínea donde el PERSONAL trabaja como PILOTO o como
AZAFATA, pero no puede trabajar en los 2 puestos.
Siguiendo con el caso anterior, un ejemplo sería el de una aerolínea donde se registran
las salidas y llegadas de aviones. Un PILOTO sale hacia un DESTINO. Solo puede
registrarse la llegada a ese DESTINO si previamente el PILOTO había salido hacia él.
7. Dado el siguiente esquema:
1. Indica cuáles son las entidades del modelo, diferenciado entre entidades fuertes y
Las entidades del modelo son: EQUIPO, JUGADOR y PARTIDO. Todas son
entidades fuertes pues se representan con un rectángulo con borde simple.
2. Señala las relaciones e indica cual es la cardinalidad de cada una. Trata de indicar
Un equipo tiene en plantilla varios jugadores (11 o más), pero un jugador sólo puede
estar en un equipo como máximo (podría estar en periodo de fichaje y por tanto no
estar asignado a ningún equipo aún). Es una relación 1:N. Un jugador puede jugar
en varios partidos y un partido es jugado por varios jugadores (relación N:M). Se
necesitan un mínimo de 22 jugadores para disputar un partido. Si hay sustituciones
pueden ser más jugadores. Un jugador podría no disputar ningún partido (si tiene
mala suerte por lesión u otro motivo) o disputar varios.
4. Trata de escribir atributos lógicos para cada una de las entidades e indica en cada
caso cual podría ser el identificador.
REGIÓN ( Nombre_Región)
PROVINCIA (CódigoProvincia,
Nombre_provincia) LOCALIDAD
(Código_localidad, Nombre) EMPLEADO
(Id_E, DNI_E, Nombre, Teléfono, Salario)
Se quiere guardar información de la localidad donde ha nacido cada uno de los
empleados teniendo en cuenta que: Un empleado ha nacido en una sola localidad.
Cada localidad pertenece a una única
provincia. Cada provincia pertenece a
una única región del país.
10.Obtén el diagrama E/R con las dos entidades siguientes:
Un empleado podrá ser jefe o no. Si no es jefe, su jefe será el del departamento al que
pertenece.
Solución 2
Solución 3
11. Se desea diseñar una base de datos sobre la información de las reservas de
una empresa dedicada al alquiler de automóviles teniendo en cuenta que:
Además en una reserva se pueden incluir varios coches de alquiler. Queremos saber
los coches que incluyen cada reserva y los litros de gasolina en el depósito en el
momento de realizar la reserva, pues se cobrarán aparte.
Cada sucursal tiene varios empleados, de los cuales tendremos sus datos personales,
DNI y teléfono. Un empleado trabaja en una única sucursal.
La editorial tiene periodistas (que no trabajan en las sucursales) que pueden escribir
artículos para varias revistas. Almacenaremos los mismos datos que para los
empleados, añadiendo su especialidad.
Para cada revista, almacenaremos información de cada número, que incluirá la fecha,
número de páginas y el número de ejemplares vendidos.
Nota: Los atributos discriminantes de las entidades débiles se muestran con un círculo
verde oscuro.
13. La cadena de Video-Clubs Glob-Gusters ha decidido, para mejorar su servicio,
emplear una base de datos para almacenar la información referente a las películas
que ofrece en alquiler.
En una película pueden participar varios actores (nombre, nacionalidad, sexo) algunos
de ellos como actores principales.
Un socio tiene que ser avalado por otro socio que responda de él en caso de tener
problemas en el alquiler.
Los atributos discriminantes de las entidades débiles se muestran con un círculo verde
oscuro.
14. Diseñar un esquema E/R que recoja la organización de un sistema de
información en el que se quiere tener los datos sobre municipios, viviendas y
personas.
Cada persona sólo puede habitar una vivienda, pero puede ser propietaria de varias.
También nos interesa la relación de las personas con su cabeza de familia.
Nota: Suponemos que existe un único cabeza de familia por vivienda y establecemos
una restricción de relación de inclusión para exigir que dicho cabeza de familia viva en
dicha vivienda. Pueden existir viviendas vacías, en las que no viva nadie. Hemos
supuesto que una persona sólo puede vivir en una casa.
15.Se desea diseñar una BD de una entidad bancaria que contenga información
sobre los clientes, las cuentas, las sucursales y las transacciones producidas.
Nota: Los atributos discriminantes de las entidades débiles se muestran con un círculo
verde oscuro.
16. Una base de datos para una pequeña empresa debe contener información
acerca de clientes, artículos y pedidos.
Para cada cliente: Número de cliente (único), Direcciones de envío (varias por
cliente), Saldo, Límite de crédito, Descuento.
Para cada pedido: Cada pedido se registrará en un documento impreso que tiene una
cabecera y el cuerpo del pedido. - Para generar dicho informe se necesitará la
siguiente información:
La cabecera está formada por el número de cliente, dirección de envío y fecha del
pedido.
El cuerpo del pedido son varias líneas, en cada línea se especifican el número del
artículo pedido y la cantidad.
Y se desean ver cuántos artículos (en total) provee la fábrica. También, por
información estratégica, se podría incluir información de fábricas alternativas respecto
de las que ya fabrican artículos para esta empresa.
17. Se pide hacer el diagrama ER para la base de datos que represente esta
información. Le contra- tan para hacer una BD que permita apoyar la gestión de un
sistema de ventas.
Un producto tiene un id único, nombre, precio actual, stock y nombre del proveedor.
Además se organizan en categorías, y cada producto va sólo en una categoría. Una
categoría tiene id, nombre y descripción. Por razones de contabilidad, se debe registrar
la información de cada venta con un id, fecha, cliente, descuento y monto final. Además
se debe guardar el precio al momento de la venta, la cantidad vendida y el monto total
por el producto.
MODELO ENTIDAD-RELACIÓN EXTENDIDO
La empresa organiza cursos internos de formación de los que se desea conocer el código
de curso, el nombre, una descripción, el número de horas de duración y el coste del
curso.
Un curso puede tener como prerrequisito haber realizado otro u otros previamente, y a
su vez, la realización de un curso puede ser prerrequisito de otros. Un curso que es un
prerrequisito de otro puede serlo de forma obligatoria o sólo recomendable.
Un mismo empleado puede ser docente en una edición de un curso y alumno en otra
edición, pero nunca puede ser ambas cosas a la vez (en una misma edición de curso o
lo imparte o lo recibe).
19. Una Empresa decide informatizar su gestión de nóminas. Del resultado del
análisis realizado, se obtienen las siguientes informaciones:
Son datos propios de una nómina el ingreso total percibido por el empleado y el
descuento total aplicado.
Cada nómina consta de varias líneas (al menos una de ingresos) y cada línea se
identifica por un número de línea dentro de la correspondiente nómina.
Una comunidad autónoma (CA) puede tener varios parques naturales. En toda
comunidad autónoma existe uno y sólo un organismo responsable de los parques.
Un parque puede estar compartido por más de una comunidad.
En cada área forzosamente residen especies que pueden ser de tres tipos:
vegetales, animales y minerales. Cada especie tiene una denominación científica,
una denominación vulgar y un número inventariado de individuos por área. De las
especies vegetales se desea saber si tienen floración y en qué periodo se produce
ésta; de las animales se desea saber su tipo de alimentación (herbívora, carnívora u
omnívora) y sus periodos de celo; de las minerales se desea saber si se trata de
cristales o de rocas.
Del personal del parque se guarda el DNI, número de seguridad social, nombre,
dirección, teléfonos (domicilio, móvil) y sueldo. Se distinguen los siguientes tipos de
personal:
• Personal de gestión: registra los datos de los visitantes del parque y están
Para algunos atributos hemos puesto entre paréntesis el dominio de valores que admite.
MODELO RELACIONAL
Solución 1
Solución 2
Solución 3
Solución 1
Dentro de la tabla Empleado descomponemos el atributo compuesto Cuenta en 3
campos. Como resulta, además, que la Cuenta participa en otras relaciones, creamos una
tabla para ella.
Solución 2
MODELO ENTIDAD-RELACIÓN
PRÁCTICA 1
PLANTEAMIENTO
OBJETIVO: Aprender el uso básico del programa Dia, que utilizaremos para para realizar
diagramas. En concreto diagramas ER extendidos y relacionales.
ENUNCIADO: Instala el programa Dia y la hoja de símbolos EER.zip para los símbolos
utilizados en diagramas Entidad-Relación extendidos. Con la ayuda del profesor,
examina la forma de uso de dicho programa.
2. Procede a su instalación.
3. Ejecutalo por primera vez para que se cree una subcarpeta .dia en tu directorio
personal.
4. Descarga de la plataforma Moodle el archivo EER.zip que contiene los símbolos