Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД 4,5 лекция.doc
Скачиваний:
13
Добавлен:
04.05.2019
Размер:
189.44 Кб
Скачать

Тема 1.4. Реляционная алгебра

Тип лекции: текущая

План:

  1. Понятие реляционной алгебры

  2. Операции реляционной алгебры

  3. Теоретико-множественные операторы

  4. Специальные реляционные операторы

  1. Понятие реляционной алгебры

В 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: Получить сведения о выпуске продукции, которую выпускают и первый, и второй цеха.

Деталь

Болт

шуруп

Выпуск 1 цеха выпуск 2 цеха RS

Деталь

Болт

Гвоздь

шуруп

Деталь

Болт

шуруп



Декартовое произведение двух отношений 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). Однако избыточные операторы являются полноправными операторами реляционной алгебры, т.к. с их помощью реализуются часто используемые виды запросов.