Минимальное количество таблиц, которое существует после разложения отношения R в 1NF?

Рассмотрим отношение R (A, B, C, D, E, F, G) со следующими типами атрибутов: –

Общее количество ключей = 1 = {A}

Набор простых (или) атомных (или) однозначных атрибутов = {B, C}

Набор многозначных атрибутов = {D, E}

Набор составных атрибутов = {F, G}

Каким будет минимальное количество таблиц, которое существует после разложения отношения R в 1NF?

(A) 3 (B) 2 (C) 4 (D) 5


Моя попытка:

Нам нужна была другая таблица для каждого многозначного атрибута с заданным ключом (A), total = 2

Точно так же нам нужна была другая таблица для каждого составного атрибута total = 2.

Всего 4 таких атрибута. Я даю 4 таблицы с заданным ключом (A) в каждой (4) таблицах. Мне разрешено вставлять атомные атрибуты (B, C) в любую из четырех таблиц. Итак, я пришел к выводу, что 4 таблицы достаточны для представления отношения в первой нормальной форме.

Можете ли вы объяснить формально, пожалуйста?

Для каждого атрибута, который вы считаете «композитным» (с гетерогенными частями, например, с кортежем):

Для каждого компонента составного атрибута, который может отсутствовать: добавьте отношение с атрибутами некоторого ключа-кандидата и атрибутом для этого компонента. Для каждой строки исходного отношения, у которой этот компонент имеет строку в новом отношении, новым значением атрибута которого является значение компонента, а значения атрибута ключа кандидата – исходная строка. Затем отбросьте компонент. Это добавляет одно отношение к компоненту, которое может отсутствовать.

Для каждого оставшегося компонента: добавьте атрибут к исходному отношению, значение которого в каждой строке является значением компонента. Затем отбросьте составной атрибут. Это не добавляет никаких отношений.

Для атрибута, который вы считаете «многозначным» (имеющим однородные части, как отношение):

Для атрибута типа, который может иметь нулевые элементы: Добавьте отношение с атрибутами некоторого ключа-кандидата и этого атрибута. Для каждой строки исходного отношения имеется набор строк в новом отношении, новыми значениями атрибутов которых являются элементы многозначного атрибута, а значения атрибутов ключа кандидата – исходная строка. Затем отбросьте многозначный атрибут. Это добавляет одно отношение для многозначного атрибута.

Для атрибута типа, который всегда имеет элементы: Замените каждую строку исходного отношения на набор строк, многозначные значения атрибутов которых являются элементами многозначного атрибута, а другие значения атрибутов являются исходной строкой. Это не добавляет никаких отношений.

Таким образом, конечные соотношения здесь: {A, B, C, F1, …, G1, …}, {A, D} и {A, E}, всего 1 (для оригиналов и композитов) + 2 ( для многозначных).

(Если все ключи-кандидаты отношения содержат многозначные атрибуты, тогда вы должны ввести атрибут суррогата для хотя бы одного многозначного атрибута.)

Конечно, на практике вы должны нормализовать новые таблицы, которые могут генерировать новые таблицы. Но это должно улучшить дизайн. Здесь нам нужен дизайн с максимально возможными добавленными таблицами.

(Нет такой вещи, как «разложение» отношения в 1NF. Первоначальное чувство «нормализации» означало избавление от атрибутов, связанных с отношением. Позже теория нормирования рассматривает каждое отношение в 1NF. См. Это re 1NF & atomicity. замените отношение с атрибутами, которые, как мы считаем, имеют однородные части (многозначные) или гетерогенные части (составные) одним или несколькими отношениями, которые имеют атрибуты для частей. И мы можем преобразовать нереляционный дизайн в реляционный. -relational design не будет иметь кандидата / первичный ключ, потому что это определено только для отношений.)

  • Какой лучший дизайн базы данных: больше таблиц или больше столбцов?
  • Каким образом денормализация улучшает производительность базы данных?
  • Что объединяет повторяющиеся наборы информации о строках в новые объекты, вызываемые при нормализации базы данных?
  • Как нормализовать гистограмму в MATLAB?
  • Нормализация в MYSQL
  • Давайте будем гением компьютера.