Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций БД+ИТ ум.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
972.29 Кб
Скачать

Лекция 3. Реляционная алгебра и реляционное исчисление

Для управления реляционной базой данных Э.Ф. Кодд ввел реляционные языки обработки данных – реляционную алгебру и реляционное исчисление. Реляционная алгебра – это язык обработки реляционных таблиц, при котором используется пошаговый подход к построению ответа на запрос. Реляционное исчисление – язык, при котором поиск ответа на запрос осуществляется за один шаг. Кодд показал логическую эквивалентность реляционной алгебры и реляционного исчисления, что означает следующее: запрос, сформулированный при помощи реляционного исчисления можно сформулировать, пользуясь реляционной алгеброй и наоборот.

В реализациях конкретных реляционных СУБД сейчас не используется в чистом виде ни реляционная алгебра, ни реляционное исчисление. Фактическим стандартом доступа к реляционным данным стал язык SQL (Structured Query Language). Однако язык SQL представляет собой смесь операторов реляционной алгебры и выражений реляционного исчисления, использующий синтаксис, близкий к фразам английского языка.

Рассмотрим основы реляционной алгебры.

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

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

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

Основные:

  • Объединение – при выполнении операции объединения двух отношений производится отношение, включающее все кортежи, входящие хотя бы в одно из отношений-операндов.

  • Пересечение – операция пересечения двух отношений производит отношение, включающее все кортежи, входящие в оба отношения-операнда.

  • Вычитание – отношение, являющееся разностью двух отношений включает все кортежи, входящие в отношение - первый операнд, такие, что ни один из них не входит в отношение, являющееся вторым операндом.

  • Декартово (прямое) произведение – при выполнении прямого произведения двух отношений производится отношение, кортежи которого являются конкатенацией (сцеплением) кортежей первого и второго операндов.

Дополнительные:

  • Выборка – результатом ограничения отношения по некоторому условию является отношение, включающее кортежи отношения-операнда, удовлетворяющее этому условию.

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

  • Соединение – при соединении двух отношений по некоторому условию образуется результирующее отношение, кортежи которого являются конкатенацией кортежей первого и второго отношений и удовлетворяют этому условию.

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

В отдельную группу относят операции переименования и присваивания:

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

  • Операция присваивания позволяет сохранить результат вычисления реляционного выражения в существующем отношении БД.

Прежде всего условимся, что каждое отношение имеет заголовок (список имен атрибутов) и тело, состоящее из кортежей. Кроме того, каждое отношение имеет имя. Введем следующие обозначения:

А – имя отношения, А(А1, А2, …, Аn) – заголовок отношения.