1NF, 2NF И 3NF Нормализация? - PullRequest
0 голосов
/ 21 марта 2019

У меня есть учитель, который не любит объяснять классу, но любит ставить контрольные вопросы для предстоящих тестов.Может кто-нибудь объяснить изображение выше?Моя главная проблема в красном подчеркивании, которое показывает, что поставщиком и поставщиком телефона являются повторяющиеся значения.Я думал, что повторяющиеся значения возникали, когда в столбце было много вхождений одного и того же элемента.

Другой вопрос, который у меня возникает, заключается в том, что если поставщик является повторяющимся значением, то почему Part_Name не является повторяющимся значением, поскольку оба имеют 2элементы с одинаковыми именами в столбцах.

Пример:

enter image description here

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Выглядит как пять столов для меня.

model   (entity)
modelid  description price
 1        Laserjet    423.56 
 1        256 Colour   89.99
part   (entity)
partid  name
PF123   Paper Spool
LC423   Laserjet cartridge
MT123   Power supply
etc
bill_of_materials    (many to many relationship  model >--< part )
modelid  partid     qty
1        PF123       2
1        LC423       4
1        MT123       1
2        MT123       2
supplier  (entity)
supplier_id phone         name
1           416-234-2342  ABC Plastics
2           905..         Jetson Carbons
3           767...        ACME Power Supply
etc.
part_supplier  (many to many relationship  part >--< supplier )
part_id    supplier_id      
PF123       1
LC423       2
MT123       3
etc.

У вас есть одна строка в модели, детали, поставщике для каждого отдельного объекта

У вас есть строки в bill_of_materials для каждой детали, входящей в каждую модель.

У вас есть строка в part_supplier для каждого поставщика, которая может предоставить каждую часть. Обратите внимание, что от одного поставщика может приходить более одной детали, и каждая деталь может поставляться несколькими поставщиками. Это отношение многие ко многим.

Хитрость: выясните, какие физические вещи есть у вас в домене приложения. Затем составьте таблицу для каждого. Затем выясните, как они связаны друг с другом (вот что делает его реляционным.)

0 голосов
/ 21 марта 2019

Это повторяется, потому что результат кортежа всегда один и тот же. Например. У ABC Plastics всегда будет один и тот же номер телефона, поэтому наличие двух строк с ABC Plastics означает, что у нас есть избыточная информация в номере телефона.

Part1 Company1 12341234
Part2 Company1 12341234

Мы можем представить ту же информацию с помощью:

Part1 Company1
Part2 Company1

И

Company1 12341234.

Следовательно, наличие двух строк с одним и тем же номером телефона является излишним.

Это должно ответить и на ваш второй вопрос.

По сути, вы ищете кортежи, для которых существует кортеж (X, Y), если существует другой кортеж (X, Y '), то Y' = Y

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...