Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_2013_Задания / КонспектЛекций_БД_СоболеваНВ_2013.docx
Скачиваний:
119
Добавлен:
12.03.2015
Размер:
634.27 Кб
Скачать

2 Реляционная алгебра. Специальные реляционные операции

К специальным относятся следующие реляционные операции:

- селекция;

- проекция;

- соединение;

- деление.

Селекцией отношения R по условию F называется такое новое отношение R1, кортежи которого принадлежат R1 и удовлетворяют условию F:

R1 = {tF(t) Λ t R}.

При записи условия можно использовать имена атрибутов, константы, операции сравнения, логические операции и скобки.

Обозначим операцию селекция следующим образом: R WHERE F.

Операция позволяет выделить из отношения кортежи, удовлетворяющие некоторому условию, например, вывести сведения о студентах, получивших оценки "2" по дисциплине с кодом "25":

ЭКЗАМЕН WHERE (Код дисциплины = 25 AND Оценка = 2).

Проекцией отношения R на некоторое подмножество его атрибутов B называется отношение, получаемое из R путем удаления из его кортежей всех атрибутов, не принадлежащих B с последующим исключением дубликатов кортежей.

Обозначим операцию проекция следующим образом: R[B].

Проекция позволяет создавать новое отношение путём удаления из исходного отношения части атрибутов. Например, отношение

ЭКЗАМЕН [Код дисциплины, Дата]

будет содержать сведения о дисциплинах, по которым сдавались экзамены.

Соединением CF(R1, R2) отношений R1 и R2 по условию F называется отношение, которое можно получить путём применения операции селекции по условию F к декартову произведению отношений R1 и R2:

CF (R1, R2) = R1 Х R2 WHERE F.

В зависимости от вида условия различают:

- F-соединение, когда формула имеет произвольный вид;

- эквисоединение, когда условие имеет вид А = В, где А – атрибут отношения R1, В – атрибут отношения R2;

- естественное соединение, когда условие имеет вид R1.A = R2.A, где А – простой или составной атрибут, общий для двух отношений.

При выполнении естественного соединения в отношении вместо двух одинаковых атрибутов сохраняется один. Обозначим естественное соединение следующим образом:

R1 JOIN R2.

Рассмотрим пример естественного соединения:

СТУДЕНТ JOIN ЭКЗАМЕН = ЭКЗАМЕН1 (Номер студента, Фамилия, Имя, Отчество, Код дисциплины, Дата, Оценка);

ЭКЗАМЕН1 JOIN ДИСЦИПЛИНА= ЭКЗАМЕН2 (Номер студента, Фамилия, Имя, Отчество, Код дисциплины, Название дисциплины, Дата, Оценка).

Результатом деления отношения R1 на отношение R2 (R1/R2) является отношение, полученное по следующему правилу:

пусть R1 имеет ранг (количество атрибутов в отношении) К1, R2 – ранг К2, К1>К2 и К2 ≠ 0;

кортеж нового отношения имеет длину К1-К2 и для всех кортежей r2 принадлежащих R2 кортеж (r1, r2) принадлежит R1.

Пример.

Пусть даны отношения ЗНАНИЕ ЯЗЫКА(Номер студента, Название языка) и ЯЗЫК ПРОГРАММИРОВАНИЯ(Название языка).

Представим эти отношения в виде множества кортежей:

ЗНАНИЕ_ЯЗЫКА = {(1001, VBA), (1001, Delphi), (1002, C++), (1003, VBA), (1003, C++), (1003, Delphi)};

ЯЗЫК_ПРОГРАММИРОВАНИЯ((VBA), (Delphi), (C++)).

Тогда

ЗНАНИЕ_ЯЗЫКА / ЯЗЫК_ПРОГРАММИРОВАНИЯ = {(1003)},

так как только один студент знает все языки, представленные в отношении ЯЗЫК_ПРОГРАММИРОВАНИЯ.

3 Дополнительные реляционные операции

Дополнительные реляционные операции были предложены Дейтом (C.J. Date). Они предназначены для расширения возможностей реляционной алгебры с точки зрения описания запросов к базе данных.

Операция переименования позволяет разрешать конфликт имен атрибутов путём изменения имени атрибута.

Возможная форма записи:

RENAME R A AS B,

где R – имя отношения;

A – старое имя атрибута;

B – новое имя атрибута.

Операция расширения позволяет добавить к существующему отношению, как правило, вычисляемый атрибут. Возможная форма записи:

EXTEND R ADD F AS B,

где R – исходное отношение;

F – вычисляемое выражение;

B – новое имя.

В выражении можно использовать обычные арифметические операции и некоторые агрегатные функции, такие как: COUNT (количество), SUM (сумма), AVG (среднее), MAX (максимальное), MIN (минимальное). Например:

EXTEND (R JOIN S) ADD (вес * количество) AS Общий вес,

где к отношению, полученному в результате операции естественного соединения отношений R и S, добавляется в качестве нового атрибута результат произведения значений атрибутов вес и количество.

Операции переименования и расширения можно распространить на несколько новых атрибутов.

Операция подведения итогов предназначена для выполнения вычислений по группе кортежей и может быть описана следующим образом:

SUMMARISE R BY (M) ADD F AS B,

где R – исходное отношение;

M – подмножество атрибутов отношения R;

F – вычисляемое выражение (см. операцию расширения);

B – имя нового атрибута.

Результатом операции является новое отношение, атрибутами которого становятся атрибуты множества М и вычисляемый атрибут В. Кортежи отношения являются результатом выполнения проекции отношения R на множество М и вычисления атрибута В.

Например:

SUMMARISE ЭКЗАМЕН BY (Номер студента) ADD AVG Оценка AS Средний_балл.

Операция присваивания позволяет сохранить результат операций над отношениями:

R := S.