Pregunta

Estoy estudiando para una prueba de base de datos, y la guía de estudio hay algunos (muchos) ejercicios de normalización de DB y dependencia funcional, pero el maestro no hizo ningún ejercicio similar, por lo que me gustaría que alguien me ayude a entender esto para atacar los otros 16 problemas.

1) Dado el siguiente esquema lógico: relación product_sales

POS     Zone     Agent   Product_Code   Qualification   Quantity_Sold
123-A   Zone-1   A-1     P1             8               80
123-A   Zone-1   A-1     P1             3               30
123-A   Zone-1   A-2     P2             3               30
456-B   Zona-1   A-3     P1             2               20
456-B   Zone-1   A-3     P3             5               50
789-C   Zone-2   A-4     P4             2               20

Suponiendo que: • Los puntos de venta se agrupan en la zona. • Cada punto de venta hay agentes. • Cada agente opera en un solo pos. • Dos agentes de los mismos puntos de venta no pueden comercializar el mismo producto. • Para cada producto vendido por un agente, se le asigna una calificación según el producto y la cantidad vendida.

a) Indique 4 dependencias funcionales presentes.
b) ¿Cuál es la forma normal de esta estructura?

¿Fue útil?

Solución

Para que comience a encontrar las 4 dependencias funcionales, piense en qué atributos depender En otro atributo:

EG: ¿La zona depende de la POS? (si es así, Pos -> zona) ¿O el POS depende de la zona? (en ese caso Zona -> Pos).

Cuatro de sus cinco declaraciones le dicen algo sobre las dependencias entre atributos (o combinaciones de varios atributos).


En cuanto a la normalización, hay un tutorial (relativamente) claro aquí. La frase "La clave, toda la clave y nada más que la clave" También es una buena forma de recordar las formas normales 1er, 2 y 3.

Otros consejos

En tu comentario, dijiste

Bueno, según la teoría que he leído, creo que puede ser, pero tengo muchas dudas: pos → zona, {pos, agente → zona, agente → pos, {agente, product_code, cantidad_sold} → calificación -

Creo que es un buen esfuerzo.

  1. Creo que la zona de pos-> es correcta.
  2. No creo que {pos, agente} → la zona sea bastante correcta. Si observa los datos de la muestra y lo piensa un poco, creo que encontrará ese agente-> POS, y ese agente-> zona.
  3. No creo que {agente, product_code, cantidad_sold} → la calificación sea bastante correcta. El requisito establece que "para cada producto vendido por un agente, se le asigna una calificación dependiendo del producto y la cantidad vendida". La parte importante de eso es "una calificación dependiendo del producto y la cantidad vendida". La calificación depende del producto y la cantidad, por lo que {Product_code, Cantidad}-> Calificación. (Nada en el requisito me sugiere que la calificación podría ser diferente para órdenes idénticas de dos agentes diferentes).

Entonces, según su comentario, creo que tiene estas dependencias funcionales hasta aquí.

  • Pos-> zona
  • Agente-> Pos
  • Agente-> zona
  • Product_code, cantidad-> calificación

Pero te estás perdiendo al menos uno que tiene un efecto significativo en la determinación de las claves. Aquí está el requisito.

Dos agentes de los mismos puntos de venta no pueden comercializar el mismo producto.

¿Cómo se expresa la dependencia funcional implícita en ese requisito?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top