Nucleo1 introducción a la teoría general de sistemas
Núcleo 3 - Normalización de Bases de datos
1. Normalización de bases de datos
Una relación es una tabla, compuesta por
renglones y columnas que cumple con los
siguientes requisitos:
Las celdas de la tabla deben ser de un valor único, (no
grupos repetidos, no series por valores)
Todas las entradas en cualquier columna deben ser del
mismo tipo
Cada columna tiene un nombre único y el orden de las
columnas no es importante
Dos renglones no pueden ser identicos y el orden de los
renglones no tiene importancia
2. Normalización de bases de datos
Dependencia Funcional
Relación entre atributos según la cual conociendo el valor de
uno podemos saber el valor del otro. En la relación de atributos
A y B, B depende (funcionalmente) de A, si para un valor de A
hay sólo un valor de B, aunque a la inversa a un valor de B
puedan corresponderle varios valores de A. También pueden
incolucrar grupos de atributos.
En este caso, ID_Estudiante y Asignatura, determinan la
calificación.
Se escribe así: (ID_Estudiante, Asignatura)-> Calificación
3. Normalización de bases de datos
Determinantes vs. Llaves
A diferencia de los determinantes, las llaves son únicas.
Ejemplo: se establece que cada estudiante puede participar
máximo en una actividad:
Según lo anterior, ID_Estudiante es tanto llave como
determinante, mientras que Actividad es solamente
determinante.
4. Normalización de bases de datos
Anomalías en las relaciones:
Anomalía de eliminación: Si al suprimir hechos de una entidad
se suprimen hechos de otra entidad
Si borramos al
estudiante 1100
también se borra el
hecho de que
baloncesto cuesta
3000
Para registrar el hecho de que tejo cuesta 2000
habría que esperar a que alguien se inscriba
Anomalía de inserción: Si no podemos insertar un hecho sobre
una entidad hasta que tengamos un hecho adicional de otra
entidad
5. Normalización de bases de datos
La esencia de la normalización:
Cualquier relación que tenga dos o más temas, debe
dividirse en dos o más relaciones, que contengan
cada una un tema
6. Normalización de bases de datos
Clases de relaciones
Las relaciones se clasifican por
los tipos de anomalías a las
cuales son vulnerables. Las
técnicas para prevenir esas
anomalías se llaman formas
normales y se encuentran
anidadas de la primera a la
quinta.
Primera forma normal:
La tabla debe cumplir con los requisitos para ser una relación
7. Normalización de bases de datos
Segunda forma normal (2NF)
La relación está en 2NF si todos los atributos que no son llave
dependen de todos los atributos de la llave
Ejemplo:
Como los estudiantes pueden estar
más de una actividad la llave está
formada por los campos
ID_Estudiante-Actividad, pero el
campo valor es dependiente SÓLO de
Actividad.
Solución:
8. Normalización de bases de datos
Tercera Forma normal (3NF)
Una relación está en 3NF si está en 2NF y no tiene dependencias
transitivas.
Ejemplo:
Llave: ID_Estudiante
Dependencias funcionales:
Municipio → Pasaje
ID_Estudiante → Municipio → Pasaje
ID_Estudiante → Municipio → Pasaje es una dependencia transitiva
Solución:
9. Normalización de bases de datos
Forma normal Byce-Codd (BCNF)
La relación está en BCNF si cada determinante es una llave
candidata
Ejemplo:
Aquí un estudiante puede estar en
más de una carrera, un cansejero sólo
puede asesorar en una carrera, pero
en cada carrera pueden haber varios
consejeros.
Llaves: hay dos llaves candidatas Solución:
1. ID_Estudiante-Carrera
2. ID_Estudiante-Consejero
Otros determinantes:
Consejero → Carrera
10. Normalización de bases de datos
Cuarta forma normal (4NF)
La relación está en 4NF si está en BCNF y no tiene dependencias
multivaluadas.
Ejemplo:
Los estudiantes puede estar en más
de una carrera y estar en más de una
actividad.
Llave: Solución:
ID_Estudiante-Carrera-Actividad
Dependencías funcionales: No hay
Hay Dependencias multivaluadas:
ID_Estudiante → → Carrera
ID_Estudiante → → Actividad
11. Normalización de bases de datos
Cuarta forma normal (4NF)
La relación está en 4NF si está en BCNF y no tiene dependencias
multivaluadas.
Ejemplo:
Los estudiantes puede estar en más
de una carrera y estar en más de una
actividad.
Llave:
ID_Estudiante-Carrera-Actividad Solución:
Dependencías funcionales: No hay
Hay Dependencias multivaluadas:
ID_Estudiante → → Carrera
ID_Estudiante → → Actividad
12. Normalización de bases de datos
Quinta forma normal (5NF)
Las condiciones necesarias para que una relación se encuentre
en 4NF y no esté en 5NF son raras y escapan al alcance de este
curso. En todo caso se aplica como regla de oro la esencia de la
normalización:
Cualquier relación que tenga dos o más temas, debe
dividirse en dos o más relaciones, que contengan
cada una un tema
13. Normalización de bases de datos
Forma normal dominio-llave (DK/NF)
Primero se definen los conceptos, restricción, dominio y llave
Restricción: Cualquier regla que gobierna los valores estáticos
de un atributo y es lo suficientemente precisa como para poder
verificar que es verdadera.
Llave: Atributo o grupo de atributos que identifica de manera
única una tupla.
Dominio: Descripción física y lógica del conjunto de valores que
puede tomar un atributo.
Una relación está en DK/NF si al cumplir las restricciones de la
llave y del dominio, da como resultado que todas las
restricciones se cumplan. Si se logra definir la relación de esta
forma, no habrá anomalías de modificación.
14. Normalización de bases de datos
Ejemplo forma normal dominio-llave (DK/NF)
Dominios:
Persona_rica: Toda la gente rica
Tipo_de_persona_rica: Puede tomar los valores 'Millonario excéntrico', 'Multimillonario
excéntrico', 'Millonario malvado', y 'Multimillonario malvado'
Valor_neto_en_dólares: Valores superiores a 1'000.000
Hay una restricción que de acuerdo con este diseño podría no cumplirse, ya que aún
cuando los atributos conserven los valores dentro de sus dominios, podría violarse y es el
hecho de que para ser 'Multimillonario excéntrico'o 'Multimillonario malvado' el valor neto
en dólares debe ser superior a 999.999.999.