Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Базы данных проектирование и реализация. Учебное пособие
.pdf
Вполне возможно, что некоторые сотрудники являются руководителями нескольких тем, одновременно или в разное время.
Для выполнения работ организация заключает с поставщиками договоры на поставку необходимых изделий. Каждый договор предусматривает поставку одним поставщиком различных изделий для выполнения нескольких тем, при этом возможно, что одни и те же
изделия могут
поставляться и другими поставщиками.
Появление аномалий покажем на примере отношения (таблицы)
ПОСТАВКИ:
ПОСТАВКИ (Номер договора, Название поставщика, Адрес постав-
2
щика
, Название изделия, Цена изделия, Количество, Тема, Руководи-
тель темы).
Первичным ключом таблицы ПОСТАВКИ будет комбинация Номер
договора,Тема, Изделие.
Аномалия обновления (модификации) в этой таблице возникает при
необходимости сменить руководителя темы или адрес поставщика.
Причина аномалии – избыточность данных, порожденная еще и тем,
что в одном отношении хранится разнородная информация.
Аномалия удаления возникает в ситуации, когда некоторый поставщик отказался от исполнения договора и его данные должны быть удалены их
таблицы ПОСТАВКИ. Одновремено из таблицы исчезают дан-
ные о теме, ее руководителе и потребности в изделиях.
Причина аномалии – хранение в одном отношении разнородной информации (о поставщиках, изделиях, темах и руководителях тем).
Аномалия включения возникает при попытке ввести данные о потенциальном поставщике. Поскольку с ним еще не заключен договор
о поставке необходимых изделий, это сделать нельзя – номер договора
является частью первичного ключа и этот атрибут не может иметь неопределенные (NULL) значения. Аналогичная ситуация возникает при
попытке ввести данные о теме, ее руководителе и потребности в изделиях, если поставщик еще не определен.
Причина аномалии – хранение в одном отношении разнородной ин
-
формации (о поставщиках, изделиях, темах и руководителях тем).
2
Адрес в данном случае рассматривается как цельный атрибут только для
упрощения. Надо всегда помнить, что каждый атрибут должен быть атомарным,
что не относится к адресу местоположения.
41

Возможно, в таблицах будут существовать зависимости между зна-
F
F
чениями атрибутов одной таблицы. Эти зависимости называются функциональными (ФЗ), именно они и приводят к снижению упомянутой эффективности.
Формально функциональная зависимость определяется следующим
образом. Пусть R – отношение, X и Y – множества атрибутов, принадлежащих R. Множество атрибутов Y называется функционально зависимым от X, если в любой момент во всех кортежах, в которых атрибуты
из X принимают один и тот же набор значений, атрибуты из Y принимают также один и тот же набор значений. Функциональная зависимость Y от X обозначается
вая часть функциональной зависимости называется
X Y (X функционально определяет X). Ле-
детерминантом.
В символах реляционных операций, наличие функциональной зависимости X Y определяется тем, что результат операции R(Y/X = x)
(проекция на Y селекции по X, где x – значение X) содержит не более
одного кортежа.
Если для отношения R, на котором определено множество функци-
ональных зависимостей F, определяется и функциональная зависимость
вида X Y, то говорят, что эта функциональная зависимость выводима
или логически следует из F. Множество всех ФЗ, логически следующих
(выводимых) из исходного множества F, называется замыканием и обо-
значается как
.
+
F
F
Если
F
, то говорят, что F полное множество.
Используя понятие функциональной зависимости, можно дать формальное определение ключа.
Ключ – минимальное множество атрибутов, которое функцио-
нально определяет все атрибуты отношения по отдельности. Минимальность означает, что ни одно из подмножеств ключа не обладает свойством ключа.
Различают следующие виды зависимостей:
тривиальная зависимость – зависимость атрибутов, входящих
в детерминант, от него;
42

неполная зависимость, зависимость неключевых атрибутов от
X
)
рибу
Z
(
подмножества ключевых;
транзитивная зависимость между неключевыми атрибутами.
Графическое представление функциональных зависимостей
– тривиальная
ством
.
зависимость X Y, YX (Y является подмноже-
– X – ключ, который функционально определяет любое множество
атрибутов, поэтому существует функциональная связь X
Если существует ФЗ вида Y
висимость неключевых ат
Z, то она называется неполной (за-
тов от подмножества ключа).
Z.
– X – ключ, который функционально определяет любое множество
атрибутов, поэтому существуют функциональные зависимости X
и X Y. Если существует ФЗ вида Y Z, то она называется транзи-
тивной
зависимость между неключевыми атрибутами).
Пример
В уже известном отношении ПОСТАВКИ имеются:
неполная ФЗ Тема
транзитивная ФЗ Название поставщика
Руководитель;
43
Адрес поставщика.

Возможно, в таблицах могут обнаружиться семантически не связанные атрибуты, зависящие от других, общих, атрибутов. Такие зависимости называются многозначными (МФЗ).
Определение многозначной зависимости. Пусть X, Y, Z – про-
извольные подмножества атрибутов схемы отношения R. Тогда
многозначно зависит от X (X
Y) тогда и только тогда, когда мно-
?
Y
жество значений Y, соответствующее значениям X и Z отношения R,
зависит только от X, но не зависит от Z. Многозначные зависимости всегда образуют связанные пары (симметричны), т. е. если для отношения
R(X, Y, Z) выполняется X
символично представляется в виде X
Y, то выполняется также и X
?
Y/Z.
?
?
Z, что
Графическое представление многозначной функциональной зависимости.
В символах реляционных операций наличие многозначной функциональной зависимости X
Z определяется тем, что результат
?
операции R(Z/X = x, Y = y) (проекция на Z селекции по X и Y, где x, y –
значения соответствующих атрибутов) не зависит от y, а зависит
только от x. Симметрично это выполняется и для X
?
Y.
Пример
Определим отношение со схемой R (Тема, Изделие, Сотрудник),
в котором хранятся сведения о научных разработках (Тема), изделиях,
которые приобретаются для выполнения тем, и сотрудниках, участвующих в разработках. В этом отношении имеется многозначная зависимость Тема
Изделие/Сотрудник, поскольку список сотрудников,
?
работающих над конкретной темой, не зависит от изделий, необходимых для темы, и соответственно список изделий не зависит от числа сотрудников, занятых в теме. Если добавить еще одного сотрудника к конкретной теме, то необходимо будет его данные повторить для каждого
изделия, приобретаемого для
этой темы.
44

4.4. КРИТЕРИЙ ЭФФЕКТИВНОСТИ
R
ДЕКОМПОЗИЦИИ
Устранение избыточности, а следовательно, и аномалий производится путем выделения ФЗ и МФЗ в отдельные отношения (таблицы).
Этот процесс называется декомпозицией или нормализацией.
Пример
Определим отношение со схемой R (Темы, Руководитель, Сотрудник), в котором хранятся сведения о научных разработках (Тема), руководителях этих тем и сотрудниках, участвующих в разработках. Допустим, что несколькими темами может руководить один человек,
а каждый сотрудник работает только над одной темой, т. е. ключом отношения будет Сотрудник. В
ФЗ Тема
Руководитель.
этом отношении имеется транзитивная
Для этого отношения возможны две декомпозиции:
1 R1(Тема, Руководитель) и R2(Сотрудник, Руководитель).
2 R1(Тема, Руководитель) и R2(Сотрудник, Тема).
Если выполнить естественное соединение этих отношений по общему атрибуту (попытаться восстановить исходное отношение), то для
первой декомпозиции мы получим кортежи, не имеющие смысла (связь
сотрудника с темой через руководителя), и только при второй декомпозиции получится правильный результат.
Поскольку не всякая декомпозиция приводит к положительному результату, вводится критерий эффективности
декомпозиции.
Декомпозиция признается эффективной, если она:
1) устраняет некоторые аномалии;
2) обеспечивает соединение без потерь, т. е. исходное отношение,
подвергнутое декомпозиции (разделению), может быть восстановлено
путем естественного соединения отношений, полученных в результате
декомпозиции:
*
, для всех i. Здесь
R
i
*
– символ естественного
соединения отношений. Не должны исчезать или появляться кортежи,
не имеющие смысла;
3) обеспечивает сохранение функциональных зависимостей, т. е.
должно выполняться условие:
FF
45
,()
i

где F – множество ФЗ, определенных на исходном отношении; – сим-
F
R
R
R
вол объединения множеств;
мостей на i-м отношении, полученном в результате декомпозиции.
Это условие означает, что в результате декомпозиции не должны ни
теряться, ни приобретаться ФЗ, которых не было в исходном отношении.
Возможность декомпозиции, обеспечивающей соединение без потерь, подтверждается теоремой Хита (Heath) [32]:
Пусть (),,
атрибутов (возможно, составных) этого отношения. Если R – удовлетво-
ряет функциональной зависимости X
единением ее проекций 1,()
Формально справедливо следующее: декомпозиция
дает свойством соединения без потерь по отношению к множеству
функциональных зависимостей F тогда и только тогда (необходимо
и достаточно), когда выполняются следующие условия:
XYZ является отношением, где ,,XYZ – множества
– множество функциональных зависи-
i
Y, то R восстанавливается со-
XY и 2,()
XZ.
1, 2RR
обла-
(R1∩R2) → (R1
где ∩ – символ пересечения множеств, символ
жеств, т. е. общие атрибуты должны определять остальные атрибуты
в каком-либо отношении декомпозиции.
Теорема Фейгина (Fagin) [32], являющаяся более строгой версией
теоремы Хита для многозначных зависимостй, утверждает следующее.
Пусть R(X, Y, Z) является отношением, где X, Y, Z – множества атри-
бутов (возможно, составных) этого отношения. В этом случае отношение R будет равно соединению его проекций R1(X, Y) и R2(X, Z) тогда
и только тогда
полняется многозначная зависимость X
Пример декомпозиции, не сохраняющей функциональных зависимостей.
Определим отношение R(Город, Улица, Индекс). В этом отношении
определены следующие зависимости:
Город, Улица
Индекс
Выполним декомпозицию R1(Улица, Индекс) и R2(Город, Индекс).
Эта декомпозиция обладает свойством соединения без потерь по теореме
(необходимо и достаточно), когда для отношения R вы-
Город.
– R2) или (R1 ∩ R2) → (R2 – R1),
– означает разность мно-
Y/Z.
?
Индекс.
46

Хита, так как пересечение (Улица, Индекс)
∩(Город, Индекс)
(Улица,
Индекс) – (Город, Индекс). Отсюда, функциональная зависимость Индекс
Город сохраняется, однако в отношении R1(Улица, Индекс)
только тривиальные зависимости, а в отношении R2(Город, Индекс),
кроме тривиальных, имеется зависимость Индекс
зависимость Город, Улица
Индекс нельзя вывести из данных ФЗ. Та-
Город. Исходную
ким образом, приведенная декомпозиция является декомпозицией без
потерь, но не сохраняет зависимости.
Пример декомпозиции, не обеспечивающей соединения без потерь.
Определим отношение R(A, B, C, D), для которого задано множество
функциональных зависимостей F = (A
B, C
D), где A, B, C, D – не-
которые множества атрибутов.
Выполним декомпозицию, вынеся функциональные зависимости
в отдельные отношения R1(A, B) и R2(C, D), F1= A
B, F2 = C
D.
Применяя теорему Хита, проверим, сохраняет ли зависимости данная декомпозиция, а также обладает ли данная декомпозиция свойством
соединения без потерь.
Пересечение (A, B)∩(С, D) функционально не определяет (A, B) –
– (C, D), поэтому соединение без потерь невозможно, но так как F1 F2 =
= (A
B) (C
D) = F, то все функциональные зависимости сохра-
нены.
Наличие или отсутствие функциональной зависимости между атрибутами в отношении R не всегда определяется тривиальным образом.
Разработчики не должны делать собственных предположений о наличии
или отсутствии ФЗ, за исключением простейших ситуаций, а исходить
из того, что ФЗ декларируются пользователями.
Полный набор функциональных
зависимостей для определенного
отношения может оказаться слишком большим. Поэтому необходимо
найти такой подход, который позволил бы уменьшить размеры этого
набора функциональных зависимостей до приемлемого уровня. Необходимо стремиться к тому, чтобы для отношения было определено множество функциональных зависимостей F2, которое меньше, чем полное
множество функциональных зависимостей F1 для этого отношения
, но
обладает тем свойством, что каждая функциональная зависимость в F2
следует из функциональных зависимостей в F1, т. е. замыкания этих
двух множеств эквивалентны,
12FF
.
47

Множество ФЗ F2 называется
F
F
F
покрытием множества ФЗ F1, если
любая ФЗ выводимая из F1, выводится также из F2.
Множество ФЗ F называется минимальным в том и только в том слу-
чае, когда удовлетворяет следующим свойствам:
1) правая часть любой ФЗ из F является множеством из одного атри-
бута (простым атрибутом);
2) детерминант каждой ФЗ из F обладает свойством
т. е. удаление любого атрибута из детерминанта приводит к изме-
сти,
нению замыкания
, нарушающему эквивалентность замыканий;
3) удаление любой ФЗ из F приводит к изменению
минимально-
, т. е. порож-
дению множества ФЗ, не эквивалентного F.
Процесс выявления полезных функциональных зависимостей в отношении, как правило, начинается с определения функциональных зависимостей, которые представляются очевидными с точки зрения их семантики (смысла). Но в отношении может также существовать целый
ряд других полезных функциональных зависимостей (неочевидных).
Задача определения
всех возможных функциональных зависимостей для реальных проектов с базами данных чаще всего является нецелесообразной. Тем не менее имеется подход, позволяющий определить
полный набор функциональных зависимостей для отношения, а также
существует способ получения минимального набора (минимального покрытия) функциональных зависимостей, способного представить этот
полный набор.
Сформулируем ряд правил, позволяющих вычислить
нове F. Набор правил вывода, называемый
аксиомами Армстронга
на ос-
[35], показывает способы вывода новых функциональных зависимостей
из заданных.
Правила вывода, или аксиомы Армстронга ФЗ
1. Правило рефлексивности
YX X Y
(если Y является подмножеством X, то X функцио-
нально определяет Y).
X
Y
48

Присоединение
Z
F
F
2.
,
WX Y XW YZ (если Z – подмножество W и суще-
ствует функциональная зависимость X Y, то из этого следует зависимость XW YZ).
W
Х
Z
Y
3. Транзитивность
X Y, Y Z
X Z.
ZХ
Y
Каждое из этих трех правил можно обосновать, исходя непосредственно из определения понятия функциональной зависимости. Этот
набор правил является полным (представляет
сиом
). Это означает, что если задано множество F функциональных зависимостей, то все функциональные зависимости, производные от F,
можно вывести из F с помощью только этих правил.
Такие правила непротиворечивы,
поскольку они не позволяют выве-
сти какие-либо дополнительные функциональные зависимости, которые не следовали бы из F. Иными словами, эти правила могут приме-
няться для получения замыкания
.
На основе трех правил, приведенных выше, можно вывести не-
сколько дополнительных правил, позволяющих упростить практиче-
скую задачу вычисления
.
49
полную систему ак-

4. Псевдотранзитивность
X Y, YW Z
5. Объединение
X Y, Х Z
XW Z.
X YZ.
Y
6. Правило декомпозиции
Х
Z
YZ X Y, X Z.
X
Х
Y Z
Правило 1 (рефлексивность) указывает, что множество атрибутов
всегда определяет любое из своих подмножеств или само себя.
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
