Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Теоретические языки запросов

Операции над отношениями

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

К первой группе относятся операции, которые выполняются над множествами. К ним относится объединение, пересечение, разность, деление и декартово произведение.

Ко второй группе относятся специальные операции над отношениями. К таким операциям, в частности, относят следующие операции: проекция, соединение, выбор.

В разных системах управления базами данных реализуется лишь некоторая часть операций над отношениями, которая определяет в какой-то мере возможности данной системы управления БД и сложность реализации запросов к базе данных.

В реляционных СУБД при выполнении операций над отношениями используют две группы языков, которые имеют свою математическую основу в виде теоретических языков запросов, предложенных Э.Коддом:

  • реляционную алгебру;
  • реляционное исчисление.

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

Определение 1

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

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

Замечание 1

Операторы состоят из реляционных операций и операндов. В роли операндов выступают отношения. Отношение является результатом реляционной операции.

«Теоретические языки запросов» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

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

В запросе к базе данных, который выполнен при использовании подобного языка, содержится только информация о желаемом результате. Эти языки характеризуются наличием набора правил для записи запросов. К языкам этой группы, в частности, относится язык SQL.

Теоретические языки запросов

Рассмотрим языки реляционной алгебры и реляционных исчислений на примере базы данных, которая включает такие таблицы:

  • P (поставщик);
  • D (деталь);
  • PD (поставка).

Первичные ключи этих таблиц соответственно: Поставщик# (код поставщика), Деталь# (код детали) и составной ключ (Поставщик#, Деталь#).

На рисунке 1 приведено содержимое данных таблиц. Предположим, что данные языки запросов не имеют ограничений на использование символов русского языка в именах атрибутов. В таблице PD поля Поставщик# и Деталь# по отдельности являются внешним ключом для таблиц S и Р соответственно.

Примем, что имена доменов (множества допустимых значений) будут совпадать с именами атрибутов. Исключением будут атрибуты Город_Поставщик (город, в котором расположен поставщик) и Город_Деталь (город, в котором изготавливается деталь), имеющие общий домен: названия городов.

Таблицы поставщиков, деталей и поставок

Именем этого домена будет, например, Город. Домены имеют следующие типы данных:

Деталь# – символьный тип, длина строки 6,

Имя – символьный тип, длина строки 20,

Статус – цифровой тип, длина значения 5,

Город – символьный тип, длина строки 15,

Деталь# – символьный тип, длина строки 6,

Тип – символьный тип, длина строки 6,

Вес – цифровой тип, длина значения 5,

Количество – цифровой тип, длина значения 5.

Дата написания статьи: 01.08.2016
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot