| UD03.- Interpretación del diseño lógico. Modelo relacional. 3.1.1.- Dependencias funcionales Como ya hemos comentado, para aplicar correctamente la normalización es necesario partir del concepto de dependencia. La dependencia es un conjunto de restricciones que se imponen a determinados atributos de las tablas. Se denominan dependencias a las relaciones que existen entre los atributos en el mundo real y que son recogidas en el modelo lógico de la base de datos. Dependencias funcionales: se producen cuando tenemos una tabla con una serie de atributos. Se dice que un atributo tiene dependencia funcional de otro cuando a cada valor del primero le corresponde un solo valor del segundo. Si A y B son subconjuntos de atributos de una tabla, diremos que B depende funcionalmente de A (o también que A determina a B) si cada valor de A tiene asociado siempre un único valor de B. A → B (se lee: A determina a B) Caso práctico Supongamos que tenemos la siguiente tabla: NumPedido FechaPedido Artículo Descripcion Cantidad Precio FechaPrevista NomProv PaisProv Moneda 22.523 25-05-2000 PC3-500 PC Pentium III a 500 5 150 1-06-2000 ARKANSAS CHINA EUR 22.523 25-05-2000 PRO-15 Protector pantalla 15 " 5 8 1-06-2000 ARKANSAS CHINA EUR 22524 27-05-2000 PC3-500 PC Pentium III a 500 15 145 5-06-2000 MELISSA ITALIA USD 22524 27-05-2000 PRO-15 Protector pantalla 15 " 15 50 5-06-2000 MELISSA ITALIA USD 22.525 27-05-2000 INK430 Cartucho de tinta 430 20 25 31-5-2000 ARKANSAS CHINA EUR Diríamos que, entre otros, la FechaPedido (B) depende funcionalmente del NumPedido (A) porque para cada valor de NumPedido existe uno, y sólo uno, valor de FechaPedido asociado con él. Los atributos FechaPrevista, NomProv, PaisProv y Moneda también dependen funcionalmente de NumPedido. Podríamos escribir como sigue: NumPedido -→ FechaPedido NumPedido -→ FechaPrevista NumPedido -→ NomProv NumPedido -→ PaisProv NumPedido -→ Moneda Al tratarse de diferentes atributos que dependen funcionalmente de un mismo atributo, escribiremos: (1) NumPedido -→ FechaPedido, FechaPrevista, NomProv, PaisProv, Moneda Además de la anterior, tendríamos también las siguientes dependencias funcionales: (2) NomProv-→ PaisProv (3) Articulo → Descripcion (4) NumPedido, Articulo → Cantidad, Precio Dependencia funcional completa: cuando un atributo depende de otro que es un atributo compuesto (un conjunto de atributos), se dice que la dependencia funcional es completa si el atributo dependiente no depende de ningún subconjunto del atributo compuesto. Es decir; en una dependencia funcional A→ B, cuando A es un conjunto de atributos, decimos que la dependencia funcional es completa si solo depende de A, pero no depende funcionalmente de ningún subconjunto de A. Caso práctico En el ejemplo anterior, las dependencias (1), (2) y (3) son completas, ya que la parte izquierda de la dependencia está formada por un único atributo y, por tanto, es imposible que la parte derecha de la dependencia pueda depender de un subconjunto. La dependencia (4) también es completa, ya que Cantidad y Precio dependen de la pareja (NumPedido, Artículo) y no de ningún subconjunto de ésta. Dependencia funcional transitiva. Es una dependencia de un atributo no principal de otro no principal. Cuando se tienen tres atributos X, Y y Z se cumple que X → Y, Y → Z pero no Y → X (Y no determina X). Por tanto Z tiene dependencia transitiva con respecto a X, a través de Y. Caso práctico En el ejemplo anterior podemos decir que PaisProv depende transitivamente de NumPedido a través de NomProv. Autoevaluación Partiendo de la siguiente relación, seleccionar la alternativa que re eje las dependencias existentes entre sus atributos: MODULOS ( ClaveModulo, NombreModulo, Horas, Aula, ClaveCiclo, NombreCiclo) ClaveMódulo → NombreMódulo, Horas, Aula, ClaveCiclo, NombreCiclo ClaveCiclo → NombreCiclo ClaveMódulo → NombreMódulo, Horas, Aula, ClaveCiclo, NombreCiclo ClaveMódulo → NombreMódulo, Horas, Aula ClaveCiclo → NombreCiclo ClaveCiclo → NombreCiclo, ClaveMódulo, NombreMódulo, Aula, Horas ClaveMódulo → NombreMódulo « Anterior | Siguiente »