Нормализация отношений

Автор: Пользователь скрыл имя, 27 Октября 2011 в 20:54, реферат

Описание работы

Аномалии.
1) Избыточность данных (повторение одной и той же информации).
2) Обновления (например, изменение адреса завода ведет к модификации множества записей).
3) Удаления (при удалении последнего трансформатора, выпускаемого на каком-то заводе, теряется информация о самом заводе).
4) Включения (например, при включении нового типа нужно сразу описывать все атрибуты).

Работа содержит 1 файл

Базы данных.docx

— 36.90 Кб (Скачать)

       2.3. Нормализация отношений

Если рассмотреть  кортежи полученного для трансформаторов  отношения, то сразу виден ряд  аномалий.  

Тип Sном L D H Завод Адрес
ТМ 4000/10

ТМ 4000/10

ТМ 4000/10

4000

4000

4000

6

10

10

3.15

3.15

6.3

3.9

3.9

3.9

3.65

3.65

3.65

3.9

3.9

3.9

Электрозавод

Электрозавод

Электрозавод

г. Москва

г. Москва

г. Москва

ТМ 6300/10

ТМ 6300/10

ТМ 6300/10

6300

6300

6300

10

10

10

3.15

6.3

10.5

4.3

4.3

4.3

3.7

3.7

3.7

4.05

4.05

4.05

ВНИИИС

ВНИИИС

ВНИИИС

г. Саранск

г. Саранск

г. Саранск

 

 

       Аномалии.

1) Избыточность  данных (повторение одной и той  же информации).

2) Обновления (например, изменение адреса завода  ведет к модификации множества  записей).

       3) Удаления (при удалении последнего  трансформатора, выпускаемого на  каком-то заводе, теряется информация  о самом заводе).

       4) Включения (например, при включении  нового типа нужно сразу описывать  все атрибуты).

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

       Состав  атрибутов должен обеспечивать:

       - отсутствие нежелательных функциональных  зависимостей.

       - минимальное дублирование данных.   

       Функциональная  зависимость атрибутов. 

       Если  в любой момент времени каждому  значению атрибута А соответствует не более, чем одно значение атрибута В, говорят, что В функционально зависит от А   

         А→В

       Понятно, что если отношение находится  в 1НФ, то все атрибуты зависят от ключа.

       Если  неключевой атрибут зависит от всего ключа, то говорят о полной функциональной зависимости, если от части – о частичной зависимости.

       Для рассматриваемого примера в качестве набора ключевых атрибутов выступают  «Тип, Uв, Uн», но остальные атрибуты зависят только от «Типа», то есть речь идет о частичной зависимости.

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

       Для перехода ко 2НФ нужно:

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

б) построить  проекцию на часть ключа и атрибута от нее зависящие.

       Таким образом исходное отношение «Трансформатор» может быть разложено на два отношения:

       ТР1( Тип, Uв, Uн)

       ТР2( Тип, Sном, Длина, Ширина, Высота, Завод, Адрес).  

Тип
ТМ 4000/10

ТМ 4000/10

ТМ 4000/10

6

10

10

3.15

3.15

6.3

ТМ 6300/10

ТМ 6300/10

ТМ 6300/10

10

10

10

3.15

6.3

10.5

 

 

Тип Sном L D H Завод Адрес
ТМ 4000/10 4000 3.9 3.65 3.9 Электрозавод г. Москва
ТМ 6300/10 6300 4.3 3.7 4.05 ВНИИИС г. Саранск
 

 

       Соединение  этих отношений по типу даст исходное отношение.  

       Транзитивная  зависимость атрибутов.

       Если  атрибут В зависит от атрибута А, а атрибут С от атрибута В, то атрибут С транзитивно зависит от атрибута А.

       А→В,  В→С – транзитивная зависимость.

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

В рассматриваемом  отношении атрибут Адрес завода транзитивно зависит от атрибута Тип. Поэтому для перехода к 3НФ отношение

       ТР2( Тип, Sном, Длина, Ширина, Высота, Завод, Адрес)

       должно  быть разложено на два

       ТР2_1(Тип, Sном, Длина, Ширина, Высота, Завод)

       ТР2_2(Завод, Адрес).

Обратный переход  осуществляется их соединением по атрибуту «Завод».  

       Многозначная  зависимость.

       Если  каждому значению атрибута А соответствует множество значений атрибута В, никак не связанных с другими атрибутами.

       А→→В.

       4НФ  – отношения находятся в 3-ей  НФ но в нем отсутствуют многозначные зависимости.

       В рассматриваемом примере Uв и Uн многозначно зависят от типа.  

       Общее правило нормализации.

       Если  отношение в отношении R(x,y,z) имеют место зависимости x→y или x→→y, то R можно разложить в R1(x,y) и R2(x,z), а R естественное соединение R1 и R2.

       Например, отношение 

Обучение(Таб. №,   ФИО, Предмет, Часы, Группа, Семестр, Должность, Зарплата, Кафедра, Телефон_Кафедры),

       содержащее разные зависимости, может быть разложено на отношения:  

       Преподаватель (Таб. №,   ФИО, Должность, Кафедра)

Кафедра (Кафедра, Телефон_Кафедры)

Оклад (Должность, Зарплата)

       Расписание (Таб. №, Предмет, Группа, Семестр),

       Программа (Предмет, Группа, Семестр, Часы). 
 

4.2.2. 1NF - первая нормальная форма.

Для обсуждения первой нормальной формы необходимо дать два определения:

Простой атрибут - атрибут, значения которого атомарны (неделимы).

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

Теперь можно  дать

Определение первой нормальной формы:

отношение находится в 1NF если значения всех его атрибутов атомарны.

Рассмотрим пример, заимствованный из уже упоминавшейся статьи Е.Ф.Кодда:

В базе данных отдела кадров предприятия необходимо хранить  сведения о служащих, которые можно  попытаться представить в отношении

СЛУЖАЩИЙ(НОМЕР_СЛУЖАЩЕГО, ИМЯ, ДАТА_РОЖДЕНИЯ, ИСТОРИЯ_РАБОТЫ, ДЕТИ).

Из внимательного  рассмотрения этого отношения следует, что атрибуты "история_работы" и "дети" являются сложными, более того, атрибут "история_работы"  включает еще один сложный атрибут "история_зарплаты".  
Данные агрегаты выглядят следующим образом:  
 

·  ИСТОРИЯ_РАБОТЫ (ДАТА_ПРИЕМА, НАЗВАНИЕ, ИСТОРИЯ_ЗАРПЛАТЫ),

·  ИСТОРИЯ_ЗАРПЛАТЫ (ДАТА_НАЗНАЧЕНИЯ, ЗАРПЛАТА),

·  ДЕТИ (ИМЯ_РЕБЕНКА, ГОД_РОЖДЕНИЯ).

Их связь представлена на рис. 4.3.

 

Рис.4.3. Исходное отношение. 

  
Для приведения исходного отношения СЛУЖАЩИЙ к первой нормальной форме необходимо декомпозировать его на четыре отношения, так как это показано на следующем рисунке:

 

Рис.4.4. Нормализованное  множество отношений. 

 

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

Алгоритм нормализации описан Е.Ф.Коддом следующим образом:

  • Начиная с отношения, находящегося на верху дерева (рис. 4.3.), берется его первичный ключ, и каждое непосредственно подчиненное отношение расширяется путем вставки домена или комбинации доменов этого первичного ключа.
  • Первичный Ключ каждого расширенного таким образом отношения состоит из Первичного Ключа, который был у этого отношения до расширения и добавленного Первичного Ключа родительского отношения.
  • После этого из родительского отношения вычеркиваются все непростые домены, удаляется верхний узел дерева, и эта же процедура повторяется для каждого из оставшихся поддеревьев.
 

4.2.3. 2NF - вторая нормальная форма.

Очень часто  первичный ключ отношения включает несколько атрибутов (в таком  случае его называют составным) - см., например, отношение ДЕТИ, показанное на рис. 4.4. При этом вводится понятие полной функциональной зависимости.

Определение:

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

Пусть имеется  отношение ПОСТАВКИ (N_ПОСТАВЩИКА, ТОВАР,  ЦЕНА).  
Поставщик может поставлять различные товары, а один и тот же товар может поставляться разными поставщиками. Тогда ключ отношения - "N_поставщика + товар". Пусть все поставщики поставляют товар по одной и той же цене. Тогда имеем следующие функциональные зависимости:

Информация о работе Нормализация отношений