Основы реляционной алгебры

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

Рассмотрим некоторые из них.

Объединение – возвращает отношение, содержащее все кортежи, принадлежащие первому или второму отношению.

Пример: До операции «объединение» существовало две таблицы:

ФИО Год рождения Пол   ФИО Год рождения Пол
Иванов С.Н м   Иванов С.Н. м
Смирнова Р.М. ж   Сергеева Е.Д. ж
Радченко С.В. ж        
Уткин О.Ф. м        

 

После операции «объединение» получена одна таблица, содержащая все данные, находившиеся ранее хотя бы в одной из таблиц.

ФИО Год рождения Пол
Иванов С.Н м
Смирнова Р.М. ж
Радченко С.В. ж
Уткин О.Ф. м
Сергеева Е.Д. ж

 

Пересечение – возвращает отношение, содержащее все кортежи, принадлежащие и первому и второму отношению.

Пример: До операции «пересечение» существовало две таблицы:

ФИО Год рождения Пол   ФИО Год рождения Пол
Иванов С.Н м   Иванов С.Н. м
Смирнова Р.М. ж   Сергеева Е.Д. ж
Радченко С.В. ж        
Уткин О.Ф. м        

После операции «пересечение» получена одна таблица, содержащая все данные, находившиеся ранее в обеих таблицах.

ФИО Год рождения Пол
Иванов С.Н м

Разность – возвращает отношение, содержащее все кортежи, принадлежащие и первому и не принадлежащие второму отношению.

Пример: До операции «разность» существовало две таблицы:

ФИО Год рождения Пол   ФИО Год рождения Пол
Иванов С.Н м   Иванов С.Н. м
Смирнова Р.М. ж   Сергеева Е.Д. ж
Радченко С.В. ж        
Уткин О.Ф. м        

После операции «Разность» получена одна таблица, содержащая все данные, находившиеся ранее в обеих таблицах.

ФИО Год рождения Пол
Смирнова Р.М. ж
Радченко С.В. ж
Уткин О.Ф. м
Сергеева Е.Д. ж

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

Пример: До операции «Произведение» существовало две таблицы, содержащие в частности, следующие поля:

Должность   Номер кафедры
Зав. Кафедрой  
Старший преподаватель  
Преподаватель    

После операции «Произведение» получена одна таблица, содержащая

Должность Номер кафедры
Зав. Кафедрой
Старший преподаватель
Преподаватель
Зав. Кафедрой
Старший преподаватель
Преподаватель

 

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

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

Пример: – из списка студентов выбрать юношей 1990-го года рождения.

До операции «выборка» существовала таблица:

ФИО Год рождения Пол
Иванов С.Н м
Смирнова Р.М. ж
Радченко С.В. ж
Уткин О.Ф. м
Сергеева Е.Д. ж

 

После этой операции:

 

ФИО Год рождения Пол
Уткин О.Ф. м

 

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

Пример: До операции «проекция» существовала таблица:

ФИО Год рождения Пол
Иванов С.Н м
Смирнова Р.М. ж
Радченко С.В. ж
Уткин О.Ф. м
Сергеева Е.Д. ж

После этой операции:

 

ФИО Год рождения
Иванов С.Н
Смирнова Р.М.
Радченко С.В.
Уткин О.Ф.
Сергеева Е.Д.

Соединениедвух отношений по заданному условию – возвращает новое отношение, которое является, по сути, выборкой из произведения.

Реляционное деление отношений с длиной кортежей к1 и к2, (к1>к2), возвращает новое отношение, состоящее из кортежей длины (к1-к2), таких, что для всех кортежей s, принадлежащих S кортеж ts принадлежит R.

Алгоритм вычисления:

Пусть – n количество строк отношения S.

а) цикл: от i=1 до n

начало:

- выделить из R кортежи с окончанием, равным i-ой строке S.

- полученный результат сохранить в виде множества кортежей Qi.

конец.

б) результат деления равен пересечению полученных множеств Qi, i = 1,…, n.