- •Тема 1.4. Реляционная алгебра
- •Понятие реляционной алгебры
- •2. Операции реляционной алгебры
- •3. Теоретико – множественные операторы
- •Специальные реляционные операторы
- •Раздел 2. Основы проектирования
- •Тема 2.1. Основы моделирования. Модели данных
- •2. Аномалии при проектировании
- •3. Информационное моделирование
Тема 1.4. Реляционная алгебра
Тип лекции: текущая
План:
Понятие реляционной алгебры
Операции реляционной алгебры
Теоретико-множественные операторы
Специальные реляционные операторы
Понятие реляционной алгебры
В 1971 г. Кодд предложил реляционную алгебру и реляционное исчисление.
Реляционная алгебра является высокоуровневым процедурным языком, каждый оператор использует отношения в качестве операндов и возвращает отношение в качестве результата, при этом операторы описывают, как получить искомое отношение на базе нескольких исходных.
Реляционное исчисление – это высокоуровневый непроцедурный язык манипулирования данными, выражение реляционного исчисления показывает каким должно быть результирующее отношение, при этом реляционная алгебра и реляционное исчисление эквивалентны друг другу, т.е. каждому оператору реляционной алгебры соответствует определенное выражение реляционного исчисления и наоборот.
2. Операции реляционной алгебры
Реляционная алгебра содержит 8 операторов, которые делятся на 2 группы:
1) традиционные (теоретико-множественные) операции: объединение, разность, пересечение и декартовое произведение.
2) специальные реляционные операции: проекция, выборка, деление и соединение.
Классификация операций представлена на рисунке 2.
О перации реляционной алгебры Кодда
Рис. 2. – Схема классификации операций реляционной алгебры
Каждая реальная СУБД должна реализовывать все операции реляционной алгебры.
Некоторые из указанных операций требуют совместимости отношений по типу.
Два отношения называется совместимыми по типу, если они имеют одинаковую схему, т.е. одинаковое количество атрибутов с совпадающими доменами.
3. Теоретико – множественные операторы
Объединение двух совместимых отношений по типу R и S называется отношение с заголовком, совпадающим с заголовком отношений R и S и телом, состоящим из множества кортежей, принадлежащих либо R, либо S, либо R и S одновременно, кортежи дубликаты при этом удаляются.
Пример1: пусть отношение обозначает R выпуск продукции одного цеха, а S это выпуск в другом цехе, необходимо получить запрос сведений о продукции в двух цехах.
R S
|
цех |
Наим.деталей |
Кол-во |
||||||
---|---|---|---|---|---|---|---|---|---|
|
1 |
болт |
150 |
||||||
|
1 |
гвоздь |
80 |
||||||
|
|
|
|
||||||
|
|
|
|
цех |
Наим. деталей |
Кол-во |
2 |
болт |
200 |
R (R UNION S)
цех |
Наим.деталей |
Кол-во |
1 |
болт |
150 |
1 |
гвоздь |
80 |
2 |
болт |
200 |
Разностью двух совместимых по типу отношений R-S называется отношение, состоящее из множества кортежей, которые принадлежат отношению R и не принадлежат отношению S.
Пример2:Получить сведения о продукции, которая выпускается только в первом цеху и не выпускается во втором.
R-S
цех |
Наим.деталей |
Кол-во |
1 |
гвоздь |
80 |
Пересечением двух совместимых по типу отношений R и S называется отношение, состоящее из множества кортежей, принадлежащих одновременно двум исходным отношениям R и S.
Пример3: Получить сведения о выпуске продукции, которую выпускают и первый, и второй цеха.
Деталь |
Болт |
шуруп |
Деталь |
Болт |
Гвоздь |
шуруп |
Деталь |
Болт |
шуруп |
Декартовое произведение двух отношений R×S называется отношение, состоящее из множества кортежей, полученных путем сцепления кортежей R и S.
Пример 4:Получить отношение, содержащее номенклатуру выпускаемых изделий для каждого цеха.
Цех деталь
Номер цеха |
1 |
2 |
3 |
-
шифр
наименование
001
Болт
002
винт
номенклатура
Номер цеха |
шифр |
наименование |
1 |
001 |
болт |
1 |
002 |
винт |
2 |
001 |
болт |
2 |
002 |
винт |
3 |
001 |
болт |
3 |
002 |
винт |
Таким образом, если арность (степень) отношения R=p, а арность отношения S=q, то арность декартового произведения этих отношений равна p+q.
Кардинальность отношений R=m, а S=n, то кардинальность R×S = m*n
Замечание: некоторые операторы реляционной алгебры являются избыточными, т.е. их можно реализовать с помощью других операторов, так например, операцию пересечения можно заменить операцией R-(R-S). Однако избыточные операторы являются полноправными операторами реляционной алгебры, т.к. с их помощью реализуются часто используемые виды запросов.