Деление (DIVISION)

Математическая запись: REZ = R ¸ S. Деление выполнимо, если делитель S Æ, атрибуты делителя образуют некоторое подмножество атрибутов делимого R и kR > kS. Арности частного, делимого и делителя связаны условием kREZ = kR - kS. Деление - одна из самых трудных для восприятия операций, поэтому рассмотрим ее подробнее.

Пусть u1 и u2 - кортежи делителя S. Тогда, если в делимом R найдутся кортежи t u1 и t u2, то t - кортеж частного REZ. Будем называть t “осколком” кортежей из R.

Таким образом, частное REZ состоит из “осколков” t длины kR - kS таких, что для всех кортежей u из S в данном R существует кортеж tu Î R. Другими словами, если для всех кортежей делителя существуют одинаковые “осколки” кортежей делимого, то эти “осколки” должны присутствовать в частном.

Например:

Как можно выразить операцию деления через основные операции реляционной алгебры, можно найти в [6].

Используя операцию деления, можно существенно упростить процедуру получения ответа на запрос. Проиллюстрируем этот факт примером.

Пример 5. Пусть задано отношение R в виде:

a) с помощью операции деления, если определить делитель в виде S= DN

d1

d2

Тогда частное будет таким:

REZ = p PN, DN (R) ¸ S = PN, где p PN, DN (R) = PN, DN

p1 p1 d1

p2 p1 d2

p2 d1

p2 d2

p3 d2

b) без использования операции деления, что значительно сложнее:

REZ = p PN (p PN, DN (R)) \ p PN ((p PN (p PN, DN (R)) x S) \ p PN, DN (R))


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: