Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы данных проектирование и реализация. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
Вполне возможно, что некоторые сотрудники являются руководите­лями нескольких тем, одновременно или в разное время.
Для выполнения работ организация заключает с поставщиками до­говоры на поставку необходимых изделий. Каждый договор предусмат­ривает поставку одним поставщиком различных изделий для выполне­ния нескольких тем, при этом возможно, что одни и те же
изделия могут
поставляться и другими поставщиками.
Появление аномалий покажем на примере отношения (таблицы) ПОСТАВКИ:
ПОСТАВКИ (Номер договора, Название поставщика, Адрес постав-
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, YX (Y является подмноже-
X ключ, который функционально определяет любое множество
атрибутов, поэтому существует функциональная связь X
Если существует ФЗ вида Y висимость неключевых ат
Z, то она называется неполной (за-
тов от подмножества ключа).
Z.
X ключ, который функционально определяет любое множество атрибутов, поэтому существуют функциональные зависимости X
и XY. Если существует ФЗ вида YZ, то она называется транзи-
тивной
зависимость между неключевыми атрибутами).
Пример
В уже известном отношении ПОСТАВКИ имеются:
неполная ФЗ Тема
транзитивная ФЗ Название поставщика
Руководитель;
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
обла-
(R1R2) (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), поэтому соединение без потерь невозможно, но так как F1F2 = = (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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]