![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Нагадаємо, що кортеж у SQL – це список скалярних значень у круглих дужках, як-от
(123, ‘foo’) – компонентами кортежу є константи,
(name, address, netWorth) - компонентами кортежу є атрибути,
(name, address, 10000000) – мішаний кортеж у якому і константи, і атрибути.
Якщо кортеж t має компоненти, що відповідають атрибутам відношення R, розташованими в однаковому порядку, припустимо співставляти t та R за допомогою операторів EXISTS, IN, ALL, ANY, розглянутих вище. Наприклад:
t IN R | у R існує хоча б один кортеж, що співпадає з t |
t<>ANY R | у R існує хоча б один кортеж, відмінний від t |
Приклад 5.8. Пошук імен продюсерів кінофільмів, у яких знімався конкретний актор. Реляційна схема БД наступна:
а ось запит, який містить 2 вкладені підзапити:
Рис.5.15. Запит з укладеними підзапитами для визначення продюсерів, які співпрацювали з актором
Запит, який містить ієрархію вкладених запитів, слід аналізувати „зсередині назовні”.
Рис.5.16. Екземпляр відношення, що повертає “середній” підзапит прикладу 5.2.
Запит з підзапитами з цього прикладу припускає представлення у вигляді „плаского” запиту „selet-from-where”, у реченні FROM якого перелічені всі відношення, згадані в запиті прикладу 5.2 і його підзапитах. Зв’язки IN заміняються умовами рівності, які розміщуються в реченні WHERE.
Рис.5.17. Запит без підзапитів для рішення задачі прикладу 5.2.
Але у останнього рішення є особливість: якщо продюсер кілька разів співпрацював з актором, у відношенні-результаті буде кілька кортежів для цього продюсера.
Дата публикования: 2014-12-28; Прочитано: 169 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!