
- •Відношення у реляційній алгебрі методичні вказівки
- •6.050103 “Програмна інженерія”
- •Відношення у реляційній алгебрі зміст
- •1. Вступ
- •2. Реляційна модель даних та відношення
- •3. Теоретико-множинні операції реляційної алгебри
- •4. Спеціальні операції реляційної алгебри.
- •5. Приклади виконання практичних завдань
- •6. Завдання до виконання
- •Контрольні запитання.
- •Список літератури
- •Відношення у реляційній алгебрі методичні вказівки
- •6.050103 “Програмна інженерія”
5. Приклади виконання практичних завдань
Приклад 5.1. Візьмемо набір відношень, які моделюють здавання сесії студентами вищого навчального закладу (ВНЗ):
(ПІБ, Дисципліна,
Оцінка);
(ПІБ,
Група);
( Група, Дисципліна)
,
де
-
інформація про спроби (як успішних, так
і неуспішних) здачі іспитів студентами;
- склад груп,
- список дисциплін, які треба здавати
кожній групі. Будемо вважати, що доменом
для атрибута Дисципліна
буде множина всіх дисциплін, що викладають
у ВНЗ, доменом для атрибута Група
буде множина всіх груп ВНЗ і т. д.
Покажемо, яким чином можна отримати з цих таблиць цікавлять нас відомості за допомогою реляційної алгебри.
Список студентів, які здали іспит з комп’ютерної дискретної математики ( КДМ) на "відмінно". Результат може бути отриманий застосуванням операції обмеження з складною умовою до відношення
і наступним проектуванням на атрибут ПІБ:
Список тих, хто повинен був здавати іспит з КДМ, але поки ще не здавав. Спочатку знайдемо всіх, у кого за розкладом є іспит з КДМ.
У
відношенні
знаходиться
список всіх дисциплін, за якими кожна
група повинна була складати іспити,
обмежимо перелік дисциплін тільки “
КДМ ”.
Для
того, щоб отримати список студентів,
нам треба з'єднати відношення
з відношенням
,
=
і залишити у списку ПІБ студентів кожної групи.
У
відношенні
є
список усіх студентів, які повинні
здавати КДМ. Тепер отримаємо список
тих, хто здавав КДМ.
Для того, щоб отримати список тих, хто не здавав іспит, достатньо взяти різницю відношень.
Знайти список студентів, що мають кілька двійок.
Знайдемо список студентів, що мають двійки
Для
того, щоби знайти відповідь на умову
“Більше однієї двійки” треба брати
операцію з’єднання відношення
самої
з собою. Тому ми робимо копію
і
позначаємо її
.
Остаточний результат
будує відношення
- список студентів, котрі мають кілька
двійок, як об’єднання
кортежів з
та
для яких виконується задана умова.
Знайти список студентів, які мають “відмінно” з усіх предметів.
Знайдемо список дисциплін, які мають здати студенти.
Будуємо відношення “відмінних” оцінок.
Будуємо відношення студентів, які принаймі один іспит не здали на “відмінно”.
Відкидаючи з загального списку оцінок отримане відношення, будуємо відношення студентів які усі іспити здали на відмінно.
6. Завдання до виконання
1. Розглянемо
ситуацію вступу в Національний університет
«Львівська політехніка». Існує можливість
вступу через випускні екзамени курсів
у Малій Технічній академії, які здаються
раніше основних вступних іспитів до
вузу. Відношення
містить список абітурієнтів, котрі
здавали випускні іспити Малої Академії.
Відношення
містить список абітурієнтів, котрі
здавали іспити на загальних умовах.
Відношення
містить список абітурієнтів, прийнятих
до вузу. Вважаємо, що абітурієнт міг
робити дві спроби складання іспитів,
тому деякі абітурієнти можуть бути
присутніми як в
,
так і в
.Всі
відношення мають еквівалентні схеми:
2. Задані відношення, що моделюють роботу фірми, що займається розробкою програмних систем. Кожен співробітник адміністративно закріплений тільки за одним відділом і є автором програм та файлів. Існує набір системного програмного забезпечення, кожна програма може працювати з одним або з кількома файлами, розташованими на одному або декількох серверах, причому на різних серверах файли можуть мати однакові імена. Автор файлу є його власником, і в кожного файлу лише один власник, але власник файлу може дозволити користуватися файлом іншим співробітникам.
Відношення власників файлів:
(Назва файлу,
Ім’я власника файлу)
Відношення файлів, що використовують програми:
(Назва програми,
Назва файлу, Назва Сервер)
Список файлів на серверах:
(Назва файлу,
Назва серверу)
Список співробітників у відділах:
(Співробітник,Відділ)
Список співробітників, яким автори дали доступ до файлів. Самих авторів немає у цьому списку:
(Співробітник,Файл)
3. Дано відношення, що моделюють роботу банку і його філій. Клієнт може мати кілька рахунків, при цьому вони можуть бути розміщені як в одному, так і в різних філіях банку. У відношенні R1 міститься інформація про всіх клієнтів та їх рахунках у філіях нашого банку. Кожен клієнт, відповідно до свого рахунку, може розраховувати на деякий кредит від банку, сума допустимого кредиту також фіксована.
(ПІБ клієнта, №
Філії, № рахунку, Залишок, Кредит)
( № Філії, Район)
4.Задано
відношення, що моделюють роботу
міжнародної фірми, що має кілька філій.
Філії фірми можуть бути розташовані в
різних країнах(відношення
).
Клієнти фірми також можуть бути з різних
країн (відношенні
).
По кожному конкретному замовленню
клієнт міг замовити кілька різних
товарів.
(Філія, Країна)
(
Філія, Замовник, № Замовлення)
(
№ Замовлення, Продукт, Кількість)
(
Замовник, Країна)
Використовуючи постановку задач 1-4, виконайте наступні варіанти завдань. У кожному варіанті є 4 завдання, кожне з яких відповідає номеру відповідної задачі.
ВАРІАНТ 1.
1. Побудувати відношення, яке дає список абітурієнтів, які здавали іспити два рази і не були зараховані.
2. Скласти запити, що дозволяють вибрати файли, які мають декількох користувачів з різних відділів.
3. Скласти запити, що дозволяють вибрати філії, клієнти яких мають рахунки із залишком, що перевищує $ 1000.
4. Скласти запити, що дозволяють вибрати замовників, які працюють з усіма філіями фірми, але купують тільки один товар.
ВАРІАНТ 2.
1. Побудувати відношення, яке дає список абітурієнтів, які здавали іспити тільки один раз і були зараховані до ВНЗ.
2. Скласти запити, що дозволяють вибрати програми, які працюють тільки з одним файлом.
3. Скласти запити, що дозволяють вибрати клієнтів, які мають рахунки у всіх філіях даного банку.
4. Скласти запити, що дозволяють вибрати філії фірми, які торгують всіма товарами.
ВАРІАНТ 3.
Побудувати відношення, яке дає список абітурієнтів, які поступили до ВНЗ тільки після другої спроби.
Скласти запити, що дозволяють вибрати файли, які мають одне і те ж ім'я, але розташовані на різних серверах і використовуються співробітниками різних відділів.
Скласти запити, що дозволяють вибрати клієнтів, які мають тільки по одному рахунку в різних філіях банку. Тобто в загальному у цих клієнтів може бути декілька рахунків, але в одній філії не більше одного рахунку.
Скласти запити, що дозволяють вибрати товари, які фірма продає тільки в одній країні.
ВАРІАНТ 4.
1. Побудувати відношення, яке дає список абітурієнтів, які здавали лише один раз і не були зараховані.
2. Скласти запити, що дозволяють вибрати файли, з якими працюють співробітники всіх відділів.
3. Скласти запити, що дозволяють вибрати клієнтів, які мають рахунки в декількох філіях банку, розташованих тільки в одному районі.
4. Скласти запити, що дозволяють вибрати замовників, які працюють з філіями фірми, які розташовані тільки в одній країні.
ВАРІАНТ 5.
1. Побудувати відношення, яке дає список абітурієнтів, які здавали іспити два рази і не були зараховані.
2. Скласти запити, що дозволяють вибрати програми, які працюють з усіма серверами.
3. Скласти запити, що дозволяють вибрати філії, які не мають жодного клієнта.
4. Скласти запити, що дозволяють вибрати філії, з якими не працює жоден замовник.
ВАРІАНТ 6.
1. Побудувати відношення, яке дає список абітурієнтів, які здавали іспити тільки один раз і були зараховані до ВНЗ.
2. Скласти запити, що дозволяють вибрати відділи, співробітники яких не працюють ні з одним файлом. Тобто відділи, в яких немає жодного співробітника, який працює з яким-небудь файлом.
3. Скласти запити, що дозволяють вибрати філії, які мають клієнтів із залишком на рахунку 0 (нуль).
4. Скласти запити, що дозволяють вибрати замовників, які працюють тільки з філіями, розташованими в тій же країні, що і замовник.
ВАРІАНТ 7.
1. Побудувати відношення, яке дає список абітурієнтів, які поступили до ВНЗ тільки після другої спроби.
2. Скласти запити, що дозволяють вибрати відділи, співробітники яких працюють з усіма серверами.
3. Скласти запити, що дозволяють вибрати філії, у яких є клієнти з кредитом, що перевищує залишок на рахунку в 2 рази.
4. Скласти запити, що дозволяють вибрати замовників, які працюють з усіма філіями фірми, але купують тільки один товар.
ВАРІАНТ 8.
1. Побудувати відношення, яке дає список абітурієнтів, які здавали лише один раз і не були зараховані.
2. Скласти запити, що дозволяють вибрати сервери, з якими працюють співробітники тільки одного відділу.
3. Скласти запити, що дозволяють вибрати філії, клієнти яких мають рахунки із залишком, що перевищує $ 1000.
4. Скласти запити,
що дозволяють вибрати замовників, які
купують всі товари, представлені у
відношенні
.
ВАРІАНТ 9.
1. Побудувати відношення, яке дає список абітурієнтів, які здавали іспити два рази і не були зараховані.
2. Скласти запити, що дозволяють вибрати файли, які мають декількох користувачів з різних відділів.
3. Скласти запити, що дозволяють вибрати клієнтів, які мають рахунки у всіх філіях даного банку.
4. Скласти запити, що дозволяють вибрати замовників, які працюють тільки з філіями, розташованими в тій же країні, що і замовник.
ВАРІАНТ 10.
1. Побудувати відношення, яке дає список абітурієнтів, які здавали іспити тільки один раз і були зараховані до ВНЗ.
2. Скласти запити, що дозволяють вибрати файли, з якими працюють співробітники всіх відділів.
3. Скласти запити, що дозволяють вибрати клієнтів, які мають тільки по одному рахунку в різних філіях банку. Тобто в загальному у цих клієнтів може бути декілька рахунків, але в одній філії не більше одного рахунку.
4. Скласти запити, що дозволяють вибрати філії фірми, які торгують всіма товарами.