Выборка (ограничение, селекция) 


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



ЗНАЕТЕ ЛИ ВЫ?

Выборка (ограничение, селекция)



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

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

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

,

или

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

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

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

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

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

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

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

Проекция

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

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

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

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

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

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

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

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

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

 

Реляционные операции над отношениями. Соединение, деление.

Соединение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Деление

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 283; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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