Основы реляционной алгебры
Предпринималось довольно много попыток представить обработку данных на формальном абстрактном уровне. Лучше всех с этим справилась модель представления данных Кодда, которая называется реляционной алгеброй. Основными операциями ее являются операции над множествами, но с учетом того, что их элементами являются таблицы.
Рассмотрим некоторые из них.
Объединение – возвращает отношение, содержащее все кортежи, принадлежащие первому или второму отношению.
Пример: До операции «объединение» существовало две таблицы:
ФИО | Год рождения | Пол | ФИО | Год рождения | Пол | |
Иванов С.Н | м | Иванов С.Н. | м | |||
Смирнова Р.М. | ж | Сергеева Е.Д. | ж | |||
Радченко С.В. | ж | |||||
Уткин О.Ф. | м |
После операции «объединение» получена одна таблица, содержащая все данные, находившиеся ранее хотя бы в одной из таблиц.
ФИО | Год рождения | Пол |
Иванов С.Н | м | |
Смирнова Р.М. | ж | |
Радченко С.В. | ж | |
Уткин О.Ф. | м | |
Сергеева Е.Д. | ж |
Пересечение – возвращает отношение, содержащее все кортежи, принадлежащие и первому и второму отношению.
Пример: До операции «пересечение» существовало две таблицы:
ФИО | Год рождения | Пол | ФИО | Год рождения | Пол | |
Иванов С.Н | м | Иванов С.Н. | м | |||
Смирнова Р.М. | ж | Сергеева Е.Д. | ж | |||
Радченко С.В. | ж | |||||
Уткин О.Ф. | м |
После операции «пересечение» получена одна таблица, содержащая все данные, находившиеся ранее в обеих таблицах.
ФИО | Год рождения | Пол |
Иванов С.Н | м |
Разность – возвращает отношение, содержащее все кортежи, принадлежащие и первому и не принадлежащие второму отношению.
Пример: До операции «разность» существовало две таблицы:
ФИО | Год рождения | Пол | ФИО | Год рождения | Пол | |
Иванов С.Н | м | Иванов С.Н. | м | |||
Смирнова Р.М. | ж | Сергеева Е.Д. | ж | |||
Радченко С.В. | ж | |||||
Уткин О.Ф. | м |
После операции «Разность» получена одна таблица, содержащая все данные, находившиеся ранее в обеих таблицах.
ФИО | Год рождения | Пол |
Смирнова Р.М. | ж | |
Радченко С.В. | ж | |
Уткин О.Ф. | м | |
Сергеева Е.Д. | ж |
Произведение – возвращает отношение, являющееся сочетанием всех возможных кортежей из первого и второго отношения.
Пример: До операции «Произведение» существовало две таблицы, содержащие в частности, следующие поля:
Должность | Номер кафедры | |
Зав. Кафедрой | ||
Старший преподаватель | ||
Преподаватель |
После операции «Произведение» получена одна таблица, содержащая
Должность | Номер кафедры |
Зав. Кафедрой | |
Старший преподаватель | |
Преподаватель | |
Зав. Кафедрой | |
Старший преподаватель | |
Преподаватель |
Выборка (селекция) – возвращает отношение, содержащее все кортежи из данного отношения, которые удовлетворяют указанным условиям.
На практике эту операцию удобно представить как отбор из таблицы ряда строк, удовлетворяющих указанному критерию.
Пример: – из списка студентов выбрать юношей 1990-го года рождения.
До операции «выборка» существовала таблица:
ФИО | Год рождения | Пол |
Иванов С.Н | м | |
Смирнова Р.М. | ж | |
Радченко С.В. | ж | |
Уткин О.Ф. | м | |
Сергеева Е.Д. | ж |
После этой операции:
ФИО | Год рождения | Пол |
Уткин О.Ф. | м |
Проекция – возвращает отношение, содержащее все кортежи из данного отношения, которые остались, поле исключения нескольких полей.
Пример: До операции «проекция» существовала таблица:
ФИО | Год рождения | Пол |
Иванов С.Н | м | |
Смирнова Р.М. | ж | |
Радченко С.В. | ж | |
Уткин О.Ф. | м | |
Сергеева Е.Д. | ж |
После этой операции:
ФИО | Год рождения |
Иванов С.Н | |
Смирнова Р.М. | |
Радченко С.В. | |
Уткин О.Ф. | |
Сергеева Е.Д. |
Соединениедвух отношений по заданному условию – возвращает новое отношение, которое является, по сути, выборкой из произведения.
Реляционное деление отношений с длиной кортежей к1 и к2, (к1>к2), возвращает новое отношение, состоящее из кортежей длины (к1-к2), таких, что для всех кортежей s, принадлежащих S кортеж ts принадлежит R.
Алгоритм вычисления:
Пусть – n количество строк отношения S.
а) цикл: от i=1 до n
начало:
- выделить из R кортежи с окончанием, равным i-ой строке S.
- полученный результат сохранить в виде множества кортежей Qi.
конец.
б) результат деления равен пересечению полученных множеств Qi, i = 1,…, n.