тілом операнда, але імена атрибутів змінені.
Операція присвоєння дозволяє зберегти результат обчислення реляційного вираження в існуючому відношенні БД.
Оскільки результатом будь-якої реляційної операції (крім операції привласнення) є деяке відношення, можна утворювати реляційні вирази, в яких замість відношення-операнда деякої реляційної операції знаходиться вкладене реляційне вираження.
5.1.2. Замкненість реляційної алгебри і операція перейменування
Як ми говорили в попередній лекції, кожне відношення характеризується схемою (або заголовком) і набором кортежів (або тілом). Тому, якщо дійсно бажати мати алгебру, операції якій замкнені відносно поняття відношення, то кожна операція повинна проводити відношення в повному розумінні, тобто воно повинно володіти і тілом, і заголовком. Тільки в цьому випадку буде дійсно можливо будувати вкладені вирази.
Заголовок відношення являє собою безліч пар <імені-атрибута, імені-домена>. Якщо подивитися на загальний огляд реляційних операцій, приведений в попередньому підрозділі, то видно, що домени атрибутів результуючого відношення однозначно визначаються доменами відносин-операндів. Однак з іменами атрибутів результату не завжди все так просто.
Наприклад, уявимо собі, що у відносин-операндів операції прямого вироблення є однойменні атрибути з однаковими доменами. Яким був би заголовок результуючого відношення? Оскільки ця безліч, в ньому не повинні міститися однакові елементи. Але і втратити атрибут в результаті недопустимо. А це означає, що в цьому випадку взагалі неможливо коректно виконати операцію прямого твору.
Аналогічні проблеми можуть виникати і у разах інших двомісних операцій. Для їх дозволу до складу операцій реляційної алгебри вводиться операція перейменування. Її потрібно застосовувати в будь-якому випадку, коли виникає конфлікт іменування атрибутів у відносинах - операндах однієї реляційної операції. Тоді до одного з операндів спочатку застосовується операція перейменування, а потім основна операція виконується вже без всяких проблем.
У подальшому викладі ми будемо передбачати застосування операції перейменування у всіх конфліктних випадках.
5.1.3. Особливості теоретико-множинних операцій реляційної алгебри
Хоч в основі теоретико-множинної частини реляційної алгебри лежить класична теорія множин, відповідні операції реляційної алгебри володіють деякими особливостями.
Почнемо з операції об'єднання (все, що буде говоритися з приводу об'єднання, переноситься на операції перетину і взяття різниці). Значення операції об'єднання в реляційній алгебрі загалом залишається теоретико-множинним. Але якщо в теорії множин операція об'єднання передбачена для будь-яких двох множин-операндів, то у разі реляційної алгебри результатом операції об'єднання повинно бути відношення. Якщо допустити в реляційній алгебрі можливість теоретико-множинного об'єднання довільних двох відносин (з різними схемами), то, звичайно, результатом операції буде безліч, але безліч різнотипних кортежів, тобто не відношення. Якщо вийти з вимоги замкненість реляційної алгебри відносно поняття відношення, то така операція об'єднання є безглуздою.
Всі ці міркування приводять до появи поняття сумісності відносин по об'єднанню: два відношення сумісні по об'єднанню в тому і тільки в тому випадку, коли володіють однаковими заголовками. Більш точно, це означає, що в заголовках обох відносин міститься один і той же набір імен атрибутів, і однойменні атрибути визначені на одному і тому ж домені.
Якщо два відношення сумісні по об'єднанню, то при звичайному виконанні над ними операцій об'єднання, перетину і взяття різниці результатом операції є відносини з коректно певним заголовком, співпадаючим із заголовком кожного з відносин-операндів. Нагадаємо, що якщо два відношення "майже" сумісні по об'єднанню, тобто сумісні у всьому, крім імен атрибутів, то до виконання операції типу з'єднання ці відносини можна зробити повністю сумісними по об'єднанню шляхом застосування операції перейменування.
Помітимо, що включення до складу операцій реляційної алгебри трьох операцій об'єднання, перетину і взяття різниці є очевидно надмірним, оскільки відомо, що будь-хто з цих операцій виражається через дві інших. Проте, Кодд в свій час вирішив включити всі три операції, виходячи з інтуїтивних потреб потенційного користувача системи реляційної БД, далекого від математики.
Інші проблеми пов'язані з операцією взяття прямого вироблення двох відносин. У теорії множин прямий твір може бути отриманий для будь-яких двох множин, і елементами результуючої безлічі є пари, складені з елементів першої і другої множин. Оскільки відносини є множинами, то і для будь-яких двох відносин можливе отримання прямого твору. Але результат не буде відношенням! Елементами результату будуть бути не кортежі, а пари кортежів.
Тому в реляційній алгебрі використовується спеціалізована форма операції взяття прямого твору - розширене пряме вироблення відносин. При взятті розширеного прямого вироблення двох відносин елементом результуючого відношення є кортеж, що є конкатенацією (або злиттям) одного кортежу першого відношення і одного кортежу другого відношення.
Але тепер виникає друге питання - як отримати коректно сформований заголовок відношення-результату? Очевидно, що проблемою може бути іменування атрибутів результуючого відношення, якщо відносини-операнди володіють однойменними атрибутами.
Ці міркування приводять до появи поняття сумісності по взяттю розширеного прямого твору. Два відношення сумісні по взяттю прямого виготовлення в тому і тільки в тому випадку, якщо множини імен атрибутів цих відносин не перетинаються. Будь-які два відношення можуть бути зроблені сумісними по взяттю прямого твору шляхом застосування операції перейменування до одного з цих відносин.
Потрібно помітити, що операція взяття прямого твору не є дуже осмисленою на практиці. По-перше, потужність її результату дуже велика навіть при допустимих потужностях операндів, а по-друге, результат операції не більше ніж інформативний, ніж взяті в сукупності операнди. Як ми побачимо трохи нижче, основне значення включення операції розширеного прямого призначення складом реляційної алгебри полягає в тому, що на її основі визначається дійсно корисна операція з'єднання.
З приводу теоретико-множинних операцій реляційної алгебри потрібно ще помітити, що всі чотири операції є асоціативними. Т. е., якщо визначити через OP будь-кого з чотирьох