Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/12/2009, 05:30
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: Dependencias funcionales

Las dependencias funcionales en las bases de datos se refieren a atributos de una relación R que dependen, dentro de esa misma relación, de otro atributo o conjunto de atributos.
En el diseño de las tablas, las dependencias funcionales permiten establecer las claves candidatas de una tabla; también ayudan a establecer si cumplen los criterios de normalización, y eventualmente a obtener esa normalización.

Un ejemplo de dependencia funciona lo tienes en los datos de una persona (empleado, docente, alumno, etc.).
El nombre no es determinante de nada, ya que puede haber varias personas con el mismo nombre. Tampoco el nombre y el apellido, por la misma razón (en una escuela llegué a contar 14 alumnas llamadas Patricia Sanchez, ¿te imaginas?). Por lo tanto no existe dependencia entre el nombre, el apellido y el resto de los datos (con esos no puedes determinar de quién hablas.).
Pero puede haber una dependencia funcional entre nombre + apellido + fecha de nacimiento + dirección, ya que es difícil que los cuatro datos se den al mismo tiempo, y no pertenezcan a la misma persona. Sería una clave candidata de cuatro atributos.
El número de documento es otra cosa. El número de documento es determinante de todos los datos vinculados a él, porque es único. Pero puede que no sea determinante de la dirección, si en esa tabla hay más de una dirección posible para cada persona. Entonces hay dos atributos que determinan a la persona: el número de documento y la direccion. Luego, hay una clave candidata de dos atributos...

¿Se va comprendiendo un poco?

En tu caso, el idHospital bien podría ser un VARCHAR, porque podría contener el nombre (que en una ciudad es único), del hospital. Ese idHospital es determinante para todo el resto de los atributos.
El conjunto propuesto:
Cita:
idHospital -> nombre, dirección, códigoPostal, teléfono
direcciónHospital -> codigoPostal, nombre, teléfono
codigoPostal,nombre -> direcciónHospital, teléfono.
Es una descripción detallada pero teórica de las dependencias funcionales de esa relación llamada "Hospital", pero, atención, no significa que tienes tres tablas... Es una sola. No confundir.
Lo que estás encontrando en esos ejemplos es cuáles son las claves candidatas.
Cita:
¿Se crearían así las dependencias funcionales?
Entendamos que en un sentido estricto, las dependencias funcionales no se crean sino que existen desde el momento en que la relación se establece (definiendo por relación un conjunto dado de atributos, por ejemplo, Paciente{}).
Lo que haces en esa etapa, como dije, es buscar las CC y establecer la normalización.

Para llegar a la CC existe el proceso de cierre de dependencias funcionales (F+).


En el modelo de datos completo (modelo físico o de tablas, me refiero), se denomina dependencia funcional a la dependencia que existe entre las tablas, por cuanto para que una instancia de una tabla exista debe existir una instancia de otra u otras tablas previamente. Ese tipo de dependencias están controladas por las restricciones de clave foránea que poseen los RDBMS.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 28/12/2009 a las 05:35