Базы данных. Краморенко Н.В. - 37 стр.

UptoLike

Составители: 

38
списка продуктов, поставляемых Владивостокскими поставщиками (R12); и проекциидля
получения только названий продуктов (R13) (Рис. 2-25).
Рис. 2-25. Пример условного соединения
Деление
Пусть отношения A и B имеют заголовки:
{X1, X2,…, Xm, Y1, Y2,…, Yn}
и
{ Y1, Y2,…, Yn } соответственно;
т.е. атрибуты Y1, Y2,…, Yn – общие для двух отношений, и отношение A
имеет дополнительные атрибуты X1, X2,…, Xm, а отношение B не имеет дополнительных
атрибутов. (Отношения A и B представляют соответственно делимое и делитель). Предположим
также, что соответствующие атрибуты (т.е. атрибуты с одинаковыми именами) определены на одном
и том же домене. Пусть выражения {X1, X2,…, Xm}и {Y1, Y2,…, Yn}обозначают два составных
атрибута X и Y соответственно.
Тогда делением отношений A и B называется отношение
с заголовком {X} и телом, содержащим множество всех
кортежей {X:x} таких, что существует кортеж {X:x, Y:y},
который принадлежит отношению A для всех кортежей {Y:y},
принадлежащих отношению B.
Нестрого это можно сформулировать так: результат
содержит такие X-значения из отношения A, для которых
соответствующие Y-значения (из A) включают все Y-значения
из отношения B.
Если запрос на естественном языке включает слововсе
(“получить поставщиков, поставляющих все виды продуктов”),
то почти наверняка потребуется операция деления.
Пример
: Пусть отношение R14 содержит поставщиков и виды поставляемых ими продуктов,
а отношение ВидПродукта содержит виды продуктов (Рис. 2-26). Тогда, чтобы получить
поставщиков поставляющих ВСЕ виды продуктов, необходимо отношение R14 разделить на
отношение ВидПродукта по атрибуту КодВида (Рис. 2-26).
списка продуктов, поставляемых Владивостокскими поставщиками (R12); и проекции – для
получения только названий продуктов (R13) (Рис. 2-25).




                            Рис. 2-25. Пример условного соединения


       Деление
       Пусть отношения A и B имеют заголовки:
       {X1, X2,…, Xm, Y1, Y2,…, Yn}
       и
       { Y1, Y2,…, Yn } соответственно;
       т.е. атрибуты Y1, Y2,…, Yn – общие для двух отношений, и отношение A
       имеет дополнительные атрибуты X1, X2,…, Xm, а отношение B не имеет дополнительных
атрибутов. (Отношения A и B представляют соответственно делимое и делитель). Предположим
также, что соответствующие атрибуты (т.е. атрибуты с одинаковыми именами) определены на одном
и том же домене. Пусть выражения {X1, X2,…, Xm}и {Y1, Y2,…, Yn}обозначают два составных
атрибута X и Y соответственно.
                                          Тогда делением отношений A и B называется отношение
                                   с заголовком {X} и телом, содержащим множество всех
                                   кортежей {X:x} таких, что существует кортеж {X:x, Y:y},
                                   который принадлежит отношению A для всех кортежей {Y:y},
                                   принадлежащих отношению B.
                                          Нестрого это можно сформулировать так: результат
                                   содержит такие X-значения из отношения A, для которых
                                   соответствующие Y-значения (из A) включают все Y-значения
                                   из отношения B.
                                          Если запрос на естественном языке включает слово “все”
                                   (“получить поставщиков, поставляющих все виды продуктов”),
                                   то почти наверняка потребуется операция деления.

       Пример: Пусть отношение R14 содержит поставщиков и виды поставляемых ими продуктов,
а отношение ВидПродукта содержит виды продуктов (Рис. 2-26). Тогда, чтобы получить
поставщиков поставляющих ВСЕ виды продуктов, необходимо отношение R14 разделить на
отношение ВидПродукта по атрибуту КодВида (Рис. 2-26).




                                               38