Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Теоретико-множественные операторы

Поиск

Объединение

Объединением двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и , и телом, состоящим из кортежей, принадлежащих или , или , или обоим отношениям.

Синтаксис операции объединения:

Замечание. Объединение, как и любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение , и отношение , то в объединение он входит один раз.

Пример 2. Пусть даны два отношения и с информацией о сотрудниках:

Табельный номер Фамилия Зарплата
1 Иванов  
2 Петров  
3 Сидоров  

 

Табельный номер Фамилия Зарплата
1 Иванов  
2 Пушников  
4 Сидоров  

 

Табельный номер Фамилия Зарплата
  Иванов  
  Петров  
  Сидоров  
  Пушников  
  Сидоров  

Таблица 1 Отношение A Таблица 2 Отношение B

Объединение отношений и будет иметь вид:

Таблица 3 Отношение A UNION B

Пересечение

Определение 3. Пересечением двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и , и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям и .

Синтаксис операции пересечения:

Пример 3. Для тех же отношений и , что и в предыдущем примере пересечение имеет вид:

Табельный номер Фамилия Зарплата
  Иванов  

Таблица 4 Отношение A INTERSECT B

Вычитание

Определение 4. Вычитанием двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и , и телом, состоящим из кортежей, принадлежащих отношению и не принадлежащих отношению .

Синтаксис операции вычитания:

Пример 4. Для тех же отношений и , что и в предыдущем примере вычитание имеет вид:

Табельный номер Фамилия Зарплата
2 Петров  
3 Сидоров  

Таблица 5 Отношение A MINUS B

Декартово произведение

Определение 5. Декартовым произведением двух отношений и называется отношение, заголовок которого является сцеплением заголовков отношений и :

,

а тело состоит из кортежей, являющихся сцеплением кортежей отношений и :

,

таких, что , .

Синтаксис операции декартового произведения:

Пример 5. Пусть даны два отношения и с информацией о поставщиках и деталях:

Номер поставщика Наименование поставщика
1 Иванов
2 Петров
3 Сидоров

Таблица 6 Отношение A (Поставщики)

Номер детали Наименование детали
1 Болт
2 Гайка
3 Винт

Таблица 7 Отношение B (Детали)

Декартово произведение отношений и будет иметь вид:

Номер поставщика Наименование поставщика Номер детали Наименование детали
  Иванов   Болт
  Иванов   Гайка
  Иванов   Винт
  Петров   Болт
  Петров   Гайка
  Петров   Винт
  Сидоров   Болт
  Сидоров   Гайка
  Сидоров   Винт

Таблица 8 Отношение A TIMES B

№20 Смотри № 18, 19

Специальные реляционные операторы:

¾ Выборка,

¾ Проекция,

¾ Соединение(Общая операция соединения, -соединение (тэта-соединение), Экви-соединение,Естественное соединение)

¾ Деление,

Выборкой (ограничением, селекцией) на отношении с условием называется отношение с тем же заголовком, что и у отношения , и телом, состоящем из кортежей, значения атрибутов которых при подстановке в условие дают значение ИСТИНА. представляет собой логическое выражение, в которое могут входить атрибуты отношения и (или) скалярные выражения.

В простейшем случае условие имеет вид , где - один из операторов сравнения ( и т.д.), а и - атрибуты отношения или скалярные значения. Такие выборки называются - выборки (тэта-выборки) или - ограничения, - селекции.

Синтаксис операции выборки:

, или

Пример 6. Пусть дано отношение с информацией о сотрудниках:

Табельный номер Фамилия Зарплата
1 Иванов  
2 Петров  
3 Сидоров  

Таблица 9 Отношение A

Результат выборки будет иметь вид:

Табельный номер Фамилия Зарплата
1 Иванов  
2 Петров  

Таблица 10 Отношение A WHERE Зарплата<3000

Смысл операции выборки очевиден - выбрать кортежи отношения, удовлетворяющие некоторому условию. Таким образом, операция выборки дает " горизонтальный срез " отношения по некоторому условию.

Проекция

Определение 7. Проекцией отношения по атрибутам , где каждый из атрибутов принадлежит отношению , называется отношение с заголовком и телом, содержащим множество кортежей вида , таких, для которых в отношении найдутся кортежи со значением атрибута равным , значением атрибута равным , …, значением атрибута равным .

Синтаксис операции проекции:

Пример 7. Пусть дано отношение с информацией о поставщиках, включающих наименование и месторасположение:

Номер поставщика Наименование поставщика Город поставщика
1 Иванов Уфа
2 Петров Москва
3 Сидоров Москва
4 Сидоров Челябинск

Таблица 11 Отношение A (Поставщики)

Проекция будет иметь вид:

Город поставщика
Уфа
Москва
Челябинск

Таблица 12 Отношение A[Город поставщика]

 

№21 Смотри №20

Деление

Определение 11. Пусть даны отношения и , причем атрибуты - общие для двух отношений. Делением отношений на называется отношение с заголовком и телом, содержащим множество кортежей , таких, что для всех кортежей в отношении найдется кортеж .

Отношение выступает в роли делимого, отношение выступает в роли делителя. Деление отношений аналогично делению чисел с остатком.

Синтаксис операции деления:

Пример 11. В примере с поставщиками, деталями и поставками ответим на вопрос, "какие поставщики поставляют все детали?".

В качестве делимого возьмем проекцию , содержащую номера поставщиков и номера поставляемых ими деталей:

Номер поставщика PNUM Номер детали DNUM
   
   
   
   
   
   

Таблица 21 Проекция X=PD[PNUM,DNUM]

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

Номер детали DNUM
 
 
 

Таблица 22 Проекция Y=D[DNUM]

Деление дает список номеров поставщиков, поставляющих все детали:

Номер поставщика PNUM
 

Таблица 23 Отношение X DEVIDEBY Y

Оказалось, что только поставщик с номером 1 поставляет все детали.

Операция соединения отношений, наряду с операциями выборки и проекции, является одной из наиболее важных реляционных операций.

Обычно рассматривается несколько разновидностей операции соединения:

· Общая операция соединения

· -соединение (тэта-соединение)

· Экви-соединение

· Естественное соединение

Наиболее важным из этих частных случаев является операция естественного соединения. Все разновидности соединения являются частными случаями общей операции соединения.

Общая операция соединения

Определение 8. Соединением отношений и по условию называется отношение

представляет собой логическое выражение, в которое могут входить атрибуты отношений и и (или) скалярные выражения.

Таким образом, операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях и имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.

Тэта-соединение

Определение 9. Пусть отношение содержит атрибут , отношение содержит атрибут , а - один из операторов сравнения ( и т.д.). Тогда - соединением отношения по атрибуту с отношением по атрибуту называют отношение

Это частный случай операции общего соединения.

Иногда, для операции -соединения применяют следующий, более короткий синтаксис:

Пример 8. Рассмотрим некоторую компанию, в которой хранятся данные о поставщиках и поставляемых деталях. Пусть поставщикам и деталям присвоен некий статус. Пусть бизнес компании организован таким образом, что поставщики имеют право поставлять только те детали, статус которых не выше статуса поставщика (смысл этого может быть в том, что хороший поставщик с высоким статусом может поставлять больше разновидностей деталей, а плохой поставщик с низким статусом может поставлять только ограниченный список деталей, важность которых (статус детали) не очень высока).

Номер поставщика Наименование поставщика X (Статус поставщика)
1 Иванов  
2 Петров  
3 Сидоров  

Таблица 13 Отношение A (Поставщики)

Номер детали Наименование детали Y (Статус детали)
1 Болт  
2 Гайка  
3 Винт  

Таблица 14 Отношение B (Детали)

Ответ на вопрос "какие поставщики имеют право поставлять какие детали?" дает -соединение :

Номер поставщика Наименование поставщика X (Статус поставщика) Номер детали Наименование детали Y (Статус детали)
  Иванов     Болт  
  Иванов     Гайка  
  Иванов     Винт  
  Петров     Винт  
  Сидоров     Гайка  
  Сидоров     Винт  

Таблица 15 Отношение "Какие поставщики поставляют какие детали"

Экви-соединение

Наиболее важным частным случаем -соединения является случай, когда есть просто равенство.

Синтаксис экви-соединения:

Естественное соединение

Определение 10. Пусть даны отношения и , имеющие одинаковые атрибуты (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах).

Тогда естественным соединением отношений и называется отношение с заголовком и телом, содержащим множество кортежей , таких, что и .

Естественное соединение настолько важно, что для него используют специальный синтаксис:

Пример 10. В предыдущем примере ответ на вопрос "какие детали поставляются поставщиками", более просто записывается в виде естественного соединения трех отношений (для удобства просмотра порядок атрибутов изменен, это является допустимым по свойствам отношений):

Номер поставщика PNUM Наименование поставщика PNAME Номер детали DNUM Наименование детали DNAME Поставляемое количество VOLUME
  Иванов   Болт  
  Иванов   Гайка  
  Иванов   Винт  
  Петров   Болт  
  Петров   Гайка  
  Сидоров   Болт  

Таблица 20 Отношение P JOIN PD JOIN D

№22

Язык SQL предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление), а также некоторых сопутствующих операций. SQL является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т.п. В связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД (например, FoxPro СУБД Visual FoxPro, ObjectPAL СУБД Paradox, Visual Basic for Applications СУБД Access).

В современных СУБД с интерактивным интерфейсом можно создавать запросы, используя другие средства, например QBE. Однако применение SQL зачастую позволяет повысить эффективность обработки данных в базе. Например, при подготовке запроса в среде Access можно перейти из окна Конструктора запросов (формулировки запроса по образцу на языке QBE) в окно с эквивалентным оператором SQL. Подготовку нового запроса путем редактирования уже имеющегося в ряде случае проще выполнить путем изменения оператора SQL. В различных СУБД состав операторов SQL может несколько отличаться.

Язык SQL не обладает функциями полноценного языка разработки, а

ориентирован на доступ к данным, поэтому его включают в состав

средств разработки программ. В этом случае его называют встроенным SQL. Стандарт языка SQL поддерживают современные реализации следующих языков программирования: PL/1, Ada, С, COBOL, Fortran, MUMPS и Pascal.



Поделиться:


Последнее изменение этой страницы: 2016-04-19; просмотров: 241; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.159.237 (0.007 с.)