Название: Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML (Токмаков Г. П.) Жанр: Информационные системы и технологии Просмотров: 1448 |
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. Необходимо свести поля, одинаковые по смыслу в одно поле.
|
|