Реляційна алгебра. Головні та додаткові операції реляційної алгебри

Лекція № 9 (2 години)

Тема «Реляційна алгебра. Головні та додаткові операції реляційної алгебри»

Мета: вивчення головних та додаткових операцій теоретичної мови – реляційна алгебра.

Література

«Бази даних. Проектування, реалізація та супровід. Теорія та практика» -Т. Конолі, К. Бегг, А. Строчан, Москва, СПб., Київ. 2000 р.

«Бази даних: основи, проектування, використання» - Малихіна М. П. СПб. 2004р.

«Організація баз даних та знань» - Пасічник В. В., Резніченко В. А., Київ, 2006 р.

«Системы баз данных. Полный курс» - Г. Гарсия Молина, Москва: Вильямс, 2003р.

«Бази даних. Моделі, розробка, реалізація» - Карпов Т., СПб. 2001 р.

Хід заняття

І. Організаційний момент

а) готовність групи до заняття;

б) перевірка присутніх.

ІІ. Актуалізація опорних знань студентів

а) повідомлення теми та мети заняття;

б) повідомлення девізу, під яким будете працювати;

в) відповіді на запитання.

ІІІ. Виклад нового матеріалу

План

  1. Теоретична мова операцій – реляційна алгебра.
  2. Головні операції реляційної алгебри.
  3. Додаткові операції реляційної алгебри.

ІV. Узагальнення та систематизація знань.

V. Підведення підсумків заняття.

VІ. Домашнє завдання: вивчити матеріал лекції, знати відповіді на такі питання лекції:

Для чого потрібна теоретична мова реляційна алгебра?

Які операції реляційної алгебри Ви знаєте?

Які з операцій реляційної алгебри є головними, а які - додатковими?

Які операції реляційної алгебри вважаються унарними, а які - бінарними? Пояснити свою відповідь з наведенням прикладів.

При якій операції реляційної алгебри створюється нове відношення, яке містить всі кортежі, існуючі хоча б в одному з відношень-операндів?

Які типи операцій з’єднання Ви знаєте?

Реляційна алгебра - теоретична мова операцій, яка на основі одного або декількох відношень дозволяє створити інше відношення без зміни початкових відношень.

Реляційна алгебра є мовою послідовного використання відношень, в якому всі кортежі, можливо навіть обрані з різних відношень, опрацьовуються однією командою, без організації циклів.

Е. Ф. Кодд запропанував 8 операцій реляційної алгебри. П’ять головних операцій реляційної алгебри, а саме:

  1. відбір;
  2. проекція;
  3. декартовий добуток;
  4. об’єднання;
  5. різниця

виконують більшість операцій вилучення даних.

Додаткові операції - операції з’єднання, перетину та дріблення.

Операції відбору та проекції є унарними, тому що вони працюють з одним відношенням. Інші операції працюють з парами відношень і саме тому мають назву бінарні.

  1. Відбір (обмеження)

предикат (R) – операція відбору працює з єдиним відношенням R та визначає підсумкове відношення, яке містить тільки ті кортежі (рядки) відношення R, які задовільняють цій умові (предикату).

Приклад. Скласти перелік усіх співробітників з заробітною платою, яка перевищує 3000 грн.

з/п >3000(Співробітники)

Тут початковим відношенням є відношення Співробітники, а предикатом - умова з/п >3000.

Операція відбору визначає нове відношення, яке містить тільки ті кортежі відношення Співробітники, в яких значення атрибуту заробітної плати перевищує 3000 грн.

  1. Проекція

П атр1, .... , атрn (R) - операція проекції працює з єдиним відношенням R та визначає нове відношення, яке містить вертикальну підмножину відношення R, яке створюється шляхом видобутку значень вказанних атрибутів та виключенням з підсумку рядків-дублікатів.

Приклад. Скласти відомість заробітної плати всіх співробітників компанії з вказівкою атрибутів Номер_співробітника, Прізвище, Ім’я, По-батькові, З_П.

П Номер_співробітника, Прізвище, Ім’я, По-батькові, З_П (Співробітники)

В цьому прикладі операція проекції визначає нове відношення, яке буде містити тільки атрибути Номер співробітника, Прізвище, Ім’я, По-батькові, ЗП відношення Співробітники, які розташовані в вказаному порядку.

  1. Декартовий добуток

RS – операція декартового добутку визначає нове відношення, яке є підсумком конкатенації кожного кортежу з відношення R з кожним кортежем відношення S.

Оператори відбору та проекції вилучають інформацію тільки з єдиного відношення. Але можливо створення таких ситуацій, коли необхідна комбінація даних з декількох відношень. Оператор декартового добутку помножує два відношення, що в підсумку спричиняє створення іншого відношення, яке містить усі можливі пари кортежів обох відношень.

Приклад. Скласти перелік усіх орендаторів, які оглядали об’єкти нерухомості, з вказівкою зроблених ними коментарів.

П Номер орендатора, Прізвище, Ім’я, По-батькові (Орендатор) П Номер огляду, Номер орендатора, Номер об’єкту, Коментарі (Огляд)

  1. Об’єднання

R S – при виконанні операції об’єднання двох відношень створюється відношення, яке містить усі кортежі, які входять до складу хоча б з одного з відношень-операндів.

Два відношення є сумісними за об’єднанням, коли в заголовках обох відношень містится однаковий набір імен атрибутів та одноіменні атрибути визначені на тому ж самому домені.

Приклад. Створити перелік усіх міст, в яких є відділення компанії або об’єкт нерухомості.

П місто (Відділення) П місто (Об’єкт нерухомості)

Для створення сумісних за об’єднанням відношень спочатку необхідно застосувати операцію проекції, щоб виділити з відношення Відділення та Об’єкт нерухомості стовпці з атрибутами Місто, виключаючі у випадку необхідності дублікати. Потім для комбінування отриманих проміжних відношень слід використовувати операцію об’єднання.

  1. Різниця

R – S – різниця двох відношеннь R та S складається з кортежів, які є в відношенні R, але відсутні в відношенні S (R та S повині бути сумісними за об’єднанням).

Приклад. створити перелік усіх міст, в яких є відділення компанії, але немає об’єктів нерухомості, які здаються в аренду.

П Місто (Відділення) – Пмісто (Об’єкт нерухомості)

  1. Операції з’єднання

Користувачів цікавить лише деяка частина усіх комбінацій кортежів декартового добутку, яка задовільняє умовам. Тому замість декартового добутку звичайно використовується найважливіша операція реляційної алгебри – операція з’єднання. У підсумку її використання на базі двох початкових відношень створюється деяке нове відношення.

Операція з’єднання є наслідком від операції декартового добутку, так як вона є еквівалентною операції відбору з декартового добутку двох операндів-відношень цих кортежів, які задовільняють умові, вказаній в предікаті з’єднання в якості формули відбору.

З точки зору ефективної реалізації в РСКБД ця операція є найскладнішою.

Існують різні типи операцій з’єднання:

  • тета-з’єднання;
  • з’єднання за еквівалентністю, яке є часним виглядом тета-з’єднання;
  • природне з’єднання;
  • зовнішнє з’єднання;
  • напівз’єднання.

  1. Перетин

R S – операція перетину визначає відношення, яке містить кортежі, існуючі як у відношенні R, так й у відношенні S. Відношення R та S повинні бути сумісними за об’єднанням.

Перетин можна сформувати на основі оператору різниці множини:

R S = R – ( R – S)

Приклад. створити перелік усіх міст, в яких є відділення компанії та об’єкт нерухомості, який здається в оренду.

П Місто (Відділення) П Місто (Об’єкт нерухомості)

  1. Ділення

R - S – бінарна операція для отримання деякого відношення з двох початкових, причому ступінь підсумкового відношення не співпадає зі ступенем жодного з операндів, а обчислюється як різниця між ступенем відношення-діленим та ступенем відношення-дільника.

Приклад. Створити перелік усіх орендаторів, які оглядали об’єкти нерухомості з трьома кімнатами.

Для вирішення цієї задачі спочатку треба за допомогою оператору відбору виконати пошук усіх трикімнатних об’єктів нерухомості. А потім за допомогою оператору проекції отримати відношення, яке містить лише номери об’єктів нерухомості та особисті номери клієнтів. Після цього треба застосувати оператор ділення та одержати нове відношення.

(П номер орендатора, Номер об’єкту (Огляд)) – (П номер об’єкту( Кімнати=3 (Об’єкт нерухомості)))

Реляційна алгебра. Головні та додаткові операції реляційної алгебри