Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретические основы реляционных баз данных. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
936 Кб
Скачать

- 78 -

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

В алгебраических выражениях допускается использование круглых скобок для изменения приоритета. В отличие от других типов алгебраических выражений, выражения реляционной алгебры не имеют приоритета за исключением стандартного приоритета операции пересечения перед объединением.

Алгебраические выражения можно рассматривать как отображения множества отношений в одно отношение, причем схема результирующего отношения зависит как от схем, так и от отношений, входящих в выражение. Если мы обозначим алгебраическое выражение как E, то схему этого выражения будем обозначать как sch(E). Схема выражения определяется рекурсивно согласно набору правил, регламентирующему процесс получения схем.

1.Если E = ri(R), то sch(E)=R.

2.Если E — постоянное отношение (постоянное отношение играет роль константы в реляционной алгебре и представляет отношение с одним кортежем и одним атрибутом), то sch(E) — схема постоянного отношения.

3.Если E = E1 E2, E1 E2, E1 — E2, C(E1), ~E1 , где C — любое допустимое условие, то sch(E) = sch(E1) = sch(E2).

4.Если E = X(E1), то sch(E) = X.

5.Если E = E1 E2, то sch(E) = sch(E1) — sch(E2).

6.Если E = E1 E2 или E = E1 [C] E2, то sch(E) = sch(E1) sch(E2).

7.Если E = A1A2...Ak B1B2...Bk (E1), то sch(E) = (sch(E1) —

A1A2...Ak) B1B2...Bk.

3.3.1. Дополнительные операторы

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

3.3.1.1. Оператор расщепления

Используется для разделения исходного отношения r(R) на два по указанному условию. Первое отношение включает кортежи, удовлетворяющие условию, а второе — не удовлетворяющие ему. В

- 79 -

качестве условия берется предикат на отношении, который будем обозначать как (t). Сам оператор будет записываться в следующем виде: (s,q) = SPLIT (r). Оператор очень близок к оператору выбора. Для примера рассмотрим отношение студенты с предикатом (t) = = t(ПОЛ) = ‘М’. В результате получим

r (

 

ФАМИЛИЯ

ИМЯ

ГРУППА

БАЛЛ

ПОЛ

)

 

 

 

 

 

 

 

 

 

 

 

Балашов

Андрей

342

5.00

М

 

 

 

Катеринченко

Андрей

342

4.59

М

 

 

 

Малин

Сергей

345

4.87

М

 

 

 

Никулкин

Сергей

342

4.79

М

 

 

 

Чертков

Максим

344

4.31

М

 

q (

 

ФАМИЛИЯ

ИМЯ

ГРУППА

БАЛЛ

ПОЛ

)

 

 

 

 

 

 

 

 

 

 

 

Колычева

Лия

349

4.38

Ж

 

 

 

Фахрудинова

Тамара

342

4.12

Ж

 

3.3.1.2. Оператор FACTOR

Рассматриваемый оператор позволяет избавиться от избыточности в том случае, когда размерность доменов двух или более атрибутов ограничена. Чаще рассматривается случай с двумя атрибутами, поскольку количество участвующих в операции атрибутов приводит к формированию нового атрибута с доменом, величина которого зависит как от величин исходных доменов, так и от их размерности.

Для примера предположим, что у нас есть список лекторов, которые могут иметь ученое звание доцента или профессора и ученую степень кандидата или доктора наук:

лекторы ( ФАМИЛИЯ

ЗВАНИЕ

СТЕПЕНЬ )

 

 

 

 

 

 

Байков

Доцент

кандидат

 

Беляков

Доцент

кандидат

 

Сарычев

Доцент

кандидат

 

Григорьев

Профессор

кандидат

 

Логинов

Доцент

кандидат

 

Петровский

Доцент

доктор

 

Никонов

Профессор

доктор

При таких ограничениях возможны только четыре комбинации атрибутов ЗВАНИЕ и СТЕПЕНЬ. Проводя разбиение отношения лекторы на два с формированием дополнительного столбца, мы добиваемся сокращения избыточности:

лекторы1 ( ФАМИЛИЯ МЕТКА)

Байков 4 Беляков 4 Сарычев 4

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]