Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bazy_dannykh.docx
Скачиваний:
4
Добавлен:
21.11.2019
Размер:
164.72 Кб
Скачать

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

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

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

ИдР

Фамилия

Специальность

Начальник

Здание

123

Иванов

Маляр

678

12

123

Иванов

Маляр

678

34

123

Иванов

Маляр

678

56

345

Петров

Штукатур

12

345

Петров

Штукатур

56

678

Сидоров

Маляр

34

678

Сидоров

Маляр

12

* *

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

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

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

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

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

Рабочий

Назначение

ИДР

Фамилия

Специальность

Начальник

123

12

123

Иванов

Маляр

678

123

34

345

Петров

Штукатур

123

56

678

Сидоров

Маляр

345

12

345

56

678

34

678

12

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

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

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

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

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

Пример:

ИдР

ИдЗадания

Дата назначения

Фамилия

123

12

5.10.12

Иванов

123

34

5.09.12

Петров

345

34

14.10.12

Петров

678

56

11.01.12

Сидоров

* *

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример:

ИдР

Специальность

Почасовая ставка

123

Маляр

7

345

Штукатур

5

678

Маляр

7

*

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

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

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

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

123

Маляр

Маляр

7

345

Штукатур

Штукатур

5

678

Маляр

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

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

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

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

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

Пример:

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]