Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Вторая нормальная форма (2НФ).





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

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

Рассмотрим понятие транзитивной зависимости. Пусть X, Y, Z – атрибуты некоторого отношения. При этом X→Y и Y→Z, но обратное соответствие отсутствует, т.е. Z не зависит от Y или Y не зависит от X. Тогда говорят, что Z транзитивно зависит от X (X→→Z).

Иначе говоря, на рисунке 4 представлена таблица, которая не соответствует требованиям 2НФ. Таблица во второй нормальной форме должна отвечать требованиям первой нормальной формы, кроме того, каждое не ключевое поле в ней зависит от полного значения первичного ключа. Или часть информации может храниться в другой таблице и на нее можно ссылаться с помощью подстановки. Рассмотрим таблицу, представленную на рисунке 5, первичный ключ составлен из полей «Код адресата», «Код типа коммуникации» и «Контактная информация». Рассмотрим, зависит ли поле «Фамилия Имя» только от части ключа, полей «Код адресата» и «Контактная информация». Очевидно, что нет, поскольку оно зависит только от поля «Код адресата», являющегося частью первичного ключа. Чтобы преобразовать данную таблицу во вторую нормальную форму, необходимо разделить информацию, а данные о заказчиках поместить в таблицу подстановки, установив между двумя таблицами отношение «один-ко-многим». (см. рисунок 5). Теперь эти таблицы приведены ко второй нормальной форме.

 

Код адресата Фамилия Имя
  Иванов Дмитрий
  Мелехов Алексей

 

Код адресата Фамилия Имя Код типа коммуникации Тип коммуникации Контактная информация
  Иванов Дмитрий   Телефон 111 22 32
  Иванов Дмитрий   Факс 212-333-4321
  Мелехов Алексей   Телефон 213 12 22
  Мелехов Алексей   E Mail email tom@ aurora.com

Рисунок 5 Таблицы приведены к 2НФ

Третья нормальная форма (3НФ).

Отношение находится в 3НФ, если оно находится во 2НФ и каждый не ключевой атрибут не транзитивно зависит от первичного ключа.

Для того чтобы привести отношение к 3НФ, нужно:

1) построить его проекцию, исключив транзитивно зависящие от ключа атрибуты;

2) построить дополнительно одну или несколько проекций на детерминанты исходного отношения и атрибуты, функционально зависящие от них.

Введём понятие многозначной зависимости. Многозначная зависимость существует, если заданным значениям атрибута X соответствует множество, состоящее из нуля (или более) значений атрибута Y (X–”Y).

Различают тривиальные и нетривиальные многозначные зависимости. Тривиальной называется такая многозначная зависимость X–”Y, для которой Y Ì X или X U Y = R, где R – рассматриваемое отношение. Тривиальная многозначная зависимость не нарушает 4НФ. Если хотя бы одно из двух этих условий не выполняется, то такая зависимость называется нетривиальной.

Иначе говоря, представленная на рисунке 5 Таблица 2 отвечает требованиям первой и второй форм, она не приведена к третьей нормальной форме. Третья нормальная форма требует, чтобы все не ключевые столбцы были взаимно независимыми. Хорошим примером зависимого поля является вычисляемое поле. На рисунке 5 Таблица 2 поле «Контактная информация» и поле «Тип Коммуникации». Поскольку значение поля «Контактная информация» определяется по значению поля «Код типа коммуникации», таблица не удовлетворяет 3НФ. Чтобы представить таблицу в третьей нормальной форме, необходимо отделить информацию об адресатах и поместить их в третью таблицу, а также создать отношения «один-ко-многим» между таблицами, содержащими информацию об адресатах и о подробностях контакта. Это отражено на рисунке 6.

 

Код адресата Фамилия Имя
  Иванов Дмитрий
  Мелехов Алексей

 

Код типа коммуникаций Тип коммуникаций
  Телефон
  Факс
  E Mail

 

Код адресата Код типа коммуникаций Контактная информация
     
     

Рисунок 6 Исходная таблица представлена в третьей нормальной форме.

Преимущества нормализации.

В вышеприведенном примере рассматривалась нормализация исходной таблицы, представленной на рисунке 3. В этой таблице определяются типы коммуникаций в виде массива значений, что приводит к практической невозможности отыскать содержимое, например, поля «Факс». Кроме того, при изменении контактного телефона или появлении нового типа коммуникации, например, почтового адреса, редактирование данных оказывается достаточно сложным. Первая нормальная форма значительно улучшает ситуацию и повышает гибкость, организуя более совершенную схему хранения данных о номерах телефонов, факсов, адресах электронной почты и т.д.

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

Изображенные на рисунке 5 таблицы приведены к первой и второй нормальным формам, поскольку каждый столбец зависит от полного ключа, но не выполняет требования третьей нормальной формы. Переместив данные и достигнув третьей нормальной формы, получаем максимально возможную гибкость модели данных, поскольку теперь данные о типах коммуникаций содержаться в отдельной таблице (рисунок 6).

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

Правила обеспечения целостности данных. При нормализации таблиц необходимо принимать во внимании правила обеспечения целостности данных. Большинство задаваемых правил определяются установленными отношениями. Кроме того, с помощью отношений можно организовать каскадное изменение и удаление данных. Установка каскадного изменения обеспечивает следующее: при изменении значения первичного ключа в таблице «один», изменение распространяется на все таблицы «многие». Например, имеется таблица подстановки, содержащая названия штатов. Значение «New York» представлено значением «NY» в поле первичного ключа. Представим ситуацию, когда город Нью-Йорк преобразуется в самостоятельный штат, при этом формируется его собственное сокращение название штата. При изменении значения «NY» на «NYI» (либо на нечто более описательное), значение «NY» во всех дочерних таблицах меняется на «NYI». Если каскадное обновление не установлено, потребуется в таблицу подстановки внести значение «NYI», изменить все записи в дочерней таблице и затем удалить из таблицы подстановки запись «NY». Установка каскадного удаления обеспечивает следующее: при удалении записи из таблицы «один» удаляются также все записи из таблицы «многие». Это может оказаться как преимуществом, так и недостатком. При удалении информации о заказчике в режиме каскадного удаления удаляются все его счета в таблице «многие». Если такой режим не установлен, удаление записей в таблице «один» не разрешается до тех пор, пока в таблице «многие» не будут удалены все связанные записи, чтобы в ней не осталось записей с неопределенным значением внешнего ключа.







Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.