Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.Б.Д / лекции / 6БД.doc
Скачиваний:
34
Добавлен:
30.05.2020
Размер:
1.24 Mб
Скачать

6. Лекція

ТЕМА: З'єднання і теоретико-множинні операції над відношеннями:

МЕТА: Розглянути спеціальні операції над відношеннями: вибірка, проекція, декартовий добуток, з'єднання. Навести різні типи з'єднань: з'єднання по еквівалентності, природне, зовнішнє з'єднання, напівз'єднання. Операції над відношеннями проілюструвати на прикладах оператора SELECT. Розглянути приклади вибору даних з декількох таблиць. Привести об'єднання результатів декількох запитів.

ПЛАН

1 Операція вибірки

2 Операція проекції

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

4 Операція з'єднання по двох відношеннях (таблицям)

4.1 Операція тета-з'єднання

4.2 Природне з'єднання

4.3 Ліве і праве зовнішнє з'єднання

4.4 Напівз'єднання

5 Операція об'єднання

6 Операція перетину

7 Операція різниці

8 Операція ділення відношень

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

Для ілюстрації теоретико-множинних операцій над відношеннями введемо абстрактні відношення (таблиці) з деякими атрибутами (полями).

Відношення R

R.a1 R.a2

А 1

А 2

B 1

B 3

B 4

CREATE TABLE R

(a1 CHAR(1), a2 INT, PRIMARY KEY(a1,a2))

Відношення S

S.b1 S.b2

1 h

2 g

3 h

CREATE TABLE S

(b1 INT PRIMARY KEY, b2 CHAR(1))

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

1 Операція вибірки

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

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

або

Приклад 6.1. Операція вибірки в SQL.

Вибірка записується таким чином:

SELECT a1, a2

FROM R

WHERE a2=1

Приклад 6.1. Операція вибірки в SQL.

2 Операція проекції

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

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

Приклад 6.2. Операція проекції в SQL.

Проекціяя записується таким чином:

SELECT DISTINCT b2

FROM S

Приклад 6.2. Операція проекції в SQL.

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

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

Декартовий добуток RxS двох відношень (двох таблиць) визначає нове відношення - результат конкатенації (тобто зчеплення) кожного кортежу (кожного запису) з відношення R з кожним кортежем (кожним записом) з відношення S .

RxS={(а, 1, 1, h), (а, 2, 1, h) (b, 1, 1, h) ... }

SELECT R.a1, R.a2, S.b1, S.b2

FROM R, S

Приклад 6.3. Декартовий добуток відношень в SQL.

Результат декартова добутка двох відношень показаний в таблиці.

Таблиця 6.1. R x S

R.a1 R.a2 S.b1 S.b2

а 1 1 h

а 1 2 g

а 1 3 h

а 2 1 h

а 2 2 g

а 2 3 h

b 1 1 h

b 1 2 g

b 1 3 h

b 3 1 h

b 3 2 g

b 3 3 h

b 4 1 h

b 4 2 g

b 4 3 h

Якщо одне відношення має N записів і К полів, а інше M записів і L полів, то відношення з їх декартовим добутком міститиме NxM записів і K+L полів. Початкові відношення можуть містити поля з однаковими іменами, тоді імена полів міститимуть назви таблиць у вигляді префіксів для забезпечення унікальності імен полів у відношенні, одержаному як результат виконання декартова добутка.

Проте у такому вигляді (приклад 6.3.) відношення містить більше інформації, ніж звичайно необхідно користувачу. Як правило, користувачів цікавить лише деяка частина всіх комбінацій записів в декартовому добутку, що задовольняє деякій умові. Тому замість декартова добутку звичайно використовується одна з найважливіших операцій реляційної алгебри - операція з'єднання, яка є похідною від операції декартова добутку. З погляду ефективності реалізації в реляційних СУБД ця операція - одна з найважчих і часто входить до числа основних причин, що викликають властиві всім реляційним системам проблеми з продуктивністю.

4 Операція з'єднання по двох відношеннях (таблицям)

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

В мові SQL для завдання типу з'єднання таблиць в логічний набір записів, з якого вибиратиметься необхідна інформація, використовується операція JOIN в пропозиції FROM.

Формат операції:

FROM ім’я_таблиці_1 {INNER | LEFT | RIGHT} JOIN ім’я_таблиці_2

ON умова_з’єднання

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

тета-з'єднання ;

з'єднання по еквівалентності ;

природне з'єднання ;

зовнішнє з'єднання , ;

напівз'єднання .

Соседние файлы в папке лекции