Вы находитесь на странице: 1из 4

ПЕРМСКИЙ ФИЛИАЛ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО

АВТОНОМНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ


ВЫСШЕГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»
Факультет экономики, менеджмента и бизнес-информатики

Аверенс Августа Артемовна


ОСНОВЫ РЕЛЯЦИОННОЙ АЛГЕБРЫ

ПРАКТИЧЕСКАЯ РАБОТА №3
студентки образовательной программы бакалавриата «Экономика»
по направлению подготовки 38.03.01 Экономика

Пермь, 2020 год


Ответы на вопросы:
1) Традиционные операции реляционной алгебры
Это классические операции над множествами:
 Объединение – отношение с тем же заголовком, что и у изначальных
отношений, и телом, состоящих из кортежей, принадлежащим первому,
второму или обоим отношениям; (R1 union R2)
 Пересечение – отношение с тем же заголовком, что и у изначальных
отношений, и телом, состоящих из кортежей, принадлежащих
одновременно обоим изначальным отношениям (R1 intersect R2);
 Вычитание – отношение с тем же заголовком, что и у изначальных
отношений, и телом, состоящим из кортежей, принадлежащих первому
отношению, но не принадлежащих второму (R1 minus R2);
 Декартово произведение – отношение, заголовок которого является
сцеплением заголовков обоих изначальных отношений, а тело состоит
из кортежей, являющихся сцеплением обоих их кортежей (R1 times R2).

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


 Выборка (ограничение, селекция) – отношение с тем же заголовком,
что и у изначального отношения, и телом, состоящим из кортежей,
значения атрибутов которых при подстановке в условие дают значение
ИСТИНА (R where c);
 Проекция – отношение с заголовком изначального отношения и телом,
содержащим множество кортежей, для которых в первоначальном
отношении найдутся кортежи со значением атрибута R1 равным r1 и т.д.
(R[R1 , R2 , … Rn]);
 Соединение – образование результирующего отношения, кортежи
которого являются конкатенацией кортежей первого и второго
отношений и удовлетворяют этому условию; Бывает естественное (R1
join R2), экви (соединение отношений А и Б в соответствии с
некоторым равенством x=y), тета и общая операция соединения (|R1
times R2| where c);
 Деление – реляционная операция деления, которая имеет два операнда:
бинарное и унарное отношения. Результирующее отношение состоит
из одноатрибутных кортежей, включающих значения первого атрибута
кортежей первого операнда, таких что множество значений второго
атрибута совпадает со множеством значений второго операнда (R1
dividedby R2);

3) В чем заключается замкнутость реляционной алгебры?


Реляционная алгебра представляет собой набор таких операций над
отношениями, что результат каждой из операций также является
отношением. Это свойство алгебры называется замкнутостью.
Реляционная алгебра является замкнутой, т.к. в качестве аргументов в
реляционные операторы можно подставлять другие реляционные операторы,
подходящие по типу. Таким образом, в реляционных выражениях можно
использовать вложенные выражения сколь угодно сложной структуры.
4) Какие отношения называются совместимыми по типу?
Будем называть отношения совместимыми по типу, если они имеют
идентичные заголовки, а именно,

 Отношения имеют одно и то же множество имен атрибутов, т.е. для


любого атрибута в одном отношении найдется атрибут с таким же
наименованием в другом отношении,
 Атрибуты с одинаковыми именами определены на одних и тех же
доменах.

5) Для чего используется оператор rename?


Rename – оператор, необходимый для переименования атрибутов.

ЗАДАЧИ
Задание 1. Получить имена поставщиков, поставляющих деталь № 2
|| PD join P | where DNUM = 2 | |PNAME|
Правильный ответ: Иванов, Петров
Задание 2. Получить имена поставщиков, поставляющих по крайней
мере 1 гайку

1 метод: ||| PD join P| join D| where DNUM = 2, VOLUME > 1| |PNAME|

2 метод: ||| PD join P| join D| where DNAME = "Гайка"| |PNAME|

Правильный ответ: Иванов, Петров

Задание 3. Получить имена поставщиков, поставляющих все детали


||PD |DNUM, PNUM| dividedby D |DNUM|| join P| |PNAME|
Правильный ответ: Иванов
Задание 4. Получить имена поставщиков, не поставляющих деталь № 2

1 метод: ||PD join P| where DNUM ≠ 2| |PNAME|


2 метод: || P|PNUM| minus ||P join PD| where DNUM = 2| |PNUM|| join P| |
PNAME|
Правильный ответ: Сидоров

Вам также может понравиться