Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

FROM T1, t2 та FROM T1 cross JOIN t2




7.5.2. Операція об’єднання

Об'єднання відношень R і S з кортежами I і Jвідповідно можна одержати в результаті їхньої конкатенації з утворенням одного відношення з максимальною кількістю кортежів (I+J), якщо кортежі-дублікати виключені. При цьому відношення R і S повинні бути сумісні по об'єднанню.


7.5.3. Операція різниці.


Різниця двох відношень R - S складається з кортежів, що присутні у відношенні R, але відсутні у відношенні S. Причому відношення R і S повинні бути сумісні по об'єднанню.

7.5.4.Операції з'єднання

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

При з'єднанні двох відношень по деякій умові утвориться результуюче відношення, кортежі якого є конкатенацією кортежів першого і другого відношень і задовольняють цій умові

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

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

Існує багато різних схем з’єднання, і ви можете створити власні, але найбільш цікаві з огляду на практичне застосуваня будуть наступні:

Формат речень FROM та WHERE при неявному з’єднані таблиць має слідуючий вигляд:

FROM T1[псевдонім1], T2[псевдонім2]…

WHERE < умова з’єднаня > [ AND <умова пошуку>]…, де умова з’єднаня включає операцію порівняння для пари стовпців Т1 та Т2.

7.5.4.1.З'єднанняпо еквівалентності- еквіз’єднання .

Під еквіз’єднанням розуміють декартовий добуток таблиць для якого встановлюється відповідність між стовпцями з’єднуваних таблиць яка має зміст на основі рівності між стовпцями цих таблиць.

Визначає відношення, яке вміщує кортежі з декартового добутку відношень R і S, що задовольняє предикату F (предикат виконує порівняння тільки на рівність)

7.5.4.2.Природне з'єднання (natural join).

Природним з'єднанням (екві-з’єднання) називається з'єднання по еквівалентності двох відношень R і S, виконані по всіх загальних атрибутах Х, з результатів якого виключається по одному екземпляру кожного загального атрибута.

SELECT T1.*,T2.* FROM T1 NATURAL JOIN; або

SELECT T1.P1,T1.P2,…,T2.P7 FROM T1 JOIN (джойн ) T2 WHERE T1.P1 = T2.P1


 

7.5.4.3.Напівз'єднання (semi-join).


Вихідні відношення:

Результуюче відношення

 

7.5.4.4. Тета-з'єднання (O-join).

Операція тета-з'єднання визначає відношення, що містить кортежі з декартового добутку відношень R і S, що задовольняють предикатові F. (Предикат F є логічним виразом, що використовує оператори порівняння (<, <=, >, >=, = або ~=).

Отже особливістю тета-з'єднання є зєднання двох таблиць на основі умови, що відрізняється від рівності.

SELECT A,B,C FROM T1,T2 WHERE (веа) T1.P1 < T2.P1

7.5.4.5.Зовнішнє з'єднання (outer join).

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

7.5.4.5.1. Ліве відкрите зовнішнє з'єднання.

Лівим зовнішнім з'єднанням називається з'єднання, при якому кортежі відношення R, що не мають співпадаючих значень у загальних стовпцях відносини S, також включаються в результуюче відношення.

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

FROM T1 LEFT JOIN T2 ON T1.P1 = T2.P1


Вихідні відношення R і S:

Результуюче відношення

7.5.4.5.2. Праве відкрите зовнішнє з'єднання.

FROM T1 RIGHT JOIN T2 ON T1.P1 = T2.P1 –праве відкрите

Правим зовнішнім з'єднанням називається з'єднання, при якому кортежі відношення R, що не мають співпадаючих значень у загальних стовпцях відносини S, також включаються в результуюче відношення.

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

 

7.5.4.5.2. Повне відкрите зовнішнє з'єднання.

Це комбінація «лівого» та «правого» з'єднаня таблиць.

FROM T1 FULL JOIN T2 ON T1.P1 = T2.P1

 

Якщо не вказано тип з'єднаня в речені JOIN, то по умовчаню приймається за INNER.

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

 

7.5.5.Операція перетинання

Операція перетинання виконується над двома логічно поєднуваними відношеннями R та S з ідентичним набором атрибутів – A1,A2,... An.

Її відносять до операцій, що реалізують внутрішнє з’єднання.

Вона визначає відношення, що містить кортежі, що присутні як у відношенні R, так і у відношенні S.

SELECT T1.A1, T1.A2 FROM T1 INNER JOIN T2 ON T1.PK1 = T2.PK1;


Результат перетинання має той же склад атрибутів, як у вихідних відношенях

7.5.6.Операція ділення

Ця операція найменш очевидна зі всіх операцій реляційної алгебри.

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

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

Результуючі кортежі формуються для однакових значень загальних атрибутів (ключів зв'язку). При цьому кортежі-дублікати з RD виключаються.

SELECT DISTINCT T1.A FROM T1 INNER JOIN T2 ON T1.B = T2.B;

Лекція 10. Вступ до SQL.

Основні поняття SQL. Мова визначення даних — DDL. Запити на читання даних. Склеювання таблиць. Умови відбору рядків таблиць. Запис SQL-операторів. Маніпулювання даними. Прості запити. Сортування результатів. Агрегатні функції. Запити з групуванням. Складні запити. Підзапити. Ключові слова ANY і ALL. Багатотабличні запити. Ключові слова EXISTS і NOT EXIST. Комбінування результуючих таблиць (операції UNION, INTERSECT і EXCEPT). Зміна вмісту бази даних. Запити на оновлення даних.

 

10.1. Вступ Основні поняття SQL.. Історія розвитку

До появи SQL в СУБД (незалежно від того, на якій моделі вони грунтувалися) доводилося підтримувати принаймні три мови, які за звичай мали мало спільного:

- мова визначення даних (ЯОД), служить для управління специфікаціями структури(або схеми) БД;

- мова маніпулювання даними (ЯМД), що дозволяє створювати прикладні програми, які взаємодіють з БД;

- мова адміністрування БД (ЯАДБ), за допомогою якого можна було виконувати службові дії (наприклад, змінювати структуру БД або проводити її налаштування з метою підвищення ефективності).

 

Поява в 1974 році мови SQL (Structured Query Language – мови структурованих запитів) дозволила вирішувати всі ці задачі.

Ще одна її перевага полягала в наявністі міжнародних стандартів.

Перший міжнародний стандарт був прийнятий в 1989 р., і відповідна версія мови називається SQL-89. Цей стандарт повністю підтримується практично в усіх сучасних комерційних реляційних СУБД (наприклад, у Informix, Sybase, Ingres, DB2 і т.д.).

Разом з тим стандарт SQL-89 забезпечив:

-чітку стандартизацію синтаксису і семантики операторів вибірки і маніпулювання даними.

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

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

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

Тому в березні 1992 р. був затверджений новий стандарт версії SQL-92. Він охопив практично всі необхідні для реалізації аспекти:

-маніпулювання схемою БД;

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

-підключення до БД;

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

Загальною точкою зору провідних виробників СУБД є те, що майбутні продукти, маючи більш розвинені можливості повинні бути сумісні з попередніми версіями. Саме в цьому ключі ведеться робота над наступним стандартом SQL-3, а також введення в нього:

-більш розвинених засобів визначення таблиць;

-підтримки повного механізму тригерів.

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

 




Поделиться с друзьями:


Дата добавления: 2014-10-15; Просмотров: 701; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.