S# Sn; P# Pn; J# Jn; A SСi; A Co; A Qt.
S# St; P# We; J# JCi; A St; A PCi; A Sn,
S# SСi; P# Co; A Pn; A Jn; A St;
SCi St; P# PCi; A We; A JCi;
Здесь обозначено A = {S#, P#, J#, Dt} и исключены
тривиальные зависимости типа A S#.
Единственным потенциальным ключом этого отношения
является подмножество А. От потенциального ключа неприводимо
зависит единственный атрибут – Qt. Все прочие атрибуты зависят еще
и от различных подмножеств потенциального ключа. Кроме того, есть
ФЗ между неключевыми атрибутами (SCi St). Зависимости от
подмножеств потенциального ключа обусловливают отмеченные в
реализации группы повторения вида (P1, гайка, К, 10, Ош). Группы
повторения вида (50, Яя) обусловлены наличием ФЗ SCi St.
Декомпозиция универсального отношения. Очевидный выход,
избавляющий от избыточного дублирования данных, состоит в
расщеплении (декомпозиции) отношения USPJ на четыре
взаимосвязанных отношения – S, P, J, SPJ. Каждое из этих
отношений является проекцией USPJ на соответствующие группы
атрибутов
1
:
S = (USPJ[S#, Sn, St, Sci]) RENAME SCi AS Ci;
P = (USPJ[P#, Pn, Co, We, PCi]) RENAME Pci AS Ci;
J = (USPJ[J#, Jn, Jci]) RENAME Jci AS Ci;
SPJ = USPJ[S#, P#, J#, Dt, Qt];
Ниже приведены значения этих отношений для
рассматриваемого примера.
S P
S# Sn St Ci P# Pn Co We Ci
S1 Иван 50 Яя P3 шайба Ж 20 Ош
S2 Петр 100 Ош , P1 гайка К 10 Яя ,
S3 Джон 50 Яя P8 болт Ч 30 Яя
S8 Боб 50 Томск P2 винт С 40 Ош
1
Легко заметить, что эти отношения соответствуют интуитивно выделяемым
объектам ПО.