Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РМД.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
6.66 Mб
Скачать

1.2. Реляционная алгебра и реляционное исчисление

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

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

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

  • традиционные операции над множествами: объединение, пересечение, вычитание и декартово произведение (модифицированные с учетом того, что их операндами являются отношения, а не произвольные множества);

  • специальные реляционные операции: выборка, проекция, соединение и деление.

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

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

В теории реляционной алгебры отношение рассматривается как множество, строки таблицы называются кортежами, столбцы — атрибутами. Над отношениями выполняются традиционные операции теории множеств [7]:

  • ограничение отношения (выборка) – создание нового отношения отбором в него строк отношения-операнда (исходного отношения), которые удовлетворяют условию ограничения;

  • проекция отношения – создание нового отношения отбором в него определенных столбцов отношения-операнда;

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

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

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

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

  • деление отношений – создание нового отношения, содержащего атрибуты 1-го операнда, отсутствующие во 2-м операнде, и кортежи 1 -го операнда, которые совпали с кортежами 2-го операнда. Для выполнения этой операции 2-й операнд должен содержать лишь атрибуты, совпадающие с атрибутами 1-го;

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

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

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

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

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

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

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

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

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

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