Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект по БД.doc
Скачиваний:
2
Добавлен:
25.09.2019
Размер:
517.12 Кб
Скачать

2. Избыточность данных и аномалии обновления

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

Сотрудник (Nсотр, ФИО, Адрес, Должность, З/П, Nотд)

Отдел (Nотд, Адрес, Nтел)

Сотрудники отдела (Nсотр, ФИО, Адрес, Должность, З/П, Nотд, Адрес_отд, Nтел_отд)

В отношении «Сотрудники отдела» есть избыточность данных.

Поскольку сведения об отделе будет повторяться для каждого сотрудника отдела. В связи с этим в «Сотрудники отдела» существует следующее отношения обновления.

- При добавлении нового сотрудника отдела, необходимо указывать все сведения об этом отделе.

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

При возникновении подобных аномалий рекомендуется отношение разбивать на две части. Для отношений «Сотрудники» и «Отдел» подобных аномалий уже не будет.

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

Функциональная зависимость описывает связь между отношениями: R(A,B) A->B.

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

Сотрудники_отделения:

Nсотр -> ФИО, Адрес, Должность, З/П, Nотд, Адрес_отд, Nтел_отд.

Nотд -> Адрес_отд, Nтел_отд.

Адрес_отд -> Nотд, Nтел_отд.

Nтел_отд -> Nотд, Адрес_отд.

Первичный ключ - Nотд, поскольку все остальные атрибуты функционально зависят от Nотд.

4. I нормальная форма

Нормализация отношений выполняется на основе анализа первичных ключей и существования функциональных зависимостей между атрибутами. Как правило, нормализация выполняется в несколько этапов. Каждый этап соответствует определенной «Нормальной форме» (НФ). При проектировании реляционных БД требования 1-ой НФ должны выполняться всегда, остальные по желанию проектировщика. Однако, чтобы исключить аномалии обновления и избыточности данных рекомендуется приводить отношение к 3-ей НФ.

Ненормализованное отношение приводится к 1-ой НФ следующими способами:

- Выравнивание таблиц или добавление строк;

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

5. II нормальная форма

2-ая НФ – основывается на полной функциональной зависимости. Полная функциональная зависимость означает, что если атрибут B функционально зависит от некоторого значения атрибута A, то зависит от полного значения этого атрибута, а не какого-то его подмножества. Если имеет место полная функциональная зависимость между атрибутами A и B, то удаление какого-либо значения атрибута A приводит к полной потери этой зависимости. При частичной зависимости это сохраняется . 2-ая НФ применяется к отношениям с составными ключами. Считается, что отношение находится во 2-ой НФ, если оно удовлетворяет 1-ой НФ и каждый атрибут, который не входит в состав первичного ключа, функционально полно завит от первого ключа.

На этом этапе, если имеется частичная зависимость, они удаляются из отношения и помещаются в новое отношение вместе с копией их детерминанта.

Отношение «Клиент - аренда»

Первичный ключ : (N_клиента, N_объекта)

f1: N_клиента, N_объекта -> Нач_аренды, Кон_аренды

f2: N_клиента -> ФИО_клиента

f3: N_ объекта -> Адрес, Стоимость, N_владельца, ФИО_владельца

f4: N_клиента, Нач_аренды -> N_объекта, Адрес, Кон_аренды, Стоимость, N_владельца, ФИО_владельца

1 – для первичного ключа

2

Зависимость

– частичная

3 – частичная

4 – функциональная зависимость для потенциального ключа

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

f2: Клиент (N_клиента , ФИО_клиента)

f1: Аренда (N_клиента, N_объекта, Нач_аренды, Кон_аренды)

f3 : Владелец объектов (N_объекта, Адрес, Стоимость, N_владельца, ФИО_владельца)

6. 3-я нормальная форма

Если имеет место

A ->B

B->C

то говорят, что атрибут C транзитивно зависит от A через атрибут B, при условии, что атрибут A функционально не зависит ни от атрибута B, ни от атрибута C.

N_сотрудника -> N_отдела

N_отдела -> N_адреса_отдела

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

Объекты (N_объекта, Адрес, Стоимость, N_владельца)

Владельцы (N_владельца, ФИО_владельца)

Т.о. общую схему декомпозиции отношения «Клиент_Аренда» мы можем представить следующим образом:

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