2015-11-26 1 views
0

Привет, я в настоящее время пытаюсь изучить основы базы данных, и моя проблема заключается в понимании нормализации.Понимание нормализации

Что бы 2НФ и 3NF быть на что-то вроде этого

CustNo (рк), CustBal, CustDiscount

OrdNo (рк), CustNo, ShipAddr, OrderDate

ITEMNO (рк) ItemDesc

ITEMNO (рк), PlantNo (рк), ReorderPoint, QtyOnHand

OrderNo (рк), ITEMNO (рк), LINENO, QtyOrdered, QtyOutstanding

OrderNo (рк), LINENO (рк), ITEMNO, QtyOrdered, QtyOutstanding

+2

Чтобы понять нормализацию базы данных, вы должны сначала понять функциональные зависимости, см., Например, определение [3nf] (https://en.wikipedia.org/wiki/Third_normal_form). Каковы функциональные зависимости ваших примеров? – Renzo

ответ

0

Нормализация не является самоцелью. Нормализация - это проектная деятельность, информируемая о требованиях того, что вы разрабатываете. Вы моделируете то, что существует в реальном мире - производственные заказы, в данном случае - и вы хотите спроектировать представление.

Для примера рассмотрим эти два соотношения, которые вы определили:

  • ITEMNO (рк) ItemDesc
  • ITEMNO (рк), PlantNo (рк), ReorderPoint, QtyOnHand

ли ReorderPoint для каждого элемента на основе каждого завода или существуют ли политики, которые планировщики инвентаризации устанавливают для элементов, которые вызывают вычисление ReorderPoint? Возможно:

  • ReorderPoint отключается (ItemNo, PlantNo), как вы это делали;
  • ReorderPoint отключается ItemNo (на уровне мастера предметов);
  • Некоторые другие атрибуты элемента, которые определяют правила переупорядочения (EOQ, зависимый элемент и т. Д.) И не имеют постоянного параметра ReorderPoint.

Требования определяют, что вы хотите смоделировать, и оттуда можно нормализовать. Также можно переоценить, что отрицательно сказывается на производительности.