Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ideas clave 4
9.1. ¿Cómo estudiar este tema? 4
9.2. Características de los buenos diseños
relacionales 4
9.3. Dominios atómicos y la primera forma normal
(1FN) 6
9.4. Descomposición mediante dependencias
© Universidad Internacional de La Rioja (UNIR)
funcionales 6
Lo + recomendado 13
+ Información 17
Test 19
© Universidad Internacional de La Rioja (UNIR)
D I S E Ñ O D E B A S E S D E D AT O S Y M O D E L O E - R
Descomposición
Visión general del
El modelo E-R mediante dependencias
proceso de diseño
funcionales
Dominio atómico: los Dependencias funcionales:
Esquemas grandes: elementos del dominio son
indivisibles. - Definición.
- Características.
- Tipos:
- Situaciones donde puede 1FN: dominios atómicos.
funcionar. o Trivial.
o Completa.
o Transitiva.
Esquemas pequeños:
- Características. 2FN:
- Reglas para su construcción. - Cumple la 1FN.
- Dependencia funcional
completa de la clave.
primaria.
3FN:
- Cumple la 3FN.
- No hay dependencias
funcionales transitivas.
FNBC:
- Cumple la 3FN.
- Gestiona dependencias
parciales de claves
primarias multiatributo.
Tema 9. Esquema
Esquema
Para estudiar este tema deberás leer las páginas 219-231 de: Silberschatz, A., Korth, H.
F. y Sudarshan, S. (2006). Fundamentos de bases de datos (5a. ed.). Madrid: McGraw-Hill
España.
Disponible a través de la Biblioteca Virtual de UNIR.
Además se deberán leer las ideas clave expuestas a continuación.
E
n este tema vamos a profundizar en el diseño de BD relacionales, revisando
algunas características que deben tener los buenos diseños, lo cual incluye
el estudio más profundo de las reglas de normalización.
P
ara diseñar una BD relacional necesitamos generar un conjunto de
relaciones a partir del modelo entidad-relación, de tal forma que
© Universidad Internacional de La Rioja (UNIR)
Con esta solución, para saber el importe del préstamo de un cliente es necesario
hacer una reunión natural. Entonces, podríamos plantearnos tener una única
relación donde tuviéramos el identificador del cliente, el número de préstamo y su
importe, ahorrando así el tener que hacer la operación de reunión y, por tanto,
haciendo más eficiente la recuperación de información. Sin embargo, se nos está
escapando la opción de que un préstamo tenga varios titulares… ¿qué ocurre en ese
caso?
Otra posible opción para cambiar el diseño inicial sería combinar las tablas de
préstamos y sucursales, de tal forma que el préstamo tuviera un campo para indicar
en qué sucursal se ha concedido. En este caso, no tenemos el problema de la
redundancia, ya que la relación es uno a varios y, por tanto, no genera repetición de
tuplas en la tabla conjunta. Sin embargo, en este caso podemos tener un problema
con los valores nulos, si el préstamo se asocia a la sucursal antes de saber el importe.
decisiones.
En concreto, se observa que, para que la unión de tablas sea correcta, el atributo de
reunión debe ser clave primaria en los esquemas que se combinan. En esta situación,
Esquemas pequeños
Al contrario que en el caso anterior, lo que buscamos ahora es decidir si tenemos que
dividir un esquema. Tendremos que observar los datos y buscar patrones, lo que
resulta ciertamente difícil cuando nuestra BD es moderadamente grande. Por lo que
necesitaremos una forma de indicar un conjunto de reglas que nos permitan hacer el
proceso de forma sencilla: las dependencias funcionales, que estudiaremos en este
tema.
E
n el modelo entidad-relación podemos tener entidades con atributos
multivalorados y compuestos que, como vimos en temas anteriores,
seguían reglas particulares en el paso a tablas de la BD. En concreto, un
atributo multivalorado se convierte en una nueva tabla y un atributo compuesto
genera atributos solo para aquellos del último nivel.
La formalización de esa idea son los dominios atómicos: los elementos del dominio
son unidades indivisibles. Esto nos lleva a la primera forma norma (1FN): los dominios
de todos los atributos de la relación son atómicos.
© Universidad Internacional de La Rioja (UNIR)
Dependencias funcionales
Las dependencias funcionales son restricciones de la BD que exigen que las relaciones
cumplan determinadas propiedades, en concreto, identificar de manera unívoca el
valor de determinados atributos.
Como vemos, esto permite hacer implicaciones más generales que las de las claves.
En este caso, decimos que 𝛽 depende funcionalmente de 𝛼 o que 𝛼 determina a 𝛽.
Decimos que una dependencia funcional es trivial cuando la satisfacen todas las
relaciones, por ejemplo: 𝐴 → 𝐴.
Una dependencia funcional será completa si son los valores de todo el conjunto los
que determinan un valor y no un subconjunto de ellos.
𝐴 → 𝐵 𝑦 𝐵 → 𝐶, 𝑝𝑜𝑟 𝑙𝑜 𝑞𝑢𝑒 𝐴 → 𝐶
La segunda forma normal (2FN), además de verificar la 1FN, elimina las dependencias
parciales para que los datos dependan de la clave primaria completa, es decir, que
sea una dependencia funcional completa. Esto permite que se añadan nuevos
atributos sin que otras relaciones se vean afectadas.
Si una tabla no cumple al 2FN, podemos estudiar cómo dividir sus atributos para
generar un conjunto de tablas legales.
Para resolverlo, bastaría con tener una tabla de trabajadores y otra para el registro
horario:
En este caso, necesitaremos hacer una revisión más detallada para darnos cuenta de
que la situación se repite en dos atributos: nombre_curso y nombre_alumno. Por tanto,
necesitamos tres tablas para conseguir que nuestra BD está en 2FN:
La tercera forma normal (3FN), además de cumplir la 2FN, elimina las dependencias
funcionales transitivas cuando dichos atributos no son clave primaria. Para
ejemplificar esta situación, vamos a revisar los valores de una tabla que muestra
información sobre el resultado de un torneo.
Es una de las formas normales más deseables, ya que es un poco más estricta que la
3FN. Por tanto, una BD está en la forma normal de Boyce-Codd (FNBC) si está en 3FN
y, además, no existen dependencias funcionales no triviales de los atributos que no
pertenecen a la clave primaria.
𝛼 → 𝛽, donde 𝛼 no es superclave de R.
Lecciones magistrales
Formas normales
Sampol.90. (Octubre de 2017). Cómo normalizar una base de datos sin morir en el
intento [Blog post]. Platzi blog.
Accede a la entrada a través del aula virtual o desde la siguiente dirección web:
https://platzi.com/blog/normalizar-una-base-de-datos-y-no-morir-en-el-intento/
© Universidad Internacional de La Rioja (UNIR)
Normalización formal
Hemos intentado resumir las ideas del material de estudio con un lenguaje más
sencillo. En dicho material (que se tendrá en cuenta para el examen) tienes un
desarrollo más formal y extenso. No obstante, hemos incluido aquí un vídeo en el
que se explica la normalización con una perspectiva más formal.
Accede al vídeo a través del aula virtual o desde la siguiente dirección web:
https://www.youtube.com/watch?v=-5QMUXKPd40&t=3s
© Universidad Internacional de La Rioja (UNIR)
Accede al vídeo a través del aula virtual o desde la siguiente dirección web:
https://www.youtube.com/watch?v=0I_0lHj4GP4
© Universidad Internacional de La Rioja (UNIR)
A fondo
Accede a la entrada a través del aula virtual o desde la siguiente dirección web:
Database Normalization: 4th Normal Form - MariaDB Knowledge Base
Accede a la entrada a través del aula virtual o desde la siguiente dirección web:
Database Normalization: 5th Normal Form and Beyond - MariaDB Knowledge Base
© Universidad Internacional de La Rioja (UNIR)
Reglas de Codd
Accede a la página web a través del aula virtual o desde la siguiente dirección web:
https://jorgesanchez.net/manuales/gbd/modelo-relacional.html
Ejercicios de normalización
Accede a la página web a través del aula virtual o desde la siguiente dirección web:
© Universidad Internacional de La Rioja (UNIR)
A Complete Guide to Database Normalization in SQL | by Emily Burns | Towards Data Science
9. La FNBC:
A. Relaja las restricciones de la 3FN.
B. Relaja las restricciones de la 2FN.
© Universidad Internacional de La Rioja (UNIR)