Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных лекции.doc
Скачиваний:
9
Добавлен:
05.12.2018
Размер:
592.9 Кб
Скачать

3.3.Реляционная алгебра

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

.Теоретико-множественные или булевы операции

Операция объединения. В результате операции объединения получаем новое отношение T, в которое входят строки из обоих исходных отношений R, S.

Операция пересечения. В результате операции пересечения получаем новое отношение T, в которое входят строки, одновременно принадлежащие исходным отношениям R, S.

Операция вычитания. В результате операции вычитания получаем новое отношение T, в которое входят строки только из отношения уменьшаемого R и не входят строки из отношения вычитаемого S.

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

Пусть dom(A) – множество всех кортежей над атрибутами схемы A и их доменами. Дополнением отношения R(A) будем называть разность:

.

Однако, если какой-либо атрибут A1 в R имеет бесконечный домен также будет бесконечно, и не будет отношением в нашем понимании.

Модифицированная версия дополнения, называемая активным дополнением, всегда будет активным дополнением. Если отношение и , то активным дополнением отношения R называется множество:

Пусть adom(A, R) множество всех кортежей над атрибутами A и их активными доменами отношения R. Активным дополнением R является:

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

Пусть

.Специфические операции РА.

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

Проекция. Выделяет подмножество столбцов отношения.

Операция декартова произведения. Операция декартового произведения определяет новое отношение, которое является результатом сцепления (конкатенации)мкаждого кортежа из отношения R с каждым кортежем из отношения S. R*S.

Операции соединения. К операциям соединения относятся:

  1.  - соединение ( -join).

  2. Соединение по эквивалентности (equaljoin).

  3. Естественное соединение (natural join).

  4. Внешнее соединение (enter join).

  5. Попусоединение (semijoin).

- соединение.

Если предикат p содержит операцию равенства, то соединение называют соединением по эквивалентности.

Естественным соединением называют соединение по всем общим атрибутам x отношений R, S из результатов которого исключаются по одному экземпляру общего атрибута. .

Левым внешним соединением называется соединение, при котором кортежи R, не имеющие совпадающих значений в общих столбцах отношения S, также включаются в результирующее отношение. Для обозначения отсутствующих значений используем null.

Аналогичным образом можно определить правое внешнее соединение и полное внешнее соединение RS.

Операция полусоединения определяет отношение, которое содержит те кортежи отношения R, которые входят в соединение отношений R, S.

Здесь A – это набор всех атрибутов в отношении R.

Операция деления. Результатом операции деления является набор кортежей отношения R, определенный на множестве атрибутов C, которые соответствуют комби нации всех кортежей отношения S. Проще всего этот оператор сформулировать на основе других операторов:

Пример реализации запроса в РА. Определить Ф.И.О. студентов и группы, в которых они учатся, имеющих задолженности по курсу «Базы данных».

Определим таблицы, в которых содержится информация, необходимая для реализации запроса.

Predmet

CodPredm

Predm

Таблица Student (Список студентов)

Имя поля

Тип поля

Описание

Ключевое

SGroup

Мастер подстановок

Шифр группы, в которой учится студент

Нет

NZach

Текстовое

Номер зачетки

Да

FIOS

Текстовое

Фамилия студента

Нет

YearEnter

Числовое

Год поступления

Нет

Таблица Vedom (Список ведомостей)

Имя поля

Тип поля

Описание

Ключевое

SGroup

Мастер подстановок

Шифр группы

Нет

NVed

Счетчик

Номер ведомости

Да

CodPredm

Мастер подстановок

Предмет, по которому проводится экзамен

Нет

DataEkz

Дата/Время

Дата экзамена

Нет

CodPrep

Мастер подстановок

Преподаватель, проводящий экзамен

Нет

Таблица Ekzamen (Результаты экзаменов)

Имя поля

Тип поля

Описание

Ключевое

NZach

Мастер подстановок

Номер зачетки

Да

NVed

Мастер подстановок

Номер ведомости

Да

CodOcen

Мастер подстановок

Оценка

Нет

Выполним запрос в несколько этапов:

1.Определим коды предметов, имеющих наименование «Базы данных».

.

2.Найдем ведомости по этим предметам.

3.Найдем результаты экзамена в этих ведомостях.

4.Определим результаты, соответствующие задолженностям.

5.Определим, имеющих эти результаты.

6.Окончательный результат.

Общее алгебраическое выражение можно записать в следующем виде:

.Реляционное исчисление

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

В реляционном исчислении вводится следующий алфавит A:

  • Отдельные константы.

  • Индексные переменные.

  • Переменные выборки.

  • Одноместные (монадические) предикаты.

  • Двуместные предикаты (диадические предикаты или операции сравнения).

  • Логические символы, включая кванторы.

  • Разделители (круглые и квадратные скобки).

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

В реляционном исчислении используются следующие термы:

Терм диапазона (ТД). Одноместный предикат, за которым следует переменная выборки, называется термом диапазона. Терм диапазона , где v – переменная выборки, понимается как некоторое высказывание, заключающееся в том, что переменная выборки v имеет в качестве своего значения кортежи отношения Rj (диапазон отношения). Для определения Nго компонента выборки v вводится понятие операции индексной выборки, которая имеет вид v[N]. N индексная константа, указывающая на атрибут с номером N.

Для упрощения записи будем использовать следующую нотацию терма диапазона и индексной выборки:

Терм объединения (ТО). Пусть и - индексные выборки, а - отдельная константа. Тогда  и  называются термом диапазона, где - двухместный предикат.

= {>, <, =, , , }

В SQL появляются более сложные предикаты Like, Between, In, которые будут рассмотрены в своем месте.

Эти два терма являются единственными в реляционном исчислении. Из термов с помощью логических связок и разделителей строятся формулы РИ. Правильно построенные формулы (ППФ) в РИ определяются следующим образом:

  1. Любой ТД или ТО есть ППФ.

  2. Если FППФ, то -- ППФ.

  3. Если F, GППФ, то (FG), (FG) – ППФ.

  4. Если FППФ, в которой v переменная, то (v)F, (v)FППФ.

  5. Никакие другие формулы не являются ППФ.

Диапазонной ППФ является, свободная от кванторов ППФ, все термы которой являются ТД.

ППФ, имеющая четко определенные диапазоны для всех своих переменных, называется диапазонно – сепарабельной, и определяется как конъюнкция из форм:

где

1.n1.

2. - соответствующие диапазонные ППФ по n различным переменным.

3.v или пусто, или это ППФ с тремя свойствами:

а) каждый квантор в v диапазонно связан.

б) каждая свободная переменная в v принадлежит к множеству, чьи диапазоны определены в .

в) v не содержит термы диапазона.

Запрос в РИ записывается в виде  - выражений, имеющих вид:

где

  1. w диапазонно – сепарабельная ППФ.

  2. - термы, причем каждый состоит из переменных выборки или индексных переменных.

  3. Множество переменных выборки из входит в множество переменных в w.

.Виды запросов РИ

Простой запрос. Найти фамилии всех студентов.

Список аргументов пуст (присутствует только диапазонная ППФ). Данный запрос можно трактовать, как проекцию отношения Student на домен FIOS.

- список цели. - терм диапазона.

Отображение состоит из имени отношения Student и имени атрибута FIOS. Значением являются все фамилии.

Множество различных фамилий из атрибута FIOS отношения Student копируется в рабочее поле w, которое можно рассматривать как унарное отношение с единственным атрибутом FIOS.

Запрос с квалифицирующим выражением. Составить список студентов, обучающихся в группе АП71.

Выполняется отображение, которое моделирует обычный способ работы с таблицей. В данном случае просматривается столбец SGroup отношения Student и при удовлетворении условий строится множество различных пар <NZach, FIOS>, которые копируются в поле w. К w можно обращаться как к бинарному отношению с атрибутами и FIOS.

Запрос с единственным квантором существования. Найти предметы, которые сдавала группа АП71.

Этот запрос можно перефразировать следующим образом: Найти наименования тех предметов, для которых в отношении Vedom существует тот же код предмета и одновременно, для которых шифр группы равен АП71.

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

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

В этом примере используется естественное правило умолчания для введения квантора существования: если переменной нет в целевом списке, то для нее предполагается квантор существования.

Запрос с несколькими переменными выборки в общем диапазоне. Найти Ф.И.О. студентов, учащихся в одной группе с Ивановым М.М.

Заметим, что имеют общий диапазон Student, но должны быть различимы в запросе. Ответ на этот запрос включает фамилию самого Иванова М.М.. Пример показывает, что в композиции отношений может использоваться одно и то же отношение. Это приводит к двукратному просмотру отношения Student.

Запрос с отрицанием. Найти студентов, которые не учатся в группе АП71.

Запрос с единственным квантором общности. Найти предметы, которые не сдавала группа АП71.

Учитывая, что получим:

Мощность реляционного исчисления запросов возрастает, если в нем разрешить использование функций. Здесь используем функцию count , подсчитывающую количество элементов в конечном множестве. Другие функции рассмотрим при описании QBE и SQL.

Запрос с функцией в целевом списке. Определить количество студентов в группе АП71.

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

Практически все другие запросы можно рассматривать как комбинации этих запросов.

.Алгоритм редукции

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

Алгоритм

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

Шаг 2. Берется декартово произведение этих диапазонов.

Шаг 3. Выборки, которые не удовлетворяют комбинации термов объединения, удаляются из отношения.

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

Шаг 5. Выполняется проекция в соответствии с целевым списком и тем самым определяется требуемое отношение.

.