Естественное соединение
Операции над отношениями. Реляционная алгебра
Для управления реляционными данными Э.Ф.Кодд ввел реляционные языки обработки данных – реляционную алгебру и реляционные исчисление. Мы будем рассматривать только реляционную алгебру, так как она породила часто встречающие в коммерческих языках баз данных и, более того, некоторые коммерческие языки баз данных основаны на реляционной алгебре. Реляционная алгебра определяет следующие операции:
· Объединение;
· Пересечение;
· Разность;
· Произведение;
· Выбор;
· Создание проекций;
· Соединение;
· Деление.
Первые четыре операции взяты Коддом из математической теории множеств и совпадают с операциями теории множеств. Если считать реляционные таблицы множествами, применимость операции над множествами правомерна. Следующие четыре – новые операции, относящиеся только к реляционной модели данных.
Операции реляционной алгебры делятся на две группы – основные и дополнительные.
Основные операции реляционной алгебры
Объединение
Пусть имеются отношения 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; просмотров: 1772;