Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по бд.docx
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
526.2 Кб
Скачать
      1. Третья нормальная форма (3нф)

Третья нормальная форма основана на понятии транзитивной зависимости.

Т ранзитивная зависимость. Если для атрибутов А, В и С некоторого отношения существуют зависимости вида А В и В С, то говорят, что атрибут С транзитивно зависит от атрибута А через атрибут В ( при условии., что атрибут А функционально не зависит ни от атрибута В, ни от атрибута С).

Рассмотрим отношение “Служащий – Отделение”. В нем существуют следующие функциональные зависимости:

StaffNo(номер следующего) → BranchNo (номер отделения)

и

BranchNo → BAddress (адрес отделения)

SNo → City

City → Status

SNo → Status через City

В этом случае транзитивная зависимость StaffNo → Address осуществляется через атрибут BranchNo. Данное утверждение справедливо, поскольку атрибут StaffNo не зависит функционально от атрибутов BranchNo и BAddress.

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

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

CITY → STATUS,

то есть статус поставщика определяется его местонахождением, например, все поставщики из Лондона должны иметь статус 20.

Тогда отношение SECOND не находится в третьей нормальной форме, так как в нем существует транзитивная зависимость

SNo → STATUS через атрибут CITY.

(SNo → CITY и CITY → STATUS)

Отношение, которое находиться в 2НФ, но не находится в 3НФ, всегда может быть преобразовано в эквивалентный набор (двух) отношений, находящихся в 3НФ. Для этого транзитивно зависимые атрибуты удаляются из такого отношения и помещаются в новое отношение вместе с копией их детерминанта (табл.15,16).

Таблица 15 Отношение SC Таблица 16 Отношение CS

SNo

CITY

S1

S2

S3

S4

London

Paris

Paris

London

CITY

STATUS

London

Paris

20

10

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

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

      1. Нормальная форма Бойса-Кодда (нфбк)

При определении 2 и 3 нормальных форм использовалось нахождение и включение частичных и транзитивных зависимостей от первичного ключа. Однако, при этом не рассматриваются указанные зависимости от потенциальных ключей отношения.

НФБК учитывает функциональные зависимости от всех потенциальных ключей, а не только от первичных ключей.

Отношение находится в НФБК тогда и только тогда, когда каждый его детерминант является потенциальным ключом.

Для отношения с единственным потенциальным ключом его 3НФ и НФБК являются эквивалентными.

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

Рассмотрим отношения FIRST и SECOND, которые не находятся в 3НФ. (В них существует функциональная зависимость CITY → STATUS, что вызывает транзитивную зависимость SNo → STATUS через атрибут CITY).

Эти отношения не находятся так же и в НФБК. Отношение FIRST содержит три детерминанта: SNo, CITY и (SNo, PNo)

SNo → CITY (SNo не является потенциальным ключом)

CITY → STATUS (CITY не является потенциальным ключом)

SNo, PNo → QTY (SNo, PNo является потенциальным (первичным) ключом).

С другой стороны, три результирующих отношения Sp, SC и CS находятся и в 3НФ и в НФБК, поскольку в каждом из них имеется единственный потенциальный ключ, являющийся единственным детерминантом для данного отношения.

Рассмотрим другой пример. Пусть имеется отношение S (табл. 17) с атрибутами (SNo, SNAME, CITY , STATUS), в котором атрибуты SNo и SNAME являются его потенциальными ключами, т.е. каждый поставщик имеет уникальный номер и уникальное имя.

Таблица 17 Отношение S

Поставщик Название Рейтинг Город

SNo

SName

STATUS

CITY

S1

S2

S3

S4

Bosh

Transcend

Kingmax

NOD32

20

10

10

20

London

Paris

Paris

London

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

Потенциальными ключами в таком отношении являются SNo и SNAME и существуют функциональные зависимости.

SNo → SNAME

SNAME → SNo

SNo → STATUS

SNo → CITY

SNAME → STATUS

SNAME → CITY

Отношения находятся в НФБК, так как оба детерминанта (SNo и SNAME) являются потенциальными ключами этого отношения.

Отношение SSP (табл. 18) с атрибутами (SNo, SNAME, PNo, QTY) не находится в НФБК, так как оно содержит два детерминанта SNo и SNAME, которые не являются его потенциальными ключами (SNo → SNAME; SNAME → SNo). Детерминант (SNo, PNo) является потенциальным ключом.

Таблица 18. Отношение SSP

Поставщик Название Детали Количество

SNo

SName

PNo

QTY

S1

S1

S1

S2

S3

S4

S4

Bosh

Bosh

Bosh

Transcend

Kingmax

NOD32

NOD32

P1

P2

P3

P1

P2

P2

P4

300

200

400

300

200

200

300

Тем не менее отношение SSP находится в 3НФ (нет транзитивных зависимостей).

Чтобы достичь НФБК необходимо отношение SSP разбить на два отношения:

SS (SNo, SNAME)

SP (SNo, PNo, QTY)