Естественное соединение
Операции над отношениями. Реляционная алгебра
Для управления реляционными данными Э.Ф.Кодд ввел реляционные языки обработки данных – реляционную алгебру и реляционные исчисление. Мы будем рассматривать только реляционную алгебру, так как она породила часто встречающие в коммерческих языках баз данных и, более того, некоторые коммерческие языки баз данных основаны на реляционной алгебре. Реляционная алгебра определяет следующие операции:
· Объединение;
· Пересечение;
· Разность;
· Произведение;
· Выбор;
· Создание проекций;
· Соединение;
· Деление.
Первые четыре операции взяты Коддом из математической теории множеств и совпадают с операциями теории множеств. Если считать реляционные таблицы множествами, применимость операции над множествами правомерна. Следующие четыре – новые операции, относящиеся только к реляционной модели данных.
Операции реляционной алгебры делятся на две группы – основные и дополнительные.
Основные операции реляционной алгебры
Объединение
Пусть имеются отношения r и s, тогда отношение t=rÈs называется объединением r и s, если каждый кортеж, принадлежащий t, принадлежит или r, или s, или им обоим.
Разность
Пусть имеются два отношения r и s, тогда отношение t =r – s называется разностью r и s, если каждый кортеж, принадлежащий t, принадлежит r, но не принадлежит s. Операция разности является несимметричной операцией, и ее результат будет различным для разного порядка аргументов.
Декартовое произведение
При выполнении операции произведения двух отношений каждая строка первого отношения-операнда сцепляется (конкатенируется) с каждой строкой второго отношения-операнда. Сцепленные строки образуют отношение-результат. Число строк в отношении-результате равно произведению числа строк в отношениях-операндах.
Проекция(Project)
Оператор проекции (вертикальное подмножество) является унарным оператором на отношениях. Он осуществляет выбор на множестве столбцов.
Выбор(Select)
Селекция – это, как и проекция относится к унарным операциям над отношением. Результатом ее применения к отношению r является другое отношение, которое представляет собой подмножество кортежей отношения r, с определенным значением в выделенным атрибуте.
Дополнительные операции реляционной алгебры
Пересечение
Пусть имеются два отношения r и s, тогда отношение t =r Ç s называется пересечением r и s, если каждый кортеж, принадлежащий t, одновременно принадлежит r и s.
Естественное соединение
Естественное соединение создает новое отношение из двух существующих. Новое отношение формируется с помощью сцепления кортежей первого отношения с кортежами второго отношения. При выполнении этой операции указывается, какой атрибут первого отношения, и какой атрибут второго отношения используется для сцепления кортежей.
Пример. Пусть даны отношения r(R) – штатные_преподаватели и s(S) - совместители. Необходимо осуществить соединение этих отношений, используя атрибут А отношения r и атрибут D отношения s.
| D | E | F |
| Q | a | |
| Q | c |
r s
| А | В | С |
| Р | a | |
| Р | b | |
| Q | c |
При таких условиях оператор выполняется следующим образом: просматриваются по порядку все кортежи по отношению r, и для каждого кортежа анализируется значение атрибута А. Из отношения s выбираются кортежи, у которых значение атрибута совпадают со значением А. Такие кортежи сцепляются. Получается новое отношение.
r ⊳⊲ s
| А | В | С | Е | F |
| Q | c | А | ||
| Q | c | с |
Деление
Деление – это также бинарная несимметричная операция для получения некоторого отношения из двух исходных, причем степень результирующего отношения не совпадает со степенью ни одного из операторов, а вычисляется как разность между степенью отношения - делимого и степенью отношения - делителя.
Пример.Даны отношения, содержащие сведения об экзаменах, которые должны были сдавать студенты, и сведения о результатах сдачи этих экзаменов:
Ведомости
| Номер_зачетки | Фамилия | Предмет | Дата |
| 2004_001 | Ягафаров | Физика | 10.01.05 |
| 2004_001 | Ягафаров | Химия | 14.01.05 |
| 2004_002 | Гимаев | Физика | 10.01.05 |
| 2004_002 | Гимаев | Химия | 14.01.05 |
| 2004_005 | Бикбаев | Химия | 14.01.05 |
Расписание
| Предмет | Дата |
| Химия | 14.01.05 |
| Физика | 10.01.05 |
Требуется сформировать ответ на такой запрос: дать сведения о студентах, сдавших все экзамены. Для получения ответа на данный запрос необходимо выполнить операцию деления:
t =r ¸ s
| Номер_зачетки | Фамилия |
| 2004_001 | Ягафаров |
| 2004_002 | Гимаев |
| <== предыдущая лекция | | | следующая лекция ==> |
| Классификация систем | | | Кузова подвижного состава автомобильного транспорта 1 страница |
Дата добавления: 2016-03-04; просмотров: 1858;
