Операция расширенного декартова произведения и совместимость отношений относительно этой операции

 

Другие проблемы связаны с операцией взятия декартова произведения двух отношений. В теории множеств декартово произведение может быть получено для любых двух множеств, и элементами результирующего множества являются пары, составленные из элементов первого и второго множеств. Более точно, декартовым произведением множеств A {a} и B {b} является такое множество пар C {<c1, c2>}, что для каждого элемента <c1, c2> множества C существуют такой элемент a множества A, что c1=a, и такой элемент b множества B, что c2=b.

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

 

Поэтому в реляционной алгебре используется специализированная форма операции взятия декартова произведения – расширенное декартово произведение отношений. При взятии расширенного декартова произведения двух отношений, элементом результирующего отношения является кортеж, являющийся объединением одного кортежа первого отношения и одного кортежа второго отношения.

 

Приведем более точное определение операции расширенного декартова произведения. Пусть имеются два отношения R1 {a1, a2, …, an} и R2 {b1, b2, …, bm}. Тогда результатом операции R1 TIMES R2 является отношение R {a1, a2, …, an,, b1, b2, …, bm}, тело которого является множеством кортежей вида {ra1, ra2, …, ran, rb1, rb2, …, rbm} таких, что {ra1, ra2, …, ran} входит в тело R1, а {rb1, rb2, …, rbm} входит в тело R2.

 

Но теперь возникает вторая проблема – как получить корректно сформированный заголовок отношения-результата? Поскольку схема результирующего отношения является объединением схем отношений-операндов, то очевидной проблемой может быть именование атрибутов результирующего отношения, если отношения-операнды обладают одноименными атрибутами.

 

Эти соображения приводят к введению понятия совместимости по взятию расширенного декартова произведения. Два отношения совместимы по взятию расширенного декартова произведения в том и только в том случае, если пересечение множеств имен атрибутов, взятых из их схем отношений, пусто. Любые два отношения всегда могут быть сделаны совместимыми по взятию декартова произведения путем применения операции переименования к одному из этих отношений.

 

Для иллюстрации операции предположим, что в придачу к введенным ранее отношениям СЛУЖАЩИЕ_В_ПРОЕКТЕ_1и СЛУЖАЩИЕ_В_ПРОЕКТЕ_2в базе данных содержится еще и отношение ПРОЕКТЫсо схемой {ПРОЕКТ_НАЗВ, ПРОЕКТ_РУК} (имена доменов снова опущены) и телом, показанным на рис. 3.5. На этот же рисунке показан результат операции СЛУЖАЩИЕ_В_ПРОЕКТЕ_1 TIMES ПРОЕКТЫ.