Главная страница

нормализация бд. Производителя


Скачать 16.52 Kb.
НазваниеПроизводителя
Дата27.04.2023
Размер16.52 Kb.
Формат файлаdocx
Имя файланормализация бд.docx
ТипДокументы
#1093893

У каждого производителя 1 контак

1 нф

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

2 нф

Есть первичный ключ и он простой и все не ключевые атрибуты зависят от первичного ключа

3 Нет зависимостей одних не ключевых полей от других. Контакт и название производителя зависят от первичного ключа и контакт не зависит от названия производителя и название производителя не зависит от контакта

Id Производителя

Название производителя

Контакт

1

Производитель1

1@mail.ru

2

Производитель2

2@mail.ru

3

Производитель3

3@mail.ru

4

Производитель4

4@mail.ru

5

Производитель5

5@mail.ru

Если появилось требование, что у производителя может быть несколько контактов

Таблица не в первой нормальной форме. Не все значения простые

Id Производителя

Название производителя

Контакт

1

Производитель1

1@mail.ru,

1@yandex.ru,

1@google.com

2

Производитель2

2@mail.ru

3

Производитель3

3@mail.ru

4

Производитель4

4@mail.ru

5

Производитель5

5@mail.ru

Чтобы привести к 1нф нужно разнести контактные данные по смежным строкам

Id Производителя

Название производителя

Контакт

1

Производитель1

1@mail.ru,

1

Производитель1

1@yandex.ru

1

Производитель1

1@google.com

2

Производитель2

2@mail.ru

3

Производитель3

3@mail.ru

4

Производитель4

4@mail.ru

5

Производитель5

5@mail.ru

Id Производителя больше не уникальный ключ т.к повторяется несколько раз.

Следовательно в качестве ключа таблицы нужно выбрать составной ключ Id Производителя + Контакт

Название производителя зависит от ключа Id Производителя, но не зависит от ключа Контакт

Т.к при разных значениях контакты имя остается одинаковым при условии что у них одинаковый идентификатор. Следовательно не ключевой атрибут Название производителя зависит только от части составного ключа Id Производителя. Значит таблица не находится во 2нф.

Значит нужно разделить таблицу на две.

Контакты производителя

Контакт

Id Производителя

1@mail.ru,

1

1@yandex.ru

1

1@google.com

1

2@mail.ru

2

3@mail.ru

3

4@mail.ru

4

5@mail.ru

5

Производители

Id Производителя

Название производителя

1

Производитель1

1

Производитель1

1

Производитель1

2

Производитель2

3

Производитель3

4

Производитель4

5

Производитель5

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

Они находятся и в третьей нормальной форме так как у каждого из них только один не ключевой столбец. Соответственно все столбцы зависят от первичного ключа.


написать администратору сайта