Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-3praktika.doc
Скачиваний:
41
Добавлен:
30.06.2021
Размер:
371.2 Кб
Скачать

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

Горизонтальный выбор, или операция фильтрации, или операция ограничения отношений (унарная операция)

Задание 1.7 . В отношение R12 выбрать из R10 товары с артикулом «05».

R12

Артикул

Товар

Склад

05

Колонки Logitech

Склад 1

05

Колонки Logitech

Склад 2

05

Колонки Logitech

Склад 3

Операция проецирования (унарная операция)

Задание 1.8. Выбрать все склады, которые хранят товар «Колонки SVEN». Построить отношение R14.

Склад

Склад 1

Склад 3

Задания 1.9 – 1.11. Даны отношения RD1-RD4

RD2 Пользователи

Номер

ФИО

Подраз

деление

00011073

Качалов В.И.

1

00011075

Дуров Ю.В.

1

00011076

Папанов А.Д.

2

00011004

Ермолаев Г.О.

1

00013062

Янковский К.О.

3

00011003

Нечаев А.С.

4

00011005

Бортников Ю.И.

2


RD1 Задания

Текст

Пользо

ватель

Срочное

1

Задание 1

00011076

1

2

Задание 2

00011075

0

3

Задание 3

00011073

0

4

Задание 4

00013062

1

5

Задание 5

00011003

1

6

Задание 6

00013062

1

7

Задание 7

00011075

0


RD3 Подразделения

Название

Город

1

Главный офис

Москва

2

Московский филиал

Москва

3

Филиал на Неве

Санкт-Петербург

4

Филиал в Германии

Берлин

5

Филиал в США

Даллас

6

Восточный филиал

Хабаровск


RD4 Часовые пояса

Город

Часовой пояс

(UTC+X)

Москва

4

Санкт-Петербург

4

Берлин

0

Даллас

-6

Хабаровск

11


Задание 1.9. Найти подразделения, находящиеся западнее Москвы.

Название

Филиал на Неве

Филиал в Германии

Филиал в США



Задание 1.10. Найти пользователей из Москвы, имеющих срочные задания.

Пользователь

00011076

00013062

00011003



Задание 1.11. Найти пользователей, имеющих срочные задания, у которых в данный момент столько же времени, что и у вас.

Пользователь

00011076

00013062



Операция условного соединения (бинарная операция)

Задание 1.12. Пусть отношение R15 содержит перечень товаров с указанием упаковки. Получить перечень товара, которые находятся на складе 1 в упаковке «OEM».

R15

Артикул

Товар

Упаковка

01

Монитор Samsung

OEM

02

Монитор NEC

ODM

03

Монитор Sony

OEM

04

Колонки SVEN

Full

05

Колонки Logitech

Full

06

Телефон Apple

OEM

07

Телефон Nokia

OEM

08

Монитор Philips

ODM

09

Колонки Pioneer

Full

10

Телефон Siemens

OEM

Товар

Монитор Samsung

Монитор Sony

Телефон Apple

Телефон Nokia

Телефон Siemens

Операция деления

Задание 1.13. Используя отношения R7, и R10 определить перечень складов (отношение R17), в которых хранится вся номенклатура товаров.

Склад

Склад 1

Задание 1.14. Выполним тот же запрос с использованием других операций. Для этого определим последовательность промежуточных запросов, которая приведет нас к конечному результату:

1. Построим отношение, которое моделирует ситуацию, когда на каждом складе хранится вся номенклатура, это уже построенное нами ранее расширенное декартово произведение отношений R7 и R8. Это отношение R9:

R9

Артикул

Товар

Склад

01

Монитор Samsung

Склад 1

01

Монитор Samsung

Склад 2

01

Монитор Samsung

Склад 3

02

Монитор NEC

Склад 1

02

Монитор NEC

Склад 2

02

Монитор NEC

Склад 3

03

Монитор Sony

Склад 1

03

Монитор Sony

Склад 2

03

Монитор Sony

Склад 3

04

Колонки SVEN

Склад 1

04

Колонки SVEN

Склад 2

04

Колонки SVEN

Склад 3

05

Колонки Logitech

Склад 1

05

Колонки Logitech

Склад 2

05

Колонки Logitech

Склад 3

06

Телефон Apple

Склад 1

06

Телефон Apple

Склад 2

06

Телефон Apple

Склад 3 Склад 1

07

Телефон Nokia

Склад 1

07

Телефон Nokia

Склад 2

07

Телефон Nokia

Склад 3

08

Монитор Philips

Склад 1

08

Монитор Philips

Склад 2

08

Монитор Philips

Склад 3

09

Колонки Pioneer

Склад 1

09

Колонки Pioneer

Склад 2

09

Колонки Pioneer

Склад 3

10

Телефон Siemens

Склад 1

10

Телефон Siemens

Склад 2

10

Телефон Siemens

Склад 3

2. Теперь найдем перечень того, что из обязательной номенклатуры не хранится на некоторых складах

Товар

Монитор Samsung

Монитор NEC

Монитор Sony

Колонки SVEN

Колонки Pioneer

Телефон Siemens

3. Далее найдем те склады, в которых не все товары хранятся, для этого нам надо отношение R11 спроецировать на столбец «склад»:

Склад

Склад 2

Склад 3

  1. А теперь из перечня всех складов вычтем те, где хранятся не все детали, и получим ответ на запрос, и это будет тот же результат, что и в отношении R17.

Склад

Склад 1

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

R1 = (ФИО, Дисциплина, Оценка);

R2 = (ФИО, Группа);

R3 = (Группы, Дисциплина)

где R1 — информация о попытках (как успешных, так и неуспешных) сдачи экзаменов студентами; R2 — состав групп; R3 — список дисциплин, которые надо сдавать каждой группе. S – отношение, содержащее требуемую информацию.

□ Список S студентов, которые сдали экзамен по БД на «отлично». Результат может быть получен применением операции фильтрации по сложному условию к отношению R1 и последующим проектированием на атрибут «ФИО» (нам ведь требуется только список фамилий).

S = R1[Дисциплина=’БД’, Оценка=’отлично’]

□ Список R4 тех, кто должен был сдавать экзамен по БД, но пока еще не сдавал. Сначала найдем всех, кто должен был сдавать экзамен по БД. В отношении R3 находится список всех дисциплин, по которым каждая группа должна была сдавать экзамены, ограничим перечень дисциплин только «БД». "Для того чтобы получить список студентов, нам надо соединить отношение R3 с отношением R2, в котором определен список студентов каждой группы.

R4 = R3[Дисциплина=’БД’] Λ R2

□ Теперь получим список R5 всех, кто сдавал экзамен по «БД» (нас пока не интересует результат сдачи, а интересует сам факт попытки сдачи, то есть присутствие в отношении R1):

и, наконец, результат S – все, кто есть в первом множестве, но не во втором:

R5 = R1[Дисциплина=’БД’, Оценка>1] \ R2

□ Список S несчастных, имеющих несколько двоек:

Этот пример весьма интересен: для поиска строк, удовлетворяющих в совокупности условию больше одного, применяется операция соединения отношения с самим собой. Поэтому мы как бы взяли копию отношения R1 и назвали ее R'1.

R1[Оценка=’неудовлетворительно’] JOIN R1[Оценка=’неудовлетворительно’]

□ Список R4 круглых отличников. Строим список всех пар <студент—дисциплина>, которые в принципе должны быть сданы:

Строим список R5 пар <студент—дисциплина>, где получена оценка «отлично»:

R5 = R4[Оценка=’5’]

Строим список R6 студентов, что-либо не сдавших на «отлично»:

R6[Оценка=’неудовлетворительно’, ‘удовлетворительно’, ‘хорошо’]

Наконец, исключив последнее отношение из общего списка студентов, получаем результат S:

Подсказка: для получения множества студентов, что-либо не сдавших на «отлично» (R6), следует осуществить «инверсию» множества всех отлично сданных пар <студент – дисциплина> (R5) путем вычитания его из предварительного построенного универсального множества (R4).

R1 — информация о попытках (как успешных, так и неуспешных) сдачи экзаменов студентами

R1

ФИО

Дисциплина

Оценка

Абдулов Мехроч Кавгакович

БД

отлично

Абдулов Мехроч Кавгакович

РОС

отлично

Абдулов Мехроч Кавгакович

ПИС

отлично

Бепулов Сумдор Гарибович

БД

не сдавал

Бепулов Сумдор Гарибович

РОС

хорошо

Бепулов Сумдор Гарибович

ПИС

удовлетворительно

Гадоев Бахтовар Ахтарович

БД

не удовлетворительно

Гадоев Бахтовар Ахтарович

РОС

не удовлетворительно

Гадоев Бахтовар Ахтарович

ПИС

не сдавал

Ибрагимов Акбар Ахмедович

БД

отлично

Ибрагимов Акбар Ахмедович

РОС

хорошо

Ибрагимов Акбар Ахмедович

ПИС

удовлетворительно

Камолов Мустафа Далерович

БД

не удовлетворительно

Камолов Мустафа Далерович

РОС

не удовлетворительно

Камолов Мустафа Далерович

ПИС

хорошо

Пулатов Рахматулло Азамджонович

БД

удовлетворительно

Пулатов Рахматулло Азамджонович

РОС

не сдавал

Пулатов Рахматулло Азамджонович

ПИС

хорошо

Рахимов Рахмон Насимович

БД

отлично

Рахимов Рахмон Насимович

РОС

отлично

Рахимов Рахмон Насимович

ПИС

отлично

Рустамов Сухроб Рустамови

БД

хорошо

Рустамов Сухроб Рустамови

РОС

удовлетворительно

Рустамов Сухроб Рустамови

ПИС

не удовлетворительно

Хайтулов Зайнидин Хамуевич

БД

отлично

Хайтулов Зайнидин Хамуевич

РОС

отлично

Хайтулов Зайнидин Хамуевич

ПИС

отлично

Шоев Сорбон Шерович

БД

отлично

Шоев Сорбон Шерович

РОС

хорошо

Шоев Сорбон Шерович

ПИС

не удовлетворительно

R2 — состав групп

R2

ФИО

Группа

Абдулов Мехроч Кавгакович

БСТ1803

Бепулов Сумдор Гарибович

БСТ1801

Гадоев Бахтовар Ахтарович

БСТ1802

Ибрагимов Акбар Ахмедович

БСТ1802

Камолов Мустафа Далерович

БСТ1803

Пулатов Рахматулло Азамджонович

БСТ1803

Рахимов Рахмон Насимович

БСТ1801

Рустамов Сухроб Рустамови

БСТ1802

Хайтулов Зайнидин Хамуевич

БСТ1803

Шоев Сорбон Шерович

БСТ1801

R3 — список дисциплин, которые надо сдавать каждой группе

R3

Группа

Дисциплина

БСТ1801

БД

БСТ1801

РОС

БСТ1801

ПИС

БСТ1802

БД

БСТ1802

РОС

БСТ1802

ПИС

БСТ1803

БД

БСТ1803

РОС

БСТ1803

ПИС

Соседние файлы в предмете Технологии баз данных