- •Теоретические языки запросов в реляционных базах данных
- •Введение
- •Языки реляционной алгебры являются процедурными. Опе- раторы этой алгебры состоят из операндов, в
- •Языки исчислений, в отличие от
- •Реляционные таблицы для примеров
- •Таблица S
- •Таблица P
- •1. Реляционная алгебра
- •Перечисленный набор из 8 операций является избыточным. Минимально необходимый набор составляет 5 операций
- •С другой стороны указанных 8 опера- ций недостаточно для построения ре- альной СУБД
- •Операции реляционной алгебры могут
- •1.1. Объединение
- •Пример 1
- •1.2. Вычитание
- •1.3. Пересечение
- •1.4. Декартово произведение
- •Замечание 1
- •Пример 2
- •Замечание 2
- •1.5. Выборка (ограничение)
- •Пример 3
- •Пример 4
- •1.6. Проекция (PROJECT)
- •Дополнительные варианты записи операции проекции
- •Замечание 3
- •1.7. Деление
- •Результатом деления отношения R1на отношение R2 является отношение R с заголовком A и
- •Пример 5
- •Результатом деления отношения R1 на отношение R2 будет отношение с заголовком
- •1.8. Соединение
- •Уоперации соединения есть
- •1.8. 1. Естественное соединение
- •1)Берется декартово произведение
- •1.8. 2. Тета-соединение и эквисоединение
- •Замечание 4
- •1.8. 3. Внешнее соединение
- •Пример 6 (эквисоединение)
- •Результатом эквисоединения будет следующее отношение
- •Обзор дополнительных операций реляционной алгебры, предложенных Дейтом
- •В операции расширения имя нового атрибута не должно повторять имен имеющихся в данном
- •3Д. Операция подведения итогов
- •Результатом операции подведения итогов является отношение R с заголовком, состоящим из атрибутов списка,
- •Пример 6
- •4Д. Операция присваивания
- •5Д. Операция вставки
- •6Д. Операция обновления
- •7Д. Операция удаления 8Д. Операции реляционного сравнения
- •Замечание 5
- •-выражения можно заменять другими выражениями, получающи- мися с помощью тождественных преобразований;
- •2. Реляционное исчисление
- •Понятие реляционного исчисления, как
- •2.1.Исчисление кортежей
- •Все элементы списка должны быть сов- местимы по типу, то есть соответ- ствующие
- •Пример 1
- •Переменные SX и SPX в первых двух описаниях определены соответственно на отношениях S
- •Пример 2
- •Замечание
- •2.2. Исчисление доменов
- •Отличительной особенностью исчи- сления доменов от исчисления кортежей является то, что в нем
- •Проверяемое условие будет истинным тогда и только тогда, когда существует кортеж в отношении
- •Примеры выражений исчисления доменов
- •Третье выражение соответствует запросу на получение имен поставщиков, производящих все детали.
В операции расширения имя нового атрибута не должно повторять имен имеющихся в данном отношении атрибутов и его значения вычисляются по правилам, заданным в <выражении>; имя нового атрибута не должно входить в <выражение>.
Помимо обычных алгебраических операций и операций сравнения в <выражении> можно
использовать различные функции, называе- мые итоговыми, такими как COUNT
(количество), SUM (сумма), AVG (среднее), MAX (максимальное), MIN (минимальное),
например:
EXTEND (P JOIN SP) ADD (Вес * количество) AS общий_вес.
3Д. Операция подведения итогов
Синтаксис этой операции имеет вид: SUMMARIZE <имя исходного отношения> BY (<список атрибутов>) ADD <выражение> AS
<имя нового атрибута>,
где <имя исходного отношения> может задаваться заключенным в круглые скобки выражением реляционной алгебры; <список атрибутов> представляет собой разделен- ные запятыми имена атрибутов исходного отношения; <выражение> - скалярное выражение реляционной алгебры.
42
Результатом операции подведения итогов является отношение R с заголовком, состоящим из атрибутов списка, расширенного новым атри- бутом. Для получения отношения R сначала выполняется операция проекции исходного отношения на атрибуты A1, A2,…, An, после чего каждый кортеж проекции расши- ряется новым (n+1)-ым атрибутом.
43
Пример 6
Пусть требуется вы- числить число пос- тавок по каждому из поставщиков. Это можно осуществить с помощью операции подведения итогов:
SUMMARIZE SP BY (П#) ADD COUNT AS
Кол-ство_поставок Получим отношение
П# Кол-во_поставок
S1 |
6 |
S2 |
2 |
S3 |
1 |
S4 |
3 |
В приведенной опера- рации функция COUNT определяет количество кортежей в каждой из групп исходного отно- шения. 44
4Д. Операция присваивания
Синтаксис операции:
<выражение-цель>:= <выражение- источник>,
где оба выражения задают совмести- мые по структуре отношения. Типичный случай выражений: в левой части – имя отношения, а в правой – некоторое выражение реляционной алгебры.
45
5Д. Операция вставки
Синтаксис операции:
INSERT <выражение-источник> INTO <выражение-цель>,
где оба выражения должны быть совместимы по структуре. Результатом этой операции является вставка полученных кортежей в отношение, заданное в <выражение-цель>, например:
INSERT (S WHERE Город_П = ‘Москва’)
INTO Temp
46
6Д. Операция обновления
Синтаксис операции:
UPDATE <выражение-цель><список элементов>,
где <список элементов> представляет собой последовательность разделен- ных запятыми операций присваивания вида <атрибут>:= <скалярное выраже- ние>, например:
UPDATE WHERE Тип:=‘Каленый’, Город:= ‘Киев’
47
7Д. Операция удаления 8Д. Операции реляционного сравнения
Синтаксис операции 7Д: DELETE <выражение-
цель >,
где <выражение-цель> представляет собой ре- ляционное выражение, описывающее удаляе- мые кортежи.
К операциям 8Д относятся:, (или < >), , (или < =), , (или > =).
48
Замечание 5
При записи выражений в реляционной алгебре следует придерживаться следующих правил:
- должен быть определен приоритет выполнения операций. Для изменения порядка выполнения операций в выражениях, как обычно, используются круглые скобки;
49
-выражения можно заменять другими выражениями, получающи- мися с помощью тождественных преобразований;
-составляя выражение, нужно обеспечивать совместимость участ- вующих в операциях отношений. При необходимости изменения заголовков отношений следует выполнять переименование атри- бутов.
50