Sunteți pe pagina 1din 16

Dependencias Funcionales

Bases de datos relacionales


Dependencias Funcionales
• Una dependencia funcional es una conexión entre uno o más atributos. Por ejemplo
si conocemos el valor de FechaDeNacimiento podemos conocer el valor de Edad.

• Las dependencias funcionales del sistema se escriben utilizando una flecha, de la


siguiente manera:

• FechaDeNacimiento Edad

• Aquí a FechaDeNacimiento se le conoce como un determinante. Se puede leer de


dos formas FechaDeNacimiento determina a Edad o Edad es funcionalmente
dependiente de FechaDeNacimiento. De la normalización (lógica) a la
implementación (física o real) puede ser sugerible tener éstas dependencias
funcionales para lograr la eficiencia en las tablas.

LANIA 2
Propiedades de la Dependencia
funcional
Existen 3 axiomas de Armstrong:
• Dependencia funcional Reflexiva
Si "y" esta incluido en "x" entonces x y
Si la dirección o el nombre de una persona están incluidos en el dni,
entonces con el dni podemos determinar la dirección o su nombre.

• Dependencia funcional Aumentativa


– X  entonces xz  yz
– Dni  nombre
– dni,dirección  nombre,dirección

Si con el dni se determina el nombre de una persona, entonces con el dni


más la dirección también se determina el nombre o su dirección.

LANIA 3
Propiedades de la Dependencia
funcional
Dependencia funcional transitiva
• Sean X, Y, Z tres atributos (o grupos de atributos) de la misma entidad. Si Y
depende funcionalmente de X y Z de Y, pero X no depende funcionalmente
de Y, se dice que Z depende transitivamente de X. Simbólicamente sería:

• X Y  Z entonces X  Z
• FechaDeNacimiento  Edad
• Edad  Conducir
• FechaDeNacimiento  Edad  Conducir
• Entonces tenemos que FechaDeNacimiento determina a Edad y la Edad
determina a Conducir, indirectamente podemos saber a través de
FechaDeNacimiento a Conducir (En muchos países , una persona
necesita ser mayor de cierta edad para poder conducir un automóvil, por
eso se utiliza este ejemplo).

LANIA 4
BASES DE DATOS RELACIONALES

NORMALIZACION

LANIA 5
1FN
Según la definición de Date de la 1FN, una tabla está en 1FN si y solo si
es "isomorfa a alguna relación", lo que significa, específicamente, que
satisface las siguientes cinco condiciones:
1. No hay orden de arriba-a-abajo en las filas.
2. No hay orden de izquierda-a-derecha en las columnas.
3. No hay filas duplicadas.
4. Cada intersección de fila-y-columna contiene exactamente un valor del
dominio aplicable (y nada más).
5. Todas las columnas son regulares [es decir, las filas no tienen
componentes como IDs de fila, IDs de objeto, o timestamps ocultos].

—Chris Date, "What First Normal Form Really Means", pp. 127-8[4

LANIA 6
Ejemplos de no 1FN
• Una tabla que carece de una clave primaria. Esta tabla podría
acomodar filas duplicadas, en violación de la condición 3.
• Una vista cuya definición exige que los resultados sean retornados en un
orden particular, de modo que el orden de la fila sea un aspecto intrínseco y
significativo de la vista.[5] Esto viola la condición 1. Las tuplas en relaciones
verdaderas no están ordenadas una con respecto de la otra.
• Una tabla con por lo menos un atributo que pueda ser nulo. Un
atributo que pueda ser nulo estaría en violación de la condición 4, que
requiere a cada campo contener exactamente un valor de su dominio
de columna. Sin embargo, debe ser observado que este aspecto de la
condición 4 es controvertido. Muchos autores consideran que una
tabla está en 1FN si ninguna clave candidata puede contener valores
nulos, pero se aceptan éstos para atributos (campos) que no sean
clave, según el modelo original de Codd sobre el modelo relacional, el
cual hizo disposición explícita para los nulos

LANIA 7
2FN
• En términos levemente más formales: una tabla 1NF está en 2NF si
y solo si ninguno de sus atributos no-principales son funcionalmente
dependientes en una parte (subconjunto apropiado) de una clave
candidata. (Un atributo no-principal es uno que no pertenece a
ninguna clave candidata).

LANIA 8
Ejemplo
• El atributo restante, Lugar actual de trabajo,
es dependiente solo en parte de la clave
candidata, llamada Empleado. Por lo tanto la
tabla no está en 2NF. Observe la redundancia
de la manera en que son representadas los
Lugares actuales de trabajo: nos dicen tres
veces que Jones trabaja en la 114 Main
Street, y dos veces que Ellis trabaja en 73
Industrial Way. Esta redundancia hace a la
tabla vulnerable a anomalías de
actualización: por ejemplo, es posible
actualizar el lugar del trabajo de Jones en sus
registros "Mecanografía" y "Taquigrafía" y no
actualizar su registro "Tallado". Los datos
resultantes implicarían respuestas
La única clave candidata de la
contradictorias a la pregunta "¿Cuál es el
tabla es {Empleado, Habilidad}. lugar actual de trabajo de Jones?".

LANIA 9
Ejemplo – continuación
• Las anomalías de actualización no pueden
ocurrir en estas tablas, las cuales están en
2NF.
• Sin embargo, no todas las tablas 2NF están
libres de anomalías de actualización. Un
ejemplo de una tabla 2NF que sufre de
anomalías de actualización es:

LANIA 10
Ejemplo – continuación
• Aunque el Ganador y la Fecha de nacimiento del ganador están
determinadas por una clave completa {Torneo, Año} y no son partes
de ella, particularmente las combinaciones Ganador / Fecha de
nacimiento del ganador son mostradas redundantemente en
múltiples registros. Este problema es tratado por la tercera forma
normal (3NF).

LANIA 11
3FN

• La tercera forma normal (3NF) es una forma


normal usada en la normalización de bases de
datos. La 3NF fue definida originalmente por
E.F. Codd[1] en 1971. La definición de Codd
indica que una tabla está en 3NF si y solo si las
dos condiciones siguientes se mantienen:
• La tabla está en la segunda forma normal (2NF)
• Ningún atributo no-primario de la tabla es
dependiente transitivamente de una clave
candidata
LANIA 12
3FN - continuación
• Un atributo no-primario es un atributo que no pertenece a ninguna
clave candidato. Una dependencia transitiva es una dependencia
funcional X → Z en la cual Z no es inmediatamente dependiente de
X, pero sí de un tercer conjunto de atributos Y, que a su vez
depende de X. Es decir, X → Z por virtud de X → Y y Y → Z.
• Una formulación alternativa de la definición de Codd, dada por
Carlo Zaniolo[2] en 1982, es ésta: Una tabla está en 3NF si y solo si,
para cada una de sus dependencias funcionales X → A, por lo
menos una de las condiciones siguientes se mantiene:
– X contiene A, ó
– X es una superclave, ó
– A es un atributo primario (es decir, A está contenido dentro de una clave
candidato)

LANIA 13
Ejemplo

• La única clave candidato es {Torneo, Año}.


• La violación de la 3NF ocurre porque el atributo no primario Fecha
de nacimiento del ganador es dependiente transitivamente de
{Torneo, Año} vía el atributo no primario Ganador. El hecho de que
la Fecha de nacimiento del ganador es funcionalmente dependiente
en el Ganador hace la tabla vulnerable a inconsistencias lógicas,
pues no hay nada que impida a la misma persona ser mostrada con
diferentes fechas de nacimiento en diversos registros.

LANIA 14
Ejemplo - continuación
• La violación de la 3NF ocurre
porque el atributo no primario
Fecha de nacimiento del ganador
es dependiente transitivamente de
{Torneo, Año} vía el atributo no
primario Ganador. El hecho de
que la Fecha de nacimiento del
ganador es funcionalmente
dependiente en el Ganador hace
la tabla vulnerable a
inconsistencias lógicas, pues no
hay nada que impida a la misma
persona ser mostrada con
diferentes fechas de nacimiento
en diversos registros.
La única clave candidato • Para expresar los mismos hechos
es {Torneo, Año}. sin violar la 3NF, es necesario
LANIA dividir la tabla en dos: 15
3FN

IMPORTANTE:

Las anomalías de actualización no pueden


ocurrir en estas tablas, las cuales están en
3NF.

LANIA 16

S-ar putea să vă placă și