Реляційна алгебра. Головні та додаткові операції реляційної алгебри
Лекція № 9 (2 години)
Тема «Реляційна алгебра. Головні та додаткові операції реляційної алгебри»
Мета: вивчення головних та додаткових операцій теоретичної мови реляційна алгебра.
Література
«Бази даних. Проектування, реалізація та супровід. Теорія та практика» -Т. Конолі, К. Бегг, А. Строчан, Москва, СПб., Київ. 2000 р.
«Бази даних: основи, проектування, використання» - Малихіна М. П. СПб. 2004р.
«Організація баз даних та знань» - Пасічник В. В., Резніченко В. А., Київ, 2006 р.
«Системы баз данных. Полный курс» - Г. Гарсия Молина, Москва: Вильямс, 2003р.
«Бази даних. Моделі, розробка, реалізація» - Карпов Т., СПб. 2001 р.
Хід заняття
І. Організаційний момент
а) готовність групи до заняття;
б) перевірка присутніх.
ІІ. Актуалізація опорних знань студентів
а) повідомлення теми та мети заняття;
б) повідомлення девізу, під яким будете працювати;
в) відповіді на запитання.
ІІІ. Виклад нового матеріалу
План
- Теоретична мова операцій реляційна алгебра.
- Головні операції реляційної алгебри.
- Додаткові операції реляційної алгебри.
ІV. Узагальнення та систематизація знань.
V. Підведення підсумків заняття.
VІ. Домашнє завдання: вивчити матеріал лекції, знати відповіді на такі питання лекції:
Для чого потрібна теоретична мова реляційна алгебра?
Які операції реляційної алгебри Ви знаєте?
Які з операцій реляційної алгебри є головними, а які - додатковими?
Які операції реляційної алгебри вважаються унарними, а які - бінарними? Пояснити свою відповідь з наведенням прикладів.
При якій операції реляційної алгебри створюється нове відношення, яке містить всі кортежі, існуючі хоча б в одному з відношень-операндів?
Які типи операцій зєднання Ви знаєте?
Реляційна алгебра - теоретична мова операцій, яка на основі одного або декількох відношень дозволяє створити інше відношення без зміни початкових відношень.
Реляційна алгебра є мовою послідовного використання відношень, в якому всі кортежі, можливо навіть обрані з різних відношень, опрацьовуються однією командою, без організації циклів.
Е. Ф. Кодд запропанував 8 операцій реляційної алгебри. Пять головних операцій реляційної алгебри, а саме:
- відбір;
- проекція;
- декартовий добуток;
- обєднання;
- різниця
виконують більшість операцій вилучення даних.
Додаткові операції - операції зєднання, перетину та дріблення.
Операції відбору та проекції є унарними, тому що вони працюють з одним відношенням. Інші операції працюють з парами відношень і саме тому мають назву бінарні.
- Відбір (обмеження)
предикат (R) операція відбору працює з єдиним відношенням R та визначає підсумкове відношення, яке містить тільки ті кортежі (рядки) відношення R, які задовільняють цій умові (предикату).
Приклад. Скласти перелік усіх співробітників з заробітною платою, яка перевищує 3000 грн.
з/п >3000(Співробітники)
Тут початковим відношенням є відношення Співробітники, а предикатом - умова з/п >3000.
Операція відбору визначає нове відношення, яке містить тільки ті кортежі відношення Співробітники, в яких значення атрибуту заробітної плати перевищує 3000 грн.
- Проекція
П атр1, .... , атрn (R) - операція проекції працює з єдиним відношенням R та визначає нове відношення, яке містить вертикальну підмножину відношення R, яке створюється шляхом видобутку значень вказанних атрибутів та виключенням з підсумку рядків-дублікатів.
Приклад. Скласти відомість заробітної плати всіх співробітників компанії з вказівкою атрибутів Номер_співробітника, Прізвище, Імя, По-батькові, З_П.
П Номер_співробітника, Прізвище, Імя, По-батькові, З_П (Співробітники)
В цьому прикладі операція проекції визначає нове відношення, яке буде містити тільки атрибути Номер співробітника, Прізвище, Імя, По-батькові, ЗП відношення Співробітники, які розташовані в вказаному порядку.
- Декартовий добуток
RS операція декартового добутку визначає нове відношення, яке є підсумком конкатенації кожного кортежу з відношення R з кожним кортежем відношення S.
Оператори відбору та проекції вилучають інформацію тільки з єдиного відношення. Але можливо створення таких ситуацій, коли необхідна комбінація даних з декількох відношень. Оператор декартового добутку помножує два відношення, що в підсумку спричиняє створення іншого відношення, яке містить усі можливі пари кортежів обох відношень.
Приклад. Скласти перелік усіх орендаторів, які оглядали обєкти нерухомості, з вказівкою зроблених ними коментарів.
П Номер орендатора, Прізвище, Імя, По-батькові (Орендатор) П Номер огляду, Номер орендатора, Номер обєкту, Коментарі (Огляд)
- Обєднання
R S при виконанні операції обєднання двох відношень створюється відношення, яке містить усі кортежі, які входять до складу хоча б з одного з відношень-операндів.
Два відношення є сумісними за обєднанням, коли в заголовках обох відношень містится однаковий набір імен атрибутів та одноіменні атрибути визначені на тому ж самому домені.
Приклад. Створити перелік усіх міст, в яких є відділення компанії або обєкт нерухомості.
П місто (Відділення) П місто (Обєкт нерухомості)
Для створення сумісних за обєднанням відношень спочатку необхідно застосувати операцію проекції, щоб виділити з відношення Відділення та Обєкт нерухомості стовпці з атрибутами Місто, виключаючі у випадку необхідності дублікати. Потім для комбінування отриманих проміжних відношень слід використовувати операцію обєднання.
- Різниця
R S різниця двох відношеннь R та S складається з кортежів, які є в відношенні R, але відсутні в відношенні S (R та S повині бути сумісними за обєднанням).
Приклад. створити перелік усіх міст, в яких є відділення компанії, але немає обєктів нерухомості, які здаються в аренду.
П Місто (Відділення) Пмісто (Обєкт нерухомості)
- Операції зєднання
Користувачів цікавить лише деяка частина усіх комбінацій кортежів декартового добутку, яка задовільняє умовам. Тому замість декартового добутку звичайно використовується найважливіша операція реляційної алгебри операція зєднання. У підсумку її використання на базі двох початкових відношень створюється деяке нове відношення.
Операція зєднання є наслідком від операції декартового добутку, так як вона є еквівалентною операції відбору з декартового добутку двох операндів-відношень цих кортежів, які задовільняють умові, вказаній в предікаті зєднання в якості формули відбору.
З точки зору ефективної реалізації в РСКБД ця операція є найскладнішою.
Існують різні типи операцій зєднання:
- тета-зєднання;
- зєднання за еквівалентністю, яке є часним виглядом тета-зєднання;
- природне зєднання;
- зовнішнє зєднання;
- напівзєднання.
- Перетин
R S операція перетину визначає відношення, яке містить кортежі, існуючі як у відношенні R, так й у відношенні S. Відношення R та S повинні бути сумісними за обєднанням.
Перетин можна сформувати на основі оператору різниці множини:
R S = R ( R S)
Приклад. створити перелік усіх міст, в яких є відділення компанії та обєкт нерухомості, який здається в оренду.
П Місто (Відділення) П Місто (Обєкт нерухомості)
- Ділення
R - S бінарна операція для отримання деякого відношення з двох початкових, причому ступінь підсумкового відношення не співпадає зі ступенем жодного з операндів, а обчислюється як різниця між ступенем відношення-діленим та ступенем відношення-дільника.
Приклад. Створити перелік усіх орендаторів, які оглядали обєкти нерухомості з трьома кімнатами.
Для вирішення цієї задачі спочатку треба за допомогою оператору відбору виконати пошук усіх трикімнатних обєктів нерухомості. А потім за допомогою оператору проекції отримати відношення, яке містить лише номери обєктів нерухомості та особисті номери клієнтів. Після цього треба застосувати оператор ділення та одержати нове відношення.
(П номер орендатора, Номер обєкту (Огляд)) (П номер обєкту( Кімнати=3 (Обєкт нерухомості)))
Реляційна алгебра. Головні та додаткові операції реляційної алгебри