Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Самостійна практична робота.doc
Скачиваний:
10
Добавлен:
26.11.2019
Размер:
757.76 Кб
Скачать

ВСП Агротехнічний коледж УНУС

Методичні рекомендації Умань

Тема Виконання операцій у реляційних базах даних

Організація даних

Концепції реляційної моделі даних зв'язані з ім'ям відомого спеціаліста в області систем баз даних Е. Кодда. Саме тому реляційну модель даних в літературі часто називають моделлю Кодда.

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

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

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

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

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

Реляційна алгебра . Формальною основою реляційної моделі БД є реляційна алгебра, заснована на теорії множин. Вона розглядає спеціальні операції над відношеннями і реляційне числення, що базується на математичній логіці.

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

Операції над даними в реляційних бд

До операцій над даними відносять дві групи операцій: операції оновлення та операції обробки відношень.

Операції оновлення БД поділяються на три групи: запам'ятовування нових кортежів (операція включення), знищення непотрібних кортежів (операція знищити), корегування значень атрибутів існуючих кортежів (операція оновлення).

Операція ВКЛЮЧИТИ – потребує знання імені відношення та попереднього формування значень атрибутів нового кортежу. Обов'язково повинен бути заданий ключ кортежу. Включення не буде виконано, якщо ключ має не унікальне значення.

Операція ЗНИЩИТИ – також потребує знати ім'я відношення, а також ідентифікацію кортежу або групи кортежів, які потребують знищення.

Операція ОНОВЛЕННЯ – виконується для названого відношення і може корегувати як один, так і декілька кортежів відношення. Наприклад, можна змінити оклад у одного співробітника, при цьому корегується лише один кортеж. Якщо ж необхідно збільшити оклади на однакову суму всім працівникам, то однією операцією оновлення буде від кореговано одразу багато кортежів.

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

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

Одна з основних переваг реляційних баз даних – це можливість отримувати дані з будь-якої множини відношень (реляційних таблиць) користуючись комбінацією зі всього восьми простих операцій обробки даних. Всі операції обробки даних можна поділити на дві групи: основні та додаткові(похідні). До основних відносять таки операції: SELECT/RESTRSCT, PROJECT, UNION, TIMES/PRODACT, MINUS До похідних операцій - JOIN, INTERSECTION, DIVIDE.

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

Приклад: SELECT (Перевезення)Дата<=21.07.05 AND (Код водія=11 OR Код водія=22)

Перевезення

Дата

Код водія

Кількість ходок

Обсяг перевезених тонн

20.07.08

11

5

27

20.07.08

22

6

36

20.07.08

33

6

42

21.07.08

11

7

56

21.07.08

33

5

41

22.07.08

22

8

60

Результатом цієї операції буде таблиця, що складається з трьох рядків (Перевезення_вибірка)

Перевезення_вибірка

Дата

Код водія

Кількість ходок

Обсяг перевезених тонн

20.07.08

11

5

27

20.07.08

22

6

36

21.07.08

11

7

56

Операція PROJECT (Проекція). На вході операції використовується одне відношення. Результуюче відношення включає підмножини атрибутів вихідного. Кожному кортежу вихідного відношення відповідає такий кортеж у результуючому відношенні, що значення однакових атрибутів цих двох кортежів збігаються. Але при цьому в результуючому відношенні кортежі-дублікати усуваються.

Приклад: а) PROJECT (Перевезення)Дата, Код водія; б) PROJECT (Перевезення)Дата.

Результатом операції а) буде таблиця, що складається з двох стовпчиків шести рядків(Проекція_ а).

Проекція_а

Проекція_б

Дата

Код водія

Дата

20.07.08

11

20.07.08

20.07.08

22

21.07.08

20.07.08

33

22.07.08

21.07.08

11

21.07.08

33

22.07.08

22

Після виконання операції б) отримаємо таблицю Проекція_б.

Операція UNION (Об'єднання) (C=AУ). При виконанні операції об'єднання двох односхемних відношень А і В буде отримане відношення С (побудоване за тією ж схемою), що включає всі кортежі, що входять хоча б в одне з тих відношень, що беруть участь в операції.

Приклад: (Іспит) UNION (Перездача)

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

Іспит

Перездача

Прізвище студента

Предмет

Оцінка

Прізвище студента

Предмет

Оцінка

Асауленко

Історія

3

Асауленко

Історія

4

Бабієвський

Історія

4

Петренко

Історія

2

Петренко

Історія

2

Горбунко

Історія

5

Сесія

Прізвище студента

Предмет

Оцінка

Асауленко

Історія

3

Бабієвський

Історія

4

Петренко

Історія

2

Горбунко

Історія

5

Асауленко

Історія

4

Операція MINUS (Віднімання). (C=A-В). Всі три відношення будуються по одній схемі. Відношення С є різницею двох відношень, включає всі кортежі, що входять у відношення А і одночасно такі, що жодний із них не входить у відношення В.

Приклад: (Іспит) MINUS (Заборгованість)

Результатом операції буде таблиця, що містить кортежі з прізвищами студентів, які здали іспити успішно (Успішність).

Іспит

Заборгованість

Прізвище студента

Предмет

Оцінка

Прізвище студента

Предмет

Оцінка

Асауленко

Історія

3

Петренко

Математика

2

Бабієвський

Історія

4

Петренко

Історія

2

Петренко

Історія

2

Горбунко

Історія

5

Успішність

Прізвище студента

Предмет

Оцінка

Асауленко

Історія

3

Бабієвський

Історія

4

Горбунко

Історія

5

Операція TIMES/PRODACT (Множення) (C=AxВ). Відношення А і В можуть бути побудовані по різних схемах, а відношення С включає всі атрибути відношень А і В. При знаходженні прямого добутку двох відношень утворюється відношення, кортежі якого є сполученням кортежів першого і другого відношення.

Приклад: (Студенти) TIMES (Предмети)

Результатом операції буде таблиця (Студенти/Предмети).

Студенти

Предмети

Група

Прізвище студента

Предмет

Прізвище викладача

10м

Асауленко

Математика

Горбенко

10м

Бабієвський

Історія

Ящук

11м

Петренко

11м

Горбунко

Студенти/Предмети

Група

Прізвище студента

Предмет

Прізвище викладача

10м

Асауленко

Математика

Горбенко

10м

Асауленко

Історія

Ящук

10м

Бабієвський

Математика

Горбенко

10м

Бабієвський

Історія

Ящук

11м

Петренко

Математика

Горбенко

11м

Петренко

Історія

Ящук

11м

Горбунко

Математика

Горбенко

11м

Горбунко

Історія

Ящук

Операція INTERSECTION (Перетин) (C=AУ). Припускає на вході два односхемних відношення А і В. На виході створюється відношення С по тій же схемі, яке містить тільки ті кортежі відношення А, що є у відношенні В.

Приклад: (Іспит) INTERSECTION (Заборгованість)

Результатом операції буде таблиця, що містить кортежі з прізвищами студентів, які мають заборгованість по Історії (Боржники).

Іспит

Заборгованість

Прізвище студента

Предмет

Оцінка

Прізвище студента

Предмет

Оцінка

Асауленко

Історія

3

Петренко

Математика

2

Бабієвський

Історія

4

Петренко

Історія

2

Петренко

Історія

2

Горбунко

Історія

5

Боржники

Прізвище студента

Предмет

Оцінка

Петренко

Історія

2

Операція JOIN (З'єднання). На вході операції використовуються два відношення. При з'єднанні цих відношень по деякому атрибуту утвориться результуюче відношення, кортежі якого є сполученням кортежів першого і другого відношень, що задовольняють заранній умові. Ця операція є різновидністю операції множення відношень. Найпоширенішою формою з'єднання є природне з'єднання, коли два відношення мають спільний атрибут і результат містить лише рядки в яких значення спільного атрибута співпадає. Це стандартна форма операції JOIN, так зване внутрішнє з'єднання. Існує також інша форма з'єднання – зовнішнє з'єднання. У випадку зовнішнього з'єднання кортеж, який неможливо з'єднати з кортежем відповідної таблиці, буде додано до результатної таблиці, а для "приєднаних" атрибутів значення визначені не будуть (Null).

Приклад:

а) JOIN(NATURAL)(Тестування, Викладачі);

б) JOIN(NATURAL)(Тестування, Викладачі)Оцінка=5.

Тестування

Викладачі

Прізвище студента

Предмет

Оцінка

Предмет

Прізвище викладача

Асауленко

Історія

3

Математика

Горбенко

Бабієвський

Історія

5

Історія

Ящук

Асауленко

Математика

4

Бабієвський

Математика

5

Асауленко

Хімія

4

Бабієвський

Хімія

3

Результатом операції а) буде таблиця (Студент/Викладач). Об'єднання двох таблиць здійснювалося за спільним атрибутом Предмет. Кортежі з даними про предмет "Хімія" не ввійшли у результуюче відношення, тому що потрібно було виконати внутрішнє з'єднання.

Студент/Викладач

Прізвище студента

Предмет

Оцінка

Прізвище викладача

Асауленко

Історія

3

Ящук

Бабієвський

Історія

4

Ящук

Асауленко

Математика

3

Горбенко

Бабієвський

Математика

5

Горбенко

Результатом операції б) буде таблиця (Студенти-відмінники). Об'єднання двох таблиць здійснювалося за спільним атрибутом Предмет. Кортежі з даними про предмет "Хімія" не ввійшли у результуюче відношення, тому що потрібно було виконати внутрішнє з'єднання. Кортежі з оцінками "3” та "4”також не ввійшли у результуюче відношення, тому що не відповідали умові вибірки кортежів "Оцінка = 5".