OtchetPZ_6_Relyacionnaya_algebra_zadachi
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Кафедра безопасности информационных систем
ОТЧЁТ
по практической работе № 6 на тему: «Основы реляционной алгебры»
по дисциплине «Управление данными»
Выполнил: студент группы ИСТ-114,
«24»октября 2022 г. __________/Медведева С.Г/
Принял:
«__» октября 2022г. __________/Ю.Я. Перевозник/
Санкт-Петербург
2022
Цель работы
Освоить основные операции и решение задач с помощью реляционной алгебры.
Задание №1
Даны два домена: D9 = {Москва, СПб, Саратов} и D10 = {Иванов, Сидоров}. Определить декартово произведение этих доменов.
Решение
Декартово произведение доменов D=D9×D10 выглядит следующим образом: D = {(Москва, Иванов), (Москва, Сидоров), (СПб, Иванов), (СПб, Сидоров), (Саратов, Иванов), (Саратов, Сидоров)}
Задание №2
Даны три отношения C, R и P, приведенные в таблицах 1, 2 и 3 соответственно. Определить результаты для операций объединение отношений, разность отношений, декартово произведение отношений, проекция и селекция.
Таблица 1 – отношение С
a |
b |
c |
d |
1 |
2 |
Таблица 2 – отношение R
e |
n |
a |
a |
b |
c |
1 |
b |
c |
c |
e |
b |
Таблица 3 – отношение P
b |
c |
f |
h |
a |
b |
Решение
Объединение отношений: это отношения, состоящие из множества кортежей, принадлежащих к отношениям, за исключением повторяющихся. Это отношение применятся к отношениям одной арности.
Таким образом из перечисленных отношения операции объединения могут быть подвергнуты только С и Р.
a |
b |
c |
d |
1 |
2 |
b |
c |
f |
h |
Таблица 4 - C∪P
Разность отношений: это отношение, состоящие из множества кортежей, принадлежащих первому отношению и не принадлежащих второму.
Операция не применятся к отношения разной арности.
Разность R=C-P показана в таблице 5.
c |
d |
1 |
2 |
Таблица 5 – отношение C-P
Декартово произведение отношений: это множество кортежей арности (k1+k2), где k1 первые элементы, образующие кортеж первого отношения, а последний k2 элементов образуют кортеж из второго отношения.
Декартово произведение отношений R=C×P (C = {(a, b), (c, d), (1, 2)}, P= {(b, c), (f, h), (a, b)}) будет выглядеть следующим образом:
R = {(a, b, b, c), (a, b, f, h), (a, b, a, b), (c, d, b, c), (c, d, f, h), (c, d, a, b), (1, 2, b, c), (1, 2, f, h), (1, 2, a, b)}
Проекция: операция, результат которой – отношение, состоящие из указанных столбцов, которые компонуются в указанном порядке.
Результат проекции R = π3,2,1(R) приведен в таблице 6.
a |
n |
e |
c |
b |
a |
c |
b |
1 |
b |
e |
c |
Таблица 6 – отношение π3,2,1(R)
Селекция: _______ операция, результат которой – отношение, имеющие строки(кортежи), которые удовлетворяют формуле F. Формула F – это формула, образованная операндами, являющимися номера столбцов, и логическими и арифметическими операторами.
Результат селекции R = 𝜎(1=a) 𝑜𝑟 ((1=1) and (3=c))(P) приведен в таблице 7.
a |
b |
c |
1 |
b |
c |
Таблица 7 – отношение R
Задание №3
Даны отношения П (Поставщики), ПТ (Поставки) и ПНов (таблицы 8,9 и 10 соответственно).
Выполнить 5 задач на этих отношениях.
Таблица 8 – П (Поставщики)
Ном |
Фам |
Статус |
Город |
S1 |
Иванов |
80 |
Москва |
S2 |
Петров |
40 |
Самара |
S3 |
Кротов |
100 |
Москва |
Таблица 9 –ПТ (Поставки)
Ном |
Ном_дет |
Кол_дет |
S1 |
D1 |
100 |
S1 |
D3 |
200 |
S2 |
D3 |
150 |
S3 |
D3 |
50 |
Таблица 10 – ПНов
Ном |
Фам |
Статус |
Город |
S4 |
Петров |
30 |
Тверь |
S5 |
Сидоров |
50 |
Тверь |
Решение
Задача 1: найти города, где проживают поставщики. Привести формулу и результат.
Как я поняла у нас есть две таблицы с поставщиками, поэтому сначала мы их объединим.
Ном |
Фам |
Статус |
Город |
S1 |
Иванов |
80 |
Москва |
S2 |
Петров |
40 |
Самара |
S3 |
Кротов |
100 |
Москва |
S4 |
Петров |
30 |
Тверь |
S5 |
Сидоров |
50 |
Тверь |
Таблица 11 - П∪ПНов
После чего используем проекцию, чтобы выбрать только города и фамилии поставщиков. Сделаем это по формуле R = π2,4(П∪ПНов) и получим таблицу.
Фам |
Город |
Иванов |
Москва |
Петров |
Самара |
Кротов |
Москва |
Петров |
Тверь |
Сидоров |
Тверь |
Таблица 12 - R = π2,4(П∪ПНов)
Задача 2: найти поставщиков со статусом больше 70. Привести формулу и результат.
Аналогичном первому заданию объединяем две таблицы. После чего используем операцию селекции. Сделаем это по формуле R = 𝜎(3>70) ( П∪ПНов) и получим таблицу.
Ном |
Фам |
Статус |
Город |
S1 |
Иванов |
80 |
Москва |
S3 |
Кротов |
100 |
Москва |
Таблица 13 - R = 𝜎(3>70) ( П∪ПНов)
Задача 3: найти номера и фамилии поставщиков со статусом меньше 80. Привести формулу и результат.
Аналогично объединяем две таблицы. После чего используем операцию селекцию, чтобы найти поставщиков со статусом меньше 80. Сделаем это по следующей формуле R1 = 𝜎(3<80) (П∪ПНов) и получим таблицу.
Ном |
Фам |
Статус |
Город |
S2 |
Петров |
40 |
Самара |
S4 |
Петров |
30 |
Тверь |
S5 |
Сидоров |
50 |
Тверь |
Таблица 14 – R1 = 𝜎(3<80) ( П∪ПНов)
Так как нам нужно только номер и фамилии этих поставщиков выполним проекцию. Сделаем это по следующей формуле R = π2,3(R1) и получим таблицу.
Ном |
Фам |
S2 |
Петров |
S4 |
Петров |
S5 |
Сидоров |
Таблица 15 – R = π2,3(R1)
Задача 4: удалить все поставки поставщика с номером S1
Для начала мы создадим отношение, состоящие только из поставок с номером S1. Сделаем это по формуле R1 = 𝜎(1=S1) (ПТ) и получим таблицу
Ном |
Ном_дет |
Кол_дет |
S1 |
D1 |
100 |
S1 |
D3 |
200 |
Таблица 16 - R1 = 𝜎(1=S1) (ПТ)
После чего с помощью операции разности мы вычтем из таблицы ПТ все записи с номером S1. Сделаем это по формуле R2 = ПТ – R1 и получим таблицу.
Ном |
Ном_дет |
Кол_дет |
S2 |
D3 |
150 |
S3 |
D3 |
50 |
Таблица 17 – R2 = ПТ-R1
Задача 5: добавить в таблицу П новых поставщиков из таблицы Пнов.
Чтобы добавить в таблицу поставщиком новых поставщиком воспользуемся операцией объединения, как в первом задании.
Задание №4
Дан список студентов факультетов в виде отношения со столбцами ФИО, Дата рождения, Шифр группы и Признак наличия стипендии. Выполнить поставленные задачи на этом отношении.
Решение
Задача 1: сформировать список студентов заданной группы, получающих стипендию.
Для начала используя операцию проекции составим таблицу, состоящую из полей ФИО Шифр группы и Признак наличия стипендии. Сделаем это по формуле R1 = π1,3,4(R). После чего использую операцию селекции выберем только тех студентов, у которых есть стипендия. Сделаем это по формуле R2 = 𝜎(3=true) (R1) если нам нужно чтобы в таблице были студенты из конкретной группы, то нужно добавит дополнительное условие и формула будет выглядеть так R2 = 𝜎(3=true) and (2 = номер группы)(R1).
Задача 2: выдать фамилии студентов, родившихся до 1 сентября 1990 года
Для начала выполним селекцию по формуле R1 = 𝜎(2 < 01.09.1990)(R) после чего выполним проекцию по формуле R2 = π1 (R1).
Задача 3: сформировать список студентов – старше 20 лет, получающих стипендию.
Если отсчитывать сегодняшним числом, то студенты старше 20 должны быть рождены позже 23.10.2001. Сделаем селекцию по формуле R1 = 𝜎(2 < 23.10.2001) and (4 = true)(R). Таким образом мы получим студентов которые старше 20 и получают стипендию.
Вывод
В ходе практической работы были изучены основные операции реляционной алгебры, а также решены задачи методами реляционной алгебры.