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.