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

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

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

customer number -> first name, last name, street, city, state, zip, phone

определитель или детерминант (determinant),— атрибут, который определяет значения других атрибутов

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

BRANCHNAME—> ADDRESS

BRANCHNAME—> MANAGER_NO

или в более кратком виде:

BRANCHNAME—>ADDRESS, MANAGER_NO

ACCNO—>BALANCE, TYPE

ACCNO—> BRANCHNAME, ADDRESS, MANAGER_NO

В отношений CUSTOMER можно выделить следующие FD.

REFNO—>NАМE, ADDRESS, STATUS

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

Потенциальный ключ — это суперключ, который не имеет избыточности

Например, отношение BRANCH имеет следующий суперключ,

BRANCHNAME, ADDRESS, ACCNO, BALANCE, TYPE

ACCNO—> BRANCHNAME, ADDRESS, BALANCE, TYPE

Больше сокращать нечего; это означает, что ACCNO — потенциальный ключ отношения branch

Итак, потенциальный ключ — это суперключ, который невозможно сократить (т.е. минимальный). Все атрибуты потенциального ключа называются ключевыми атрибутами. Атрибуты, не являющиеся частью потенциального ключа, называются неключевыми. Если в отношении имеется несколько потенциальных ключей, необходимо выделить один из них в качестве первичного ключа.

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

Атрибут А находится в полной функциональной зависимости от множества атрибутов {X, Y}, если он функционально зависим от этого множества атрибутов ({X,Y}—>А) и не существует функциональной зависимости А ни от какого подмножества данного множества. Если же существует функциональная зависимость X—>А, то А находится в частичной функциональной зависимости от {X, Y}.

REFNO, ACCNO—> NAME, ADDRESS, STATUS

REFNO—> NAME, ADDRESS, STATUS

Таблица 3. Нормализованная база данных в 2NF

CUSTOMER CUSTOMER_ACCOUNT

REFNO

NAME

ADDRESS

STATUS

REFNO

ACCNO

12345

В. Рогов

Катукова, 2

Business

2345

120768

17654

Н. Петров

Конева, 4

Domestic

2345

348973

18764

С. Козлов

Дубова, 6

Business

7654

987654

8764

745363

8764

678453

8764

348973

Недостатки отношений 2NF

Отношение BRANCH имеет первичный ключ, состоящий из одного атрибута (ACCNO). Следовательно, все неключевые атрибуты находятся в полной функциональной зависимости от него. Недостатком данного отношения является повторение информации о филиале для всех счетов, обрабатываемых конкретным филиалом. Это происходит вследствие существования функциональных зависимостей некоторых атрибутов от атрибута BRANCHNAME:

BRANCHNAME—> ADDRESS, MANAGER_NO

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