- •Теоретические языки запросов в реляционных базах данных
- •Введение
- •Языки реляционной алгебры являются процедурными. Опе- раторы этой алгебры состоят из операндов, в
- •Языки исчислений, в отличие от
- •Реляционные таблицы для примеров
- •Таблица 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. Исчисление доменов
- •Отличительной особенностью исчи- сления доменов от исчисления кортежей является то, что в нем
- •Проверяемое условие будет истинным тогда и только тогда, когда существует кортеж в отношении
- •Примеры выражений исчисления доменов
- •Третье выражение соответствует запросу на получение имен поставщиков, производящих все детали.
Теоретические языки запросов в реляционных базах данных
1.Реляционная алгебра
2.Реляционное исчисление
Введение
В реляционных СУБД для выполнения операций над отношениями исполь- зуется две группы языков, имеющие в качестве своей математической основы теоретические языки запросов,
предло-женные Э. Коддом:
•реляционная алгебра;
•реляционное исчисление.
2
Языки реляционной алгебры являются процедурными. Опе- раторы этой алгебры состоят из операндов, в роли которых выступают отношения, и реля- ционных операций. Резуль- татом реляционной операции является отношение.
3
Языки исчислений, в отличие от
реляционной алгебры, являются
непроцедурными (описательными или декларативными) и позволяют
выражать запросы с помощью
предикатов первого порядка. Запрос к БД, выполненный с использованием подобного языка, содержит лишь информацию о желаемом результате, а не как его получить. 4
Реляционные таблицы для примеров
В дальнейшем при рассмотрении язы-ков реляционной алгебры и реляцион-ного исчисления для демонстрацион-ных примеров будем использовать БД, включающую в себя следующие три таблицы:
1.Таблица S (поставщики деталей).
2.Таблица P (характеристики деталей).
3.Таблица SP (поставки).
5
Таблица S
П# |
Имя поставщика |
Статус |
Город_П |
|
|
|
|
S1 |
Дышекова А. |
20 |
Москва |
S2 |
Кудинов А. |
10 |
Киев |
S3 |
Оленева М. |
30 |
Киев |
S4 |
Романова Е. |
20 |
Москва |
S5 |
Шахбазян Т. |
30 |
Минск |
6
Таблица P
Д# |
Название |
Тип |
Вес |
Город_Д |
|
|
|
|
|
P1 |
Гайка |
Каленый |
12 |
Москва |
P2 |
Болт |
Мягкий |
17 |
Киев |
P3 |
Винт |
Твердый |
17 |
Ростов |
P4 |
Винт |
Каленый |
14 |
Москва |
P5 |
Палец |
Твердый |
12 |
Киев |
P6 |
Шпилька |
Каленый |
19 |
Москва |
7
П# |
Д# |
Количество |
Слева таблица SP |
|
|||
S1 |
P1 |
300 |
Первичными ключами |
||||
S1 |
P2 |
200 |
этих таблиц |
являются |
|||
S1 |
P3 |
400 |
соответственно: |
|
|||
П# - код поставщика, |
|
||||||
S1 |
P4 |
200 |
|
||||
Д# - код детали, |
|
||||||
S1 |
P5 |
100 |
|
||||
(П#, Д#) – составной |
|
||||||
S1 |
P6 |
100 |
|
||||
ключ. |
|
|
|
||||
S2 |
P1 |
300 |
|
|
|
||
Каждый из атрибутов |
|||||||
S2 |
P2 |
400 |
|||||
П# и Д# таблицы SP в |
|||||||
S3 |
P2 |
200 |
|||||
отдельности |
является |
||||||
S4 |
P2 |
200 |
внешним |
ключом |
к |
||
S4 |
P4 |
300 |
таблице S |
и |
P соот- |
||
ветственно. |
|
|
|
||||
S4 |
P5 |
400 |
|
|
|
||
|
|
|
|
1. Реляционная алгебра
Вариант реляционной алгебры, предло- женный Э. Коддом, можно разделить на две группы: 1) базовые теоретико-мно- жественные операции – объединение, пересечение, разность и декартово произведение; 2) специальные опера- ции - проекция, селекция, деление и соединение.
9
Перечисленный набор из 8 операций является избыточным. Минимально необходимый набор составляет 5 операций – объединение, вычитание, декартово произведение, проекция и выборка. Три оставшиеся операции можно определить через указанные
выше 5 операций, например, сое- динение – это проекция выборки де- картова произведения.
10