Нормализация базы данных и таблиц




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

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

ИдР Фамилия Специальность Начальник Здание
  Иванов Маляр    
  Иванов Маляр    
  Иванов Маляр    
  Петров Штукатур    
  Петров Штукатур    
  Сидоров Маляр    
  Сидоров Маляр    

* *

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

Аномалия обновления – это противоречивость данных, вызванная их избыточностью и частичным обновлениям.

Аномалия удаления – это непреднамеренная потеря данных, вызванная удалением других данных.

Аномалия добавления – это невозможность внести одни данные из-за отсутствия других данных.

Чтобы устранить аномалии, нужно разбить исходную таблицу на:

Рабочий   Назначение
ИДР Фамилия Специальность Начальник      
  Иванов Маляр      
  Петров Штукатур      
  Сидоров Маляр      
     
   
   
 

 

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

Функциональная зависимость накладывает дополнительные ограничения на реляционную структуру. Идея состоит в том, что значение одного атрибута в строке однозначно определяет значение другого атрибута.

ФЗ: ИдР -> Фамилия

ФЗ: ИдР -> специальность.

В общем случае ФЗ: означает, что если две строки в таблице T имеют одинаковое значение атрибута A, то они имеют и одинаковые значения атрибута B. Атрибут в левой части зависимости называется детерминантом. Первичный ключ таблицы является детерминантом. Таблица находится во второй нормальной форме, если никакие не ключевые атрибуты не являются функционально зависимыми лишь от части ключа. Вторая нормальная форма может быть только из составного ключа.

Пример:

ИдР ИдЗадания Дата назначения Фамилия
    5.10.12 Иванов
    5.09.12 Петров
    14.10.12 Петров
    11.01.12 Сидоров

* *

ФЗ: (ИдР, ИдЗд)-> дата назначения

ФЗ: (ИдР,ИдЗд) -> Фамилия

ФЗ: ИдР -> Фамилия

Поскольку фамилия храниться несколько раз, ее нужно обязательно обновить во всех строках.

Чтобы устранить эти аномалии, нужно разбить таблицу на две, каждая из которых …

Процесс разбиения состоит из следующих шагов:

1. Создается новая таблица, атрибутами которой являются атрибуты, входящие в функциональную зависимость, нарушающие функциональную зависимость второй нормальной формы.

2. Детерминант этой зависимости, становится ключом этой зависимости.

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

4. Эти шаги повторяются.

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

Таблица находится в третьей нормальной форме, если для любой функциональной зависимости ФЗ: X->Y, X является первичным ключом.

Если таблица находится в третьей нормальной форме, тогда она находится и во второй, но не наоборот.

Пример:

ИдР Специальность Почасовая ставка
  Маляр  
  Штукатур  
  Маляр  

*

ФЗ: ИдР -> Специальность

ФЗ: ИдР -> Почасовая ставка

ФЗ: Специальность -> Почасовая ставка

При наличии такой функциональной зависимости возможны аномалии обновления. Аномалия ввода – если нету маляров, то нельзя внести почасовую ставку. Аномалия удаления… Для устранения аномалии, нужно разбить таблицу, аналогично разбиению второй нормальной формы.

  Маляр   Маляр  
  Штукатур Штукатур  
  Маляр  

Иногда используется более слабый критерий третьей нормальной формы. Описанный вариант третьей нормальной формы называют формой Бойсе-Кодда. Более слабым является следующее:

Таблица находится в третьей нормальной форме, если в ней отсутствует транзитивная функциональная зависимость (зависимость не ключевого атрибута и не ключевого атрибута).

Этот критерий не …

Не ключевой атрибут зависит от не ключевого атрибута, не входящий…

Ключевой атрибут, входящий в составной ключ, зависит от не ключевого атрибута.

Пример:

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

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: