Алгебра – это множество объектов с заданным на нем совокупностью операций, замкнутых относительно этого множества, которое называется основным множеством.
В реляционной алгебре основным множеством является множество отношений. Создатель реляционной алгебры Эдгар Тэд Кодд (1924-2003) предложил 8 операций, которые можно разделить на две группы: 1) базовые теоретико-множественные и 2) специальные реляционные. Первая группа включает классические операции теории множеств: объединение, вычитание, пересечение и произведение. Вторая – выборка (селекция), проекция, деление и соединение.
Объединением двух совместимых отношений R1 и R2 одинаковой размерности (R1 UNION R2) или (R1 U R2)является отношение R, содержащее все элементы исходных отношений (с исключением повторений). Например.
R1:
Ном_зачт
ФИО
Группа
Дата_рожд
Иванов И.
П-255
1.01.87
Петров П.
П-255
12.05.86
Семенов А.
П-244
24.04.86
Иванов И.
П-255
12.02.87
R2:
Ном_зачт
ФИО
Группа
Дата_рожд
Петров П.
П-255
12.05.86
Силина К.
П-242
21.11.86
R:
Ном_зачт
ФИО
Группа
Дата_рожд
Иванов И.
П-255
1.01.87
Петров П.
П-255
12.05.86
Семенов А.
П-244
24.04.86
Иванов И.
П-255
12.02.87
Силина К.
П-242
21.11.86
Вычитание совместимых отношений R1 и R2 одинаковой размерности (R1 MINUS R2) или (R1 \ R2)есть отношение, которое состоит из множества кортежей отношения R1, но не принадлежащих отношению R2. Результат операции зависит от порядка следования операндов. Например, для предыдущих отношений R1 и R2, отношение R будет иметь вид:
Ном_зачт
ФИО
Группа
Дата_рожд
137030w2
Иванов И.
П-255
1.01.87
Семенов А.
П-244
24.04.86
Иванов И.
П-255
12.02.87
Пересечение двух совместимых отношений R1 и R2 одинаковой размерности (R1 INTERSECT R2) или (R1∩ R2)есть отношение R, которое включает в себя кортежи, одновременно принадлежащие обоим исходным отношениям. Например, для предыдущих отношений R1 и R2, отношение R будет иметь вид:
Ном_зачт
ФИО
Группа
Дата_рожд
Петров П.
П-255
12.05.86
Выборка (R WHERE f) отношения R по формуле f есть новое отношение с таким же заголовком и телом, состоящим из таких кортежей отношения R, которые удовлетворяют истинности логического выражения, заданного формулой f. Для записи формулы f используют операнды – имена атрибутов (номера столбцов), константы, логические операции (AND, OR, NOT), операции сравнения и скобки. Например, для отношения R1 имеем
R1 WHERE Группа=”П-255” AND Ном_зачт=”1370303”
Ном_зачт
ФИО
Группа
Дата_рожд
Петров П.
П-255
12.05.86
Проекцияотношения A на атрибуты X,Y,…Z (A[X, Y,… Z]), где множество {X,Y,…Z} является подмножеством полного списка атрибутов заголовка отношения A, представляет собой отношение с заголовком X,Y,…Z и телом, содержащим кортежи отношения A, за исключением повторяющихся кортежей. Повторение одинаковых атрибутов в списке X,Y,…Z запрещается. Операция проекции допускает следующие дополнительные варианты записи:
· отсутствие списка атрибутов подразумевает указание всех атрибутов (операция тождественной проекции),
· выражение вида R[] означает, пустую проекцию, результатом которой является пустое множество,
· операция проекции может применяться к произвольному отношению, в том числе и к результату выборки.
Например,
R1 [ФИО, Группа]
ФИО
Группа
Иванов И.
П-255
Петров П.
П-255
Семенов А.
П-244
(R1 WHERE ФИО=”Иванов И.”) [Ном_зачт]
ФИО
Ном_зачт
Иванов И.
Иванов И.
Пример 1. Пусть R1 содержит список абитуриентов, сдававших репетиционные экзамены в вуз. Отношение R2 содержит список абитуриентов, сдававших экзамены в вуз на общих условиях. Отношение R3 содержит список абитуриентов, поступивших в вуз. Пусть при неудачной сдаче репетиционных экзаменов абитуриент мог делать вторую попытку и сдавать экзамены в общем потоке, поэтому некоторые абитуриенты могут присутствовать и в первом и во втором отношении. Ответить на следующие вопросы:
1) Список абитуриентов, которые поступали два раза и не поступили в вуз. R=R1 INTERSECT R2 MINUS R3 (R1 ∩ R2 \ R3)
2) Список абитуриентов, которые поступили в вуз с первого раза, то есть они сдавали экзамены только один раз и сразу были зачислены в студенты. R=(R1 MINUS R2INTERSECT R3) UNION (R2 MINUS R1 INTERSECT R3).
3) Список абитуриентов, которые поступили в вуз только со второго раза. R=R1 INTERSECT R2 INTERSECT R3.
4) Список абитуриентов, которые поступали только один раз и не поступили. R=(R1 MINUS R2) UNION (R2 MINUS R1) MINUS R3.
Порядок выполнения операций реляционной алгебры в отсутствии скобок естественный.
Пример 2. Результаты сдачи студентами экзаменов сессии представлены в отношениях
R1= (ФИО, Предмет, Оценка) – информация о попытках сдачи экзаменов студентами;
R2=(ФИО, Группа) - состав групп;
R3=(Группа, Предмет) – список предметов, которые надо сдавать каждой группе.
r
Список всех пар <студент-предмет>, которые в принципе должны быть сданы:
R4=(R2 [R2.Группа=R3.Группа] R3) [ФИО, Предмет];
Список пар <студент-предмет>, где получена оценка «отлично»
R5=(R1[Оценка=5]) [ФИО, Предмет];
Список студентов, что-либо не сдавших на «отлично»