Saltar la navegación

11.1.- Tipos de dependencias.

Para aplicar las formas normales y analizar las relaciones entre los atributos es necesario conocer el concepto de dependencia funcional y sus variantes.

Vamos a desarrollar aquí esos conceptos:

  • Dependencia Funcional: Dados los atributos A y B, se dice que B depende  funcionalmente de A, sí, y solo sí, para cada valor de A sólo puede existir un valor de B. La dependencia funcional siempre se establece entre atributos de una misma tabla. El atributo A se denomina determinante, ya que A determina el valor de B. Para representar esta dependencia funcional utilizamos la siguiente notación: A → B. Hay que indicar que A y B podrían ser un solo atributo o un conjunto de ellos.

Por ejemplo entre los atributos DNI y NOMBRE existe una Dependencia Funcional 

                                                    dni --> nombre

Es preciso estudiar las DF (Dependencia Funcionales) para encontrar las claves candidatas, y a partir de ellas obtener el mínimo conjunto posible de atributos tales que una vez conocidos sus valores en las tuplas los demás queden definidos. Será la clave principal.                                              

  • Dependencia Funcional Completa: Dados los atributos A1, A2, ...Ak y B, se dice que B depende funcionalmente de forma completa de A1, A2, ...Ak, si y solo si B depende funcionalmente del conjunto de atributos A1, A2, ...Ak, pero no de ninguno de sus posibles subconjuntos.

Por ejemplo si tenemos  que el nombre depende funcionalmente de la concatenación (expresada por el símbolo punto) de dni y empresa

                                    dni.empresa --> nombre 

       
No será un DF total puesto que Nombre depende del dni únicamente. A esta dependencia se la denomina parcial. La DF total sería por ejemplo dni.empresa --> sueldo.
Las dependencias que interesan para tratar las anomalías y su solución son la DF totales. Se tratan en la 2ª FN (Forma Normal)

  • Dependencia Transitiva: Dados tres atributos A, B y C, se dice que existe una dependencia transitiva entre A y C, si B depende funcionalmente de A y C depende funcionalmente de B. A, B y C podrían ser un solo atributo o un conjunto de ellos.

Por ejemplo sean los atributos Num_matrícula, grupo_asig (grupo asignado)  y aula_grupo (aula del grupo), con los siguientes condicionantes: un alumno sólo tiene asignado un grupo y a un grupo siempre le corresponde un único aula.
Num_mat ---> grupo_asig | aula_grupo
grupo_asig ---> aula_grupo
El atributo aula_grupo es transitivamente dependiente de Num_mat, ya que se puede conocer por medio de grupo_asig. 

En ese caso la tabla no cumple la 3ª FN (Forma Normal) y será necesario normalizarla.

Para ilustrar los tipos de dependencias descritas, analiza el siguiente ejercicio resuelto.

Es la operación por la cual dos caracteres se unen para formar una cadena de caracteres (o string). También se pueden concatenar dos cadenas de caracteres o un carácter con una cadena para formar una cadena de mayor tamaño. A veces se expresa con el operador punto (.). Por ejemplo el resultado de concatenar la cadena "Hola " con la cadena "Lucas" expresado como "Hola "."Lucas" dará como resultado la cadena "Hola Lucas"

Ejercicio resuelto

Dadas las siguientes tablas:

EMPLEADO( DNI, Nombre, Dirección, Localidad, Cod_Localidad, Nombre_hijo, Edad_hijo)


LIBRO (Título_libro, Num_ejemplar, Autor, Editorial, Precio)

Resuelve las siguientes cuestiones:

  1. Indica qué atributos presentan una dependencia funcional de la clave primaria de la tabla EMPLEADO.
  2. Indica qué atributos presentan una dependencia funcional completa en la tabla LIBRO.
  3. Indica qué atributos presentan una dependencia transitiva en la tabla EMPLEADO.