Файл: Лабораторные работы по курсу "Базы данных" (2й модуль 3го курса).doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.11.2023

Просмотров: 125

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


пород, не представленных в клубе;

овчарок, получавших награды в текущем году.

Л.р. №3. Работа с представлениями. Для созданных представлений необходимо проверить с помощью запросов UPDATE, DELETE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.

Представление "Родословная": данные о собаке  данные о матери  данные об отце. (Если данных о родителях нет в таблице – выводить пустые поля).

Представление "Владельцы, имеющие двух и более собак" (все данные о владельце).

Представление "Статистика по породам": порода  количество собак  самая ранняя дата рождения  самая поздняя дата рождения. (Умершие собаки не учитываются).

Л.р. №4. Изучение операций реляционной алгебры. Необходимо написать на языке SQL запросы, которые реализуют операции реляционной алгебры. Если для демонстрации операций РА недостаточно отношений, созданных во время выполнения работы №1, то следует создать дополнительные отношения.

Вариант 18.

Л. р. №1. Создание и заполнение отношений БД рецептов блюд.

Отношение "Ингредиенты" (поля "Идентификатор" (ПК), "Название", "Примечание").

Отношение "Типы блюд" (поля "Название" (ПК)). Примеры: первое, гарнир, десерт и т.п.

Отношение "Блюда":

Содержимое поля

Тип

Длина

Дес.

Примечание

Идентификатор

N

6

0

первичный ключ

Название

C

50




обязательное поле

Тип

С

25




внешний ключ к таблице "Типы блюд"

Общий вес

N

5

2

обязательное поле

Количество порций

N

2

0

по умолчанию 1

Сезон

С

20




список значений (лето, зима, все, весна-лето и т.д.)

Необходимое оборудование

С

50




плита, духовка, микроволновая печь и т.д.

Калорийность

N

4




на 100 г продукта

Время приготовления

Т







обязательное поле

Последовательность приготовления

С

255




обязательное поле


Отношение "Состав" (поля "Блюдо" (ВнК), "Ингредиент" (ВнК), "Количество", "Единица измерения").

Л.р. №2. Выборка данных. Один из запросов надо написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.

Создать упорядоченные списки:

летних салатов, время приготовления которых меньше получаса;

блюд, в которые входит авокадо;

десертов, не требующих применения оборудования;

блюд, для которых вес одной порции меньше 50 г или больше 250 г.

Вывести список ингредиентов, которые не входят ни в одно блюдо.

Л.р. №3. Работа с представлениями. Для созданных представлений необходимо проверить с помощью запросов UPDATE, DELETE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.

Представление "Калорийность одной порции": блюдо  вес порции  калорийность. Если количество порций не указано, считать вес порции равным 100 граммам.

Представление "Состав блюда": блюдо – ингредиент  количество  единица измерения.

Представление "Мясные блюда, для приготовления которых необходима духовка".

Л.р. №4. Изучение операций реляционной алгебры. Необходимо написать на языке SQL запросы, которые реализуют операции реляционной алгебры. Если для демонстрации операций РА недостаточно отношений, созданных во время выполнения работы №1, то следует создать дополнительные отношения.

Вариант 19.

Л. р. №1. Создание и заполнение отношений БД фитнес-клуба.

Отношение "Группы" (поля "Название" (ПК), "Примечание").

Отношение "Клиенты" (поля "ФИО", "№ абонемента" (ПК), "Группа" (ВнК), "Дата рождения", "Пол", "Вес", "Рост", "Начало действия абонемента", "Окончание действия абонемента", "Телефон").

Отношение "Тренеры" (поля "Идентификатор" (ПК), "ФИО", "Должность", "Телефон").

Отношение "Расписание занятий":

Содержимое поля

Тип

Длина

Дес.

Примечание

Идентификатор

N

6

0

первичный ключ

Группа

C

20




внешний ключ к таблице "Группы"

Тренер

N

5

0

внешний ключ к таблице "Тренеры"

Вид занятий

С

30




обязательное поле

Зал

С

10




задать список значений

День недели

С

2




пн, вт, ср, чт, пт, сб, вс

Начало занятий

Т







обязательное поле

Продолжительность

Т







обязательное поле


Л.р. №2. Выборка данных. Один из запросов надо написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.

Создать упорядоченные списки:

клиентов группы "Брейк-данс", у которых срок действия абонемента заканчивается в этом месяце;

клиентов, у которых дни рождения в текущем месяце;

групп с указанием количества клиентов на сегодняшний день;

общая продолжительность занятий в каждом зале по дням недели.

Вывести расписание занятий в определённом зале.

Л.р. №3. Работа с представлениями. Для созданных представлений необходимо проверить с помощью запросов UPDATE, DELETE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.

Представление "Тренеры, у которых нет занятий".

Представление "Тренеры групп": группа – тренер.

Представление "Количество текущих клиентов по видам занятий": вид занятий  количество клиентов-мужчин – количество клиентов-женщин.

Л.р. №4. Изучение операций реляционной алгебры. Необходимо написать на языке SQL запросы, которые реализуют операции реляционной алгебры. Если для демонстрации операций РА недостаточно отношений, созданных во время выполнения работы №1, то следует создать дополнительные отношения.

Вариант 20.

Л.р. №1. Создание и заполнение отношений БД спортивного клуба.

Отношение "Виды спорта" (поле "Название" (ПК), "Тип" – индивидуальный или парный).

Отношение "Тренеры" (поля "Идентификатор" (ПК), "ФИО", "Вид спорта" (ВнК), "Уровень мастерства" (КМС, МС и т.д.), "Текущий рейтинг").

Отношение "Спортсмены":

Содержимое поля

Тип

Длина

Дес.

Примечание

Номер удостоверения

N

6

0

первичный ключ

ФИО

C

40




обязательное поле

Дата рождения

D







обязательное поле

Пол

С

1




обязательное поле

Уровень мастерства

С

7




1 разряд, 2 разряд, КМС, МС и т.д.

Тренер (текущий тренер)

N

3

0

внешний ключ к таблице "Тренеры"

Текущий рейтинг спортсмена

N

4

0




Партнер (для парных видов)

N

6

0

внешний ключ к таблице "Спортсмены"

Адрес

С

40




обязательное поле

Мобильный телефон

С

11







Домашний телефон

С

11







Дата прихода в клуб

D











Отношение "Предыдущие тренеры" (поля "Тренер" (ВнК), "Спортсмен" (ВнК), "Дата окончания тренировок"). В этой таблице хранится история смены тренеров спортсменами.

Л.р. №2. Выборка данных. Один из запросов надо написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.

Создать упорядоченные списки:

спортсменов с их текущими тренерами и видами спорта;

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

спортсменов, у которых не указан ни домашний, ни мобильный телефон.

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

Л.р. №3. Работа с представлениями. Для созданных представлений необходимо проверить с помощью запросов UPDATE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.

Представление "Переходы спортсменов": спортсмен – тренер – вид спорта – дата начала занятий – дата завершения занятий (или по настоящее время).

Представление "Ошибки данных для парных видов спорта". Поле "партнер" может быть заполнено только для спортсменов, занимающихся парным видом спорта (но может быть не заполнено). Ссылки в этом поле должны быть взаимными, т.е. партнеры ссылаются друг на друга. Представление выдает нарушение этих правил.

Представление "Спортсмены, которые занимаются у одного тренера (не меняли тренеров)".

Л.р. №4. Изучение операций реляционной алгебры. Необходимо написать на языке SQL запросы, которые реализуют операции реляционной алгебры. Если для демонстрации операций РА недостаточно отношений, созданных во время выполнения работы №1, то следует создать дополнительные отношения.


Вариант 21.

Л. р. №1. Создание и заполнение отношений БД аптеки.

Отношение "Список лекарств" (поля "Id" (ПК), "Название лекарства", "Рецептурный отпуск" – да/нет).

Отношение "Фирмы" (поля "Название фирмы" (ПК), "Страна").

Отношение "Лекарства":

Содержимое поля

Тип

Длина

Дес.

Примечание

Идентификатор

N

8




первичный ключ

Название

N

6




внешний ключ к таблице "Список лекарств"

Форма выпуска

С

20




обязательное поле

Количество в упаковке

N

3




обязательное поле

Фирма

C

25




внешний ключ к таблице "Фирмы"

Дозировка

N

5

3

обязательное поле

Количество в аптеке

N

4

0

обязательное поле

Цена

N

6

2

обязательное поле, больше 0

Минимальный запас

N

4

0

обязательное поле

Отношение "Отпуск по рецептам" (поля "Лекарство" (ВнК), "Номер рецепта", "ФИО пациента", "Полис", "Дата отпуска", "Количество").

Л.р. №2. Выборка данных. Один из запросов надо написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.

Проверить, что все отпущенные по рецептам лекарства имеют признак "Рецептурный отпуск". Создать упорядоченные списки:

лекарства фирмы "Никомед", которые закончились;

лекарства, которые сегодня были отпущены по рецептам;

форм выпуска лекарства (лекарство – форма выпуска – общее количество в аптеке);