![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Вступ
Більшість застосувань у програмній індустрії працюють з масивами даних, забезпечення роботи з якими покладається на системи управління баз даних.
Відношення та спеціальні оператори, операції з ними є базою реляційної алгебри, тобто формальною основою реляційної моделі баз даних.
2. Реляційна модель даних та відношення
На сьогодні більше половини програмних застосунків працюють з базами даних (БД) для збереження внутрішньої та зовнішньої інформації, що може мати складну структуру. У 1970 Едгаром Коддом розроблено реляційну модель даних - логічну модель даних для опису структури даних у вигляді наборів відношень, котрі можуть змінюватися у часі.
Правила роботи з реляційною моделлю описано у логіці першого порядку, зокрема у реляційній алгебрі.
Реляційна модель, як особливий метод опису даних, містить і власне дані (у вигляді відношень, або ж таблиць), і способи роботи та маніпуляції із ними (у вигляді зв'язків). Реляційна модель структурно містить три концептуальні елементи:
· структуру даних, тобто спосіб подання інформації;
· обробку даних, тобто можливі операції над відношеннями;
· спеціальні правила, що забезпечують цілісність даних.
Основними поняттями реляційної алгебри є відношення та оператори. Відношення розглядається як набір елементів БД, об’єднаних за спільною ознакою. До відношень застосовуються дії – оператори. Схема відношення містить ім’я
та список атрибутів
. Зауважимо, що список атрибутів у схемі невпорядкований і множина значень кожного атрибуту наперед визначена.
Розглянемо приклад реляційного представлення даних.
Приклад 2.1. Задано відношення СТУДЕНТ А, яке містить інформацію про студентів університету, що зображено у табл. 2.1.
Таблиця 2.1. Студенти університету.
Прізвище | Ім’я | Група |
Плюта | Назар | ПІ-31 |
Строгуш | Василь | ПІ-32 |
Сава | Олег | ПІ-32 |
Смірнов | Всеволод | ПІ-31 |
Телемко | Андрій | ПІ-32 |
Відношення СТУДЕНТ A задане на трьох множинах — множині прізвищ, множині імен і множині груп. Відношення СТУДЕНТ A можна задати списком його елементів:
СТУДЕНТ A ((Плюта, Назар, ПІ-31), (Строгуш, Василь, ПІ-32),..., (Телемко, Сергій, ПІ-32)).
Введемо умовні позначення та імена для стовбців та рядків у БД аналогічного типу.
Означення 2.1.Кортежами у реляційній алгебрі називаються елементи відношення.
Кортежі відповідають рядкам таблиці, такі як (Плюта, Назар, ПІ-31) і (Строгуш, Василь, ПІ-32).
Означення 2.2. Доменами називаються множини або області даних, на яких визначено відношення.
Домени відповідають стовпцям таблиці. У попередньому прикладі домени - це множина прізвищ, множина імен і множина груп.
Означення 2.3. Найменування стовпців таблиці називають атрибутами.
У прикладі – це Прізвище, Ім’я, Група.
Означення 2.4. Схемою відношення є список атрибутів.
Наприклад, СТУДЕНТ A (Прізвище, Ім’я, Група).
Зобразимо у вигляді таблиці – схему відношення СТУДЕНТ A (рис.2.1.).
Рис. 2.1. Схема відношення СТУДЕНТ А
Розглянемо тепер операції над відношеннями. У якості базису реляційної алгебри вибрано оператори – об’єднання, перетин, різниця, декартовий добуток, вибірка, проекція, з'єднання, ділення.
Усі оператори класифіковано на дві групи – основні теоретико-множинні операцій над відношеннями та спеціальна реляційні оператори.
Таким чином, у базах даних операції можна розділити на такі як:
· теоретико-множинні операції, що застосовуються для перетворення відношень у базі даних, використовуючи терміни реляційної алгебри.
· спеціальні реляційні операції: селекція, проекція, з'єднання і ділення.
· прості операції із заповнення таблиці. Для зміни вмісту таких таблиць у базах даних використовують операції додавання, видалення кортежів і зміни значення атрибутів;
· допоміжні операції – присвоєння, перейменування атрибутів, тощо.
Означення 2.5. Відношення, до яких застосовується операція, будемо називати відношеннями- операндами;
![]() |
![]() |
![]() |
3. Теоретико-множинні операції реляційної алгебри
Дамо означення операторів реляційної алгебри.
Означення 3.1.Об'єднання відношень. При виконанні операції об'єднання двох відношень () одержуємо відношення, що включає всі кортежі, які входять хоча б в одне з відношень-операндів.
Означення 3.2.Перетинвідношень. При виконанні операції перетину двох відношень () одержуємо відношення, що включає тільки ті кортежі, які входять в обидва відношення-операнда.
Означення 3.3.Різниця відношень. Відношення, яке є різницею (\) двох відношень, включає всі кортежі, що входять до відношення перший операнд, такі, що жоден з них не входить до відношення, яке є другим операндом.
Усі наведені операції мають зміст для відношень, що визначені на однакових доменах.
Приклад 3.1. Розглянемо два відношення СТУДЕНТ A і СТУДЕНТ Б.
СТУДЕНТ A СТУДЕНТ Б
Прізвище | Ім’я | Група | Прізвище | Ім’я | Група | |
Плюта | Назар | ПІ-31 | Плюта | Назар | ПІ-31 | |
Строгуш | Василь | ПІ-32 | Смірнов | Всеволод | ПІ-31 | |
Сава | Олег | ПІ-32 | Том’як | Оксана | ПІ-31 | |
Смірнов | Всеволод | ПІ-31 | Чуловський | Андрій | ПІ-32 | |
Телемко | Сергій | ПІ-32 | Шевчишик | Богдан | ПІ-31 |
а) Виконаємо операцію перетин для заданих двох відношень СТУДЕНТ A СТУДЕНТ Б:
Прізвище | Ім’я | Група |
Плюта | Назар | ПІ-31 |
Смірнов | Всеволод | ПІ-31 |
б) Виконаємо операцію різниця для заданих двох відношень СТУДЕНТ A \ СТУДЕНТ Б
Прізвище | Ім’я | Група |
Строгуш | Василь | ПІ-32 |
Сава | Олег | ПІ-32 |
Телемко | Сергій | ПІ-32 |
в) Виконаємо операцію об’єднання для заданих двох відношень ВСІ СТУДЕНТИ = СТУДЕНТ A СТУДЕНТ Б
Прізвище | Ім’я | Група |
Плюта | Назар | ПІ-31 |
Строгуш | Василь | ПІ-32 |
Сава | Олег | ПІ-32 |
Смірнов | Всеволод | ПІ-31 |
Телемко | Сергій | ПІ-32 |
Том’як | Оксана | ПІ-31 |
Чуловський | Андрій | ПІ-32 |
Шевчишик | Богдан | ПІ-31 |
Розглянемо операцію, яка є декартовим або прямим добутком відношень.
Означення 3.4.Прямий добуток відношень. При виконанні прямого добутку (х) двох відношень одержуємо відношення, множина кортежів якого є декартовим добутком множин кортежів першого і другого операндів. Розглянемо відношення КУРС
Навч. рік | Курс |
2010-2011 | |
2011-2012 |
г) Результат прямого добутку відношення СТУДЕНТ A х КУРС
Прізвище | Ім’я | Група | Навч. рік | Курс |
Плюта | Назар | ПІ-31 | 2010-2011 | |
Плюта | Назар | ПІ-41 | 2011-2012 | |
Строгуш | Василь | ПІ-32 | 2010-2011 | |
Строгуш | Василь | ПІ-42 | 2011-2012 | |
Сава | Олег | ПІ-32 | 2010-2011 | |
Сава | Олег | ПІ-42 | 2011-2012 | |
Смірнов | Всеволод | ПІ-31 | 2010-2011 | |
Смірнов | Всеволод | ПІ-41 | 2011-2012 | |
Телемко | Сергій | ПІ-32 | 2010-2011 | |
Телемко | Сергій | ПІ-42 | 2011-2012 |
4. Спеціальні операції реляційної алгебри.
Означення 4.1.Вибірка відношення. Результатом вибірки відношення () за деяким атрибутом або атрибутами, є відношення, що складається в точності з тих кортежів, які задовольняють умову
.
Виконаємо вибірку відношення ВСІ СТУДЕНТИ за атрибутом Група = ПІ-31. Назвемо результат — СТУДЕНТ ПІ-31. В результаті одержимо відношення, що містить тільки кортежі, в яких значення атрибута Група дорівнює ПІ-31.
СТУДЕНТ ПІ-31= (ВСІ СТУДЕНТИ)
Прізвище | Ім’я | Група |
Плюта | Назар | ПІ-31 |
Смірнов | Всеволод Д | ПІ-31 |
Том’як | Оксана | ПІ-31 |
Шевчишик | Богдан | ПІ-31 |
Означення 4.2.Проекція відношення. Під час виконання проекції () відношення на заданий набір його атрибутів результат виходить шляхом видалення з відношення-операнда атрибутів, не вказаних у заданому наборі.
Виконаємо проекцію відношення СТУДЕНТ A х КУРС за атрибутами Група, Навч. рік, Курс.
а) (СТУДЕНТ A х КУРС)
Група | Навч. рік | Курс |
ПІ-31 | 2010-2011 | |
ПІ-41 | 2011-2012 | |
ПІ-32 | 2010-2011 | |
ПІ-42 | 2011-2012 |
Виконаємо проекцію відношення СТУДЕНТ ПІ-31 за атрибутами Прізвище, Імена.
б) ПРІЗВИЩЕ СТ ПІ-31 = (СТУДЕНТ ПІ-31)
Прізвище | Ім’я |
Плюта | Назар |
Смірнов | Всеволод |
Том’як | Оксана |
Шевчишик | Богдан |
Означення 4.3.Натуральне (природнє) з'єднання відношень. У натуральному з'єднанні двох відношень утворюється результуюче відношення, кортежі якого є з'єднанням кортежів першого і другого відношень, якщо значення спільних атрибутів співпадає.
Розглянемо відношення НОМЕР.
НОМЕР
Прізвище | Ім’я | Залікова книжка № | Студ. № |
Плюта | Назар | ||
Строгуш | Василь | ||
Сава | Олег | ||
Смірнов | Всеволод | ||
Телемко | Сергій | ||
Том’як | Оксана | ||
Чуловський | Андрій | ||
Шевчишик | Богдан |
Виконаємо натуральне з'єднання відношень СТУДЕНТ ПІ-31 і НОМЕР.
в) СТУДЕНТ ПІ-31 НОМЕР
Прізвище | Ініціали | Група | Залікова книжка № | Студ. № |
Плюта | Назар | ПІ-31 | ||
Смірнов | Всеволод | ПІ-31 | ||
Том’як | Оксана | ПІ-31 | ||
Шевчишик | Богдан | ПІ-31 |
Означення 4.4.Умовне з’єднання відношень. В умовному з'єднанні двох відношень утворюється результуюче відношення, кортежі якого є з'єднанням кортежів першого і другого відношень, для яких виконується задана умова.
Розглянемо відношення ОЛІМПІАДА, у якому збережена інформація про студентів, які приймали участь у олімпіаді і відношення КОНКУРС, у якому збережено інформацію про студентів, які подали свою кандидатуру на грант.
ОЛІМПІАДА КОНКУРС
Прізвище | Ім’я | Місце | Прізвище | Ім’я | |
Плюта | Назар | Телемко | Сергій | ||
Смірнов | Всеволод | - | Том’як | Оксана | |
Телемко | Сергій | Строгуш | Василь | ||
Том’як | Оксана | Сава | Олег | ||
Чуловський | Андрій | - | Чуловський | Андрій |
Знайдемо список студентів, які перемогли у олімпіаді, але не подали свої документи на грант.
г) ОЛІМПІАДА [ ОЛІМПІАДА. Прізвище КОНКУРС. Прізвище
ОЛІМПІАДА. Місце
“—” ] КОНКУРС
Прізвище | Ім’я | Місце |
Плюта | Назар |
Означення 4.5.Ділення відношень. Операція ділення відношень () відбувається таким чином. Відношення — дільник повинно мати набір атрибутів, які включені до набору атрибутів діленого. Результуюче відношення містить ті атрибути діленого, які не присутні в дільнику. Значення цих атрибутів беруться з тих кортежів діленого, які включають до себе кортежі дільника. Тепер виконаємо ділення відношення НОМЕР на відношення ПРІЗВИЩЕ СТ ПІ-31.
д) В результаті ділення НОМЕР ПРІЗВИЩЕ ми одержуємо таблицю номерів студентів групи ПІ-31.
Залікова книжка № | Студ № |
Операція ділення відношень потребує докладнішого пояснення, оскільки найбільш важка для розуміння. Розглянемо відношення ІМЕНА.
Ім’я |
Назар |
Василь |
Сергій |
В результаті ділення НОМЕР ІМЕНА ми одержуємо відношення, яке містить тільки ті кортежі, які мають “спільні” частини у атрибутах Ім’я та Група.
НОМЕР ІМЕНА
Прізвище | Залікова книжка № | Студ. № |
Плюта | ||
Строгуш | ||
Телемко |
Дата публикования: 2015-09-17; Прочитано: 428 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!