пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Нормализация данных. Третья нормальная форма и нормальная форма Кодда-Бойса

 

Нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.

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

 

Нормальная форма Бойса-Кодда — одна из возможных нормальных форм отношения в реляционной модели данных. Иногда нормальную форму Бойса-Кодда называют усиленной третьей нормальной формой, поскольку она во всех отношениях сильнее (строже) по сравнению с ранее определённой 3НФ.

Названа в честь Рэя Бойса и Эдгара Кодда, хотя Кристофер Дейт указывает, что на самом деле строгое определение «третьей» нормальной формы, эквивалентное определению нормальной формы Бойса-Кодда, впервые было дано Иэном Хитом в 1971 году, поэтому данную форму следовало бы называть «нормальной формой Хита».

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

 

Пример 3. Рассмотрим следующий пример. База данных ПАНСИОН. Отношения

Блюдо (БЛ, Блюдо, В, О, Выход, Труд)

Продукты (ПР, Продукт, Белки, …)

 

Данные таблицы не находятся в 3НФ после добавления цифрового первичного ключа. В них появились несуществовавшие ранее функциональные зависимости между неключевыми полями:

 

1) Блюдо->В, Блюдо->О и т.д.

2) Продукт->Белки, ит.д.

 

Следовательно, для приведения таблиц Блюда и Продукты к 3НФ их надо разбить на

 

Блюда(БЛ, Блюдо),

Вид_блюда(БЛ, В);

и т.д.

Продукты(ПР, Продукт);

Калор_прод(ПР,Калорийносить),

и т.д.

 

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

 

Столкнувшись с подобными несуразностями, которые могут возникать не только из-за введения кодированных первичных ключей, теоретики реляционных систем Кодд и Бойс обосновали и предложили более строгое определение для 3НФ, которое учитывает, что в таблице может быть несколько возможных ключей.

Определение. Таблица находится в нормальной форме Бойса-Кодда (НФБК), если и только если любая функциональная зависимость между его полями сводится к полной функциональной зависимости от возможного ключа.

 

В соответствие с этой формулировкой таблицы Блюда и Продукты, имеющие по паре возможных ключей (БЛ и Блюдо) и (ПР и Продукт) находятся в НФБК или в 3НФ.


13.06.2017; 20:40
хиты: 179
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь