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

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

Зависимости между атрибутами

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

Обознач-ся:А В

2. Если существует функциональная зависимость вида А В и В А, то между А и В имеется взаимосвязанное соответствие или функциональная взаимозависимость

Обозн: А В

Частичная функциональная зависимость это зависимость неключевого атрибута от части составного ключа.

Полная функциональная зависимость

Когда неключевой атрибут полностью зависит от составного ключа.

Пр: Кафедра(ФИО, должен, оклад, стаж, д_стаж, кафедра, предмет, группа, вид занятий)

ФИО кафедра

ФИО должность

Атрибут С зависит от А транзитивно если для атрибутов А,В,С выполняется условие А В и В С , но нет обратной зависимости А С

Пример. ФИО должность оклад

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

Обозн. А В, А В, А В ФИО предмет

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

Два или более атрибутов называются взаимонезависимыми, если не один из этих атрибутов не зависит функционально от других атрибутов (Обозн. А¬ В).

Выявление зависимостей между атрибутами

Выявление зависимостей между атрибутами необходимо для выполнения проектирования БД методом нормальных форм.

Основной способ определения функциональной зависимости- это внимательный анализ семантики атрибутов.

Пример:

r(A1, A2, A3)

12 21 34

17 21 34

11 24 33

13 25 31

15 23 35

14 22 32

A1 A2

A2 A3

A1 A3

A1A2 A3

A1A2 A2A3

……………

Кроме того, А2 ¬ А1, А3 ¬ А1

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

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

Для отношения “кафедра”:

ФИО оклад

ФИО должность

ФИО стаж

ФИО кафедра

ФИО д_стаж

Стаж д_стаж

Должность оклад

Оклад должность

ФИО.Преподаватель.Группа Вид занятий

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

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

Отношение считается нормализованным (1НФ), если каждое значение любого атрибута в каждом картеже является неделимым (атомарным) элементом. Такими атомарными значениями являются простые типы данных.

1НФ

2НФ В основном используются три нормальных формы.

3НФ

НФБК

4НФ

5НФ

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

Преимущества нормализации:

  1. Лучшая организация БД, что облегчает работу пользователям и администраторам БД.

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

  3. Минимизируется дублируемая информация.

  4. Нормализация с разбиением БД на более мелкие таблицы дает большую гибкость при изменении структур данных.

  5. Большая безопасность БД.

После нормализации БД организация защиты информации, содержащейся в ней, значительно упрощается.

Недостатки:

Снижение производительности при выполнении запросов в БД.

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

  • Отношение находится в 1НФ, если все элементы соответствующих доменов являются атомарными для каждого атрибута в исходном отношении. Исходное отношение строится таким образом чтобы оно находилось в 1НФ.

  • Значение является не атомарным, если оно используется приложением по частям.

Перевод отношения в следующую нормальную форму осуществляется методом декомпозиции без потерь.

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

Основной операцией в методе является операция проекции.

Пример:

r (A,B,C,D,E) C D

r1(A,B,C,E) r2(C,D)πCD(r)

Частичная зависимость от ключа неключевых атрибутов приводит к следующему:

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

  2. Следствием избыточного дублирования является проблема редактирования данных. Часть избыточности устраняется при переходе в 2НФ.

Отношение находится в 2НФ, если :

  • Отношение находится в 1НФ.

  • Каждый неключевой атрибут функционально полностью зависит от первичного ключа.

Для устранения частичной зависимости и перевода отношения в 2НФ необходимо:

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

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

В результате получим два отношения r1,r2, находящихся во 2НФ:

r1

ФИО

Предмет

Группа

Вид занятий

Иванов И.М

СУБД

256

Практика

Иванов И.М

ОЭИ

123

Практика

Петров М.И

СУБД

256

Лекции

Петров М.И

МОК

256

Практика

Сидоров Н.Г

ОЭИ

123

Лекции

Сидоров Н.Г

МОК

256

Лекции

Егоров В.В

САПР

244

Лекции

r2

ФИО

Должность

Оклад

Стаж

Д_стаж

Кафедра

Иванов И.М

Преподаватель

500

5

100

25

Петров М.И

Ст.преп-ль

800

7

100

25

Сидоров Н.Г

Преподаватель

500

10

150

25

Егоров В.В

Преподаватель

500

5

100

24

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

3НФ

Опр.1: Отношение находится в 3НФ, если:

  1. Удовлетворяются все требования 2НФ.

  2. Если каждый неключевой атрибут не транзитивно зависит от первичного ключа.

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

ФИО оклад должность

ФИО стаж Д_стаж

ФИО должность оклад

Транзитивные зависимости также порождают избыточное порождение данных.

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

В результате получим:

r3

ФИО

Должность

Стаж

Кафедра

Иванов И.М

Преподаватель

5

25

Петров М.И

Ст.преп-ль

7

25

Сидоров Н.Г

Преподаватель

10

25

Егоров В.В

Преподаватель

5

24

r4

Должность

Оклад

Преподаватель

500

Ст.преп-ль

800

r5

Стаж

Д_стаж

5

100

7

100

10

150

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

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

Опр. Отношение находится в НФБК, если оно находится в 3НФ, и в нем отсутствуют зависимости ключей (атрибутов составного ключа) от неключевых атрибутов.

Соседние файлы в предмете Базы данных