где
- один из операторов сравнения (
и т.д.), а
и
- атрибуты отношения
или скалярные значения.
Такие выборки называются
- выборки (тэта-выборки)
или
-ограничения,
-селекции.
Синтаксис операции выборки:
, или
Пример. Пусть дано отношение
с информацией о сотрудниках:
Отношение A
|
Табельный номер |
Фамилия |
Зарплата |
|
1 |
Иванов |
1000 |
|
2 |
Петров |
2000 |
|
3 |
Сидоров |
3000 |
Результат выборки
будет иметь вид:
Отношение A WHERE Зарплата<3000
|
Табельный номерФамилияЗарплата |
|
|
|
1 |
Иванов |
1000 |
|
2 |
Петров |
2000 |
Смысл операции выборки очевиден - выбрать кортежи отношения, удовлетворяющие некоторому условию. Таким образом, операция выборки дает "горизонтальный срез" отношения по некоторому условию.
Проекцией отношения
по атрибутам
, где каждый из атрибутов принадлежит
отношению
, называется отношение с заголовком
и телом, содержащим множество
кортежей вида
, таких, для которых в отношении
найдутся кортежи со значением
атрибута
равным
, значением атрибута
равным
, …, значением атрибута
равным
.
Синтаксис операции проекции:
Операция проекции дает "вертикальный срез" отношения, в котором удалены все возникшие при таком срезе дубликаты кортежей.
Пример. Пусть дано отношение
с информацией о поставщиках,
включающих наименование и месторасположение:
Отношение A (Поставщики)
|
Номер поставщика |
Наименование поставщика |
Город поставщика |
|
1 |
Иванов |
Уфа |
|
2 |
Петров |
Москва |
|
3 |
Сидоров |
Москва |
|
4 |
Сидоров |
Челябинск |
Проекция
будет иметь вид:
Отношение A[Город поставщика]
|
Город поставщика |
|
Уфа |
|
Москва |
|
Челябинск |
Соединением отношений
и
по условию
называется отношение
представляет собой логическое
выражение, в которое могут входить атрибуты отношений
и
и (или) скалярные выражения.
Таким образом, операция соединения есть результат
последовательного применения операций декартового произведения и выборки. Если
в отношениях
и
имеются атрибуты с одинаковыми наименованиями, то перед
выполнением соединения такие атрибуты необходимо переименовать.
Пусть даны отношения
и
, причем атрибуты
- общие для двух отношений. Делением
отношений
на
называется отношение с заголовком
и телом, содержащим множество
кортежей
, таких, что для всех кортежей
в отношении
найдется кортеж
.
Отношение
выступает в роли делимого,
отношение
выступает в роли делителя. Деление отношений
аналогично делению чисел с остатком.
Синтаксис операции деления:
Типичные запросы, реализуемые с помощью операции деления, обычно в своей формулировке имеют слово "все" - "какие поставщики поставляют все детали?".
Пример. В примере с поставщиками, деталями и поставками ответим на вопрос, "какие поставщики поставляют все детали?".
В качестве делимого возьмем проекцию
, содержащую номера поставщиков и
номера поставляемых ими деталей:
Проекция X=PD[PNUM,DNUM]
|
Номер поставщика PNUM |
Номер детали DNUM |
|
1 |
1 |
|
1 |
2 |
|
1 |
3 |
|
2 |
1 |
|
2 |
2 |
|
3 |
1 |
В качестве делителя возьмем проекцию
, содержащую список номеров всех деталей
(не обязательно поставляемых кем-либо):
Таблица 22 Проекция Y=D[DNUM]
|
Номер детали DNUM |
|
1 |
|
2 |
|
3 |
Деление
дает список номеров поставщиков,
поставляющих все детали:
Отношение X DEVIDEBY Y
|
Номер поставщика PNUM |
|
1 |
Оказалось, что только поставщик с номером 1 поставляет все детали.
Список использованной литературы
1. Пушников А.Ю. Введение в системы управления базами данных. Часть 1. Реляционная модель данных: Учебное пособие/Изд-е Башкирского ун-та. - Уфа, 1999. - 108 с. - ISBN 5-7477-0350-1.
2. Свободная энциклопедия "Википедия", ru.wikipedia.org/wiki/Реляционная_алгебра
. Информационный портал "habrahabr", http://habrahabr.ru/post/145381/
| 05_Холера |
| 10.4. Исследование регистров |
| 1112 |
| 12 |
| 1285 |
| 1560 |
| 1568 |
| 1604248853606027 |
| 1673 |
| 17 |