Функциональные зависимости. Вторая нормальная форма (2НФ)

Первая нормальная форма (1НФ).

Введём понятие простого и сложного атрибута. Простой атрибут – это атрибут, значения которого атомарны (т.е. неделимы). Сложный атрибут может иметь значение, представляющее собой конкатенацию нескольких значений одного или разных доменов. Аналогом сложного атрибута может быть агрегат или повторяющийся агрегат данных.

Отношение приведено к 1НФ, если все его атрибуты простые.

Отношение КНИГИ содержит сложные атрибуты Author ("Авторы") и Editor ("Редакторы"). Для приведения к 1НФ требуется сделать все атрибуты простыми и ввести составной ключ отношения (ID, Author и Editor) (табл. 8.2).

Таблица 8.2. Отношение КНИГИ, приведённое к 1НФ

Id Code Theme Author Title Editor Type Year Pg
  22.18 МК Бочков С. Язык программирования СИ Садчиков П. учебник    
  22.18 МК Субботин Д. Язык программирования СИ Седов П. учебник    
  22.18 МК Джехани Н. Язык АДА Красилов А. учебник    
  22.18 МК Джехани Н. Язык АДА Перминов О. учебник    
  32.97 ВТ Соловьев Г. Операционные системы ЭВМ   учебное пособие    
  32.97 ВТ Никитин В. Операционные системы ЭВМ   учебное пособие    
  32.81 Кибернетика Попов Э.В. Общение с ЭВМ на естественном языке Некрасов А. учебник    
  32.97   ПУ для ПЭВМ   Витенберг Э. справочник    
  32.973 ЭВМ Коутс Р.Б Интерфейс «человек-компьютер» Шаньгин В. учебник    
  32.973 ЭВМ Влейминк И. Интерфейс «человек-компьютер» Шаньгин В. учебник    

Отношение в 1НФ является информационно-избыточным. Для такого отношения возможны все три вида аномалии. Если потребуется, например, изменить тип издания Джехани Н. «Язык АДА» с учебника на учебное пособие, то обновление должно коснуться двух записей, иначе возникнет нарушение логической целостности данных.

Введём понятие функциональной зависимости. Пусть X и Y – атрибуты (группы атрибутов) некоторого отношения. Говорят, что Y функционально зависит от X, если в любой момент времени каждому значению X=х соответствует единственное значение Y=y (X→Y). (При этом любому значению Y=y может соответствовать несколько значений Х=(х1, х2,…)). Атрибут X в функциональной зависимости X→Y называется детерминантом отношения.

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

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

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

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

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

Ключом отношения КНИГИ (табл. 8.2) является комбинация полей ( ID, Author, Editor ). Все поля, не входящие в состав ключа, зависят только от идентификатора книги. Поэтому отношение должно быть разбито на два: КНИГИ (табл. 8.3) и КНИГИ–АВТОРЫ–РЕДАКТОРЫ (табл. 8.4). Эти отношения связаны по внешнему ключу, которым является поле ID.

Таблица 8.3. Отношение КНИГИ, приведённое к 2НФ

Id Code Theme Title Type Year Pg
  22.18 МК Язык программирования СИ учебник    
  22.18 МК Язык АДА учебник    
  32.97 ВТ Операционные системы ЭВМ учебное пособие    
  32.81 Кибернетика Общение с ЭВМ на естественном языке учебник    
  32.97 ВТ ПУ для ПЭВМ справочник    
  32.973 ЭВМ Интерфейс «человек-компьютер» учебник    

Таблица 8.4. Отношение КНИГИ–АВТОРЫ–РЕДАКТОРЫ (2НФ)

Id Author Editor
  Бочков С. Садчиков П.
  Субботин Д. Седов П.
  Джехани Н. Красилов А. Перминов О.
    Перминов О.
  Соловьев Г.  
  Никитин В.  
  Попов Э.В. Некрасов А.
    Витенберг Э.
  Коутс Р.Б Шаньгин В.
  Влейминк И.  

Отношение во 2НФ является менее избыточным, чем в 1НФ, но оно также не свободно от аномалий. Например, при удалении книги Попова «Общение с ЭВМ на естественном языке» мы потеряем информацию о том, что есть рубрика «Кибернетика» с кодом 32.81. И внести сведения о новой рубрике нельзя, пока в списке книг не появится хотя бы одна книга по этой рубрике.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: