Название: Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML (Токмаков Г. П.)

Жанр: Информационные системы и технологии

Просмотров: 1406


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

 

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

 

Термин функциональная зависимость означает следующее: атрибут B от- ношения R функционально зависит от атрибута A того же отношения, если в каждый момент времени каждому значению атрибута A соответствует не более чем одно значение атрибута B, связанного с A в отношении R.

Утверждение, что B функционально зависит от A, означает то же самое, что A однозначно определяет B, т. е. если в какой-то момент времени известно зна- чение A, то можно получить и значение B.

Атрибут может функционально зависеть не от какого-то одного атрибута, а от целой группы атрибутов. Атрибут (или набор атрибутов) B из отношения R

называется полностью зависимым от другого набора атрибутов A отношения R,

если B функционально зависит от всего множества A, но не зависит ни от како-

го подмножества A. Например, если циональная зависимость неполная.

A  A1 , A2 ,..., Ak   и

A1 , A2

 B , то функ-

 

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

Повторяющимися являются поля, содержащие одинаковые по смыслу зна- чения. Например, если требуется получить статистику продаж четырех товаров по месяцам, можно создать поля для хранения данных о продаже по каждому товару. Но что делать, если количество товаров не четыре, а 104, или если ко- личество товаров заранее не известно? Повторяющиеся группы следует устра-

нить, сохранив в таблице единственное поле «Товар». В результате получим за-

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

Рассмотрим пример приведения к 1НФ. Пусть необходимо автоматизировать процесс отпуска товаров со склада по накладной, приведенной 0.

Сначала сведем все имеющиеся в накладной данные в одну таблицу. При-

водя ее к 1НФ, учтем, что впоследствии будет необходимо учитывать продажи по разным городам, поэтому из поля «Адрес» выделим часть данных (город) в отдельное поле «Город». Кроме того, известно, что каждый покупатель может

закупить в один день различное количество товаров.

 

 

Рис. 2.12. Накладная на отпуск товаров

 

Однако, чтобы не создавать повторяющихся групп, фиксируем факт отпус- ка каждого товара в отдельной записи. В результате получим таблицу «ОТПУСК ТОВАРОВ» (см. 0).

Итак, чтобы привести таблицу к 1НФ, нужно выполнить следующие шаги:

части сложных значений в отдельные поля.

2. Необходимо свести поля, одинаковые по смыслу в одно поле.