Дизайн БД: 1-я нормальная форма и повторяющиеся группы

Чтобы придерживаться 1-й нормальной формы, вам следует избегать повторения групп. Как вместо:

    CustID  Name  Address       Phone1      Phone2       Phone3

     102    Jerry  234 East..   555-2342   555-9854     555-2986

Вы должны создать вторую таблицу телефонных номеров, а затем при объединении вы получите:

CustID  Name     Address       Phone

102 Jerry    234 East..   555-2342
102 Jerry    234 East..   555-9854
102 Jerry    234 East..   555-2986

Иногда это немного более двусмысленно, и трудно сказать, когда квалифицируется группа заголовков столбцов. Например, допустим, у вас есть два теста, которые вы запускаете на каждом оборудовании. И ваш первый дизайн БД дает наиболее горизонтальный подход:

Дизайн 1

SN     Test1_Max   Test1_Min    Test1_Mean  Test2_Max   Test2_Min    Test2_Mean
2093      23          2            15         54          -24           45  

Очевидно, что это повторяющаяся группа, которую гораздо проще представить как (в соединении между «Частями» и «Тестами»):

Дизайн 2

SN     Test      Max    Min    Mean     
2093    1        23     2      15       
2093    2        54     -24     45      

Тем не менее, вы можете пойти еще более вертикально:

Дизайн 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? Как вы решаете, как вертикально сделать это? Каковы плюсы и минусы между Дизайн 2 и 3? Кажется, что оба могут быть легко выбраны или объединены с SQL, с преимуществом, данным для Design 3, потому что вы можете легко добавить новую статистику без фактического изменения структуры таблицы.

Но прежде чем кто-то скажет, что чем вертикальнее, тем лучше, бывают случаи, когда это более двусмысленно. Подобно:

Дизайн 4

SN      AverageCurrent (mA)    BatteryCapacity (mA)  
2093          200                    540  

Вместо этого может быть:

Дизайн 5

SN      mA_Measuremnt       Value
2093    AverageCurrent      200 
2093    BatteryCapacity     540 

Хотя оба атрибута принадлежат одному домену (мА), они представляют собой разные вещи в отношении компонента. В этом случае лучше ли дизайн 4, поскольку он не является строго повторяющейся группой? Я думаю, что я ищу некоторые критерии, чтобы знать, когда разбить его на несколько таблиц и, таким образом, сделать его более вертикальным.

Подводя итог этому нелепо длинному вопросу,следует удалять и нормализовать повторяющиеся группы только в том случае, если они находятся в одном доменеа также имеют точно такое же значение?, Если это так, то этому критерию соответствуют только телефонный пример и, возможно, два теста в Design 1. Хотя кажется, что дизайн 3 и 5 могут быть полезны для дизайна, даже если статистика проекта 3, строго говоря, имеет разные значения, а AverageCurrent и BatteryCapacity определенно имеют разные значения в дизайне 5.

Ответы на вопрос(7)

Ваш ответ на вопрос