Модели и проектирование баз данных


Декомпозиция универсального отношения


. Очевидный выход, избавляющий от избыточного дублирования данных, состоит в расщеплении (декомпозиции) отношения USPJ на четыре взаимосвязанных отношения – S, P, J, SPJ. Каждое из этих отношений является проекцией USPJ

на соответствующие группы атрибутов[27]:

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

Ош

 

J

 

SPJ

J#

...

 

S#

P#

J#

Qt

Dt

J1

...

,

S1

P3

J1

1000

...

J2

...

 

S1

P1

J1

1000

...

 

 

 

S1

P8

J1

500

...

 

 

 

S2

P3

J2

1000

...    ,

 

 

 

S3

P2

J2

2000

...

 

 

 

S3

P1

J2

1000

...

 

 

 

S8

P8

J2

500

Нетрудно убедиться в том, что в этих отношениях сохранены все отмеченные ФЗ. Естественное соединение этих проекций

USPJ = (((((SPJ JOIN S) RENAME Ci AS Sci)

JOIN P) RENAME Ci AS Pci)

JOIN J) RENAME Ci AS Jci;

восстановит универсальное отношение без всяких потерь информации. Кроме того, в этой структуре объявлены все ФЗ, за исключением S.Ci ® St.

Здесь нет аномалий удаления. Из отношения SPJ

можно удалять кортежи без проблем. При удалении кортежей других отношений достаточно соблюдать правила ссылочной целостности, которые объявлены определениями отношений (см. п. 2.4.2). Нет также аномалий вставки типа б).


- Начало -  - Назад -  - Вперед -



Книжный магазин