Para cumplir con la 1ra forma normal, una de las cosas que debe evitar es repetir grupos. Al igual que en vez de:Diseño de BD: 1ra Forma normal y grupos repetitivos
CustID Name Address Phone1 Phone2 Phone3
102 Jerry 234 East.. 555-2342 555-9854 555-2986
Debe crear una segunda tabla Número de Teléfono y luego en una unión que se obtendría:
CustID Name Address Phone
102 Jerry 234 East.. 555-2342
102 Jerry 234 East.. 555-9854
102 Jerry 234 East.. 555-2986
A veces, es un poco más ambiguo y es difícil decir cuando una grupo de encabezados de columna califica. Por ejemplo, digamos que tiene, por el momento, dos pruebas que ejecuta en cada pieza de hardware. Y su primer diseño DB proporciona el enfoque más horizontal:
Diseño 1
SN Test1_Max Test1_Min Test1_Mean Test2_Max Test2_Min Test2_Mean
2093 23 2 15 54 -24 45
Obviamente, este es un grupo de repetición, que podría mucho más fácil ser representado como (en una unión entre "partes" y "pruebas"):
Diseño 2
SN Test Max Min Mean
2093 1 23 2 15
2093 2 54 -24 45
Sin embargo, podría ir incluso más vertical:
Diseño 3
SN Test Statistic Value
2093 1 Max 23
2093 1 Min 2
2093 1 Mean 15
2093 2 Max 54
2093 2 Min -24
2093 2 Mean 45
3 es el diseño necesario? ¿Cómo decides qué tan vertical para hacerlo? ¿Cuáles son los pros y contras entre el Diseño 2 y 3? Parece que ambos podrían seleccionarse o unirse fácilmente con SQL, con la ventaja dada al Diseño 3 porque podría agregar fácilmente una nueva Estadística sin modificar realmente la estructura de la tabla.
Pero antes de que alguien vaya y dice que cuanto más vertical es mejor, hay veces en que es más ambiguo. Al igual que:
Diseño 4
SN AverageCurrent (mA) BatteryCapacity (mA)
2093 200 540
en su lugar podría ser:
Diseño 5
SN mA_Measuremnt Value
2093 AverageCurrent 200
2093 BatteryCapacity 540
Si bien ambos atributos son del mismo dominio (mA), que representan cosas muy diferentes con respecto al componente. En este caso, ¿es mejor el Diseño 4 ya que no es estrictamente un grupo repetitivo? Creo que lo que estoy buscando es un criterio para saber cuándo dividirlo en más tablas y así hacerlo más vertical.
Para resumir este ridículamente largo pregunta, en caso de que sólo se retire y normalizar grupos repetitivos si son exacly el mismo dominio y tener exactamente el mismo significado?. Si ese es el caso, realmente solo el ejemplo de teléfono y probablemente las dos pruebas en el Diseño 1 cumplen con este criterio. Aunque parece que puede haber beneficios de diseño para el Diseño 3 y 5, a pesar de que las estadísticas de Diseño 3 tienen significados diferentes estrictamente hablando, y AverageCurrent y BatteryCapacity definitivamente tienen diferentes significados en el Diseño 5.
Como un aparte para el diseño 2 y 3, almacenaría las muestras que componen el min/mean/max –
Rowland que es un buen punto; entonces su punto de vista resumiría, sin embargo, no sabemos lo suficiente como para decirlo. El dispositivo solo puede grabar/imprimir min/max, etc. –
Estoy de acuerdo con Rowland, pero para simplificar, imaginemos (o tal vez debería editarlo) que son tres valores estáticos diferentes que resultan de cada prueba en lugar de una funciona como "mala". – JoeCool