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

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

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

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

Добавлен: 30.11.2023

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

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

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


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

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

Представление "Остатки": название лекарства – форма выпуска – дозировка – минимальный запас – количество в аптеке (если количество меньше минимального запаса).

Представление "Фирмы, чьи лекарства отсутствуют в аптеке".

Представление "Рецептурный отпуск": полис – ФИО пациента – дата первого отпуска – дата последнего отпуска – общая сумма покупок.

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

Вариант 22.

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

1. Отношение "Врачи" (поля "Идентификатор" (ПК), "ФИО врача", "Должность", "Специализация", "Кабинет").

2. Отношение "Пациенты":

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

Тип

Длина

Дес.

Примечание

Регистрационный №

N

6

0

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

ФИО

C

40




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

Пол

C

1




значения – 'м' и 'ж', по умолчанию – 'м'

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

D







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

Номер полиса

C

15




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

Адрес

С

40




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

Телефон

С

11








3. Отношение "Визиты к врачу" (поля "Id" (ПК), "Врач" (ВнК), "Пациент" (ВнК), "Дата и время визита", "Диагноз").

4. Отношение "Назначения" (поля "Визит" (ВнК), "Назначение").

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

Проверить, что каждый врач принимает в день не более 20 пациентов. Посчитать количество диагнозов простудных заболеваний (ОРЗ, ОРВИ, грипп), поставленных за последнюю неделю. Создать упорядоченные списки:

визитов к врачам с указанием даты-времени, ФИО врача и ФИО пациента;

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

пациентов для всех терапевтов с указанием диагнозов.

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

Представление "Специализация клиники": диагноз – количество пациентов-мужчин – количество пациентов-женщин.

Представление "Пациенты врачей-хирургов" (все данные о пациентах).

Представление "Загруженность врачей разных специализаций": специализация – количество пациентов.

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

Вариант 23.

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

1. Отношение "Типы автомобилей" (поля "Тип" (ПК), "Класс", "Кол-во мест", "Базовая стоимость за 1 км пути").

2. Отношение "Транспортные средства (ТС)" (поля "Гос. номерной знак" (ПК), "Марка", "Тип" (ВнК), "Коэффициент к базовой стоимости").

3. Отношение "Водители" (поля "Id" (ПК), "ФИО", "Класс", "Номер ТС" (ВнК)).

4. Отношение "Рейсы":

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

Тип

Длина

Дес.

Примечание

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

N

6

0

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

Водитель

N

4

0

внешний ключ к таблице "Водители"

Пункт отправления

С

50




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

Пункт прибытия

С

50




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

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

D







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

Время прибытия

D







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

Длина маршрута, км

N

4

1

больше 0


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

Проверить, что рейсы каждого водителя не пересекаются по времени. Выдать для каждого водителя среднюю продолжительность поездки. Создать упорядоченные списки:

рейсов из определенного пункта отправления продолжительностью более 3-х часов;

рейсов, выполненных на определенном автомобиле;

водителей, которые за сегодня проехали более 300 км.

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

Представление "Водители, которые вчера не сделали ни одного рейса".

Представление "Статистика": дата – количество рейсов – средняя стоимость поездок – средняя длина поездок – средняя продолжительность поездки.

Представление "Стоимость поездок". Рассчитать стоимость каждой поездки в зависимости от длины маршрута: (базовая стоимость за 1 км пути)*(коэффициент к базовой стоимости)*(длина пути).

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

Вариант 24.

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

Отношение "Каталог книг":

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

Тип

Длина

Дес.

Примечание

Шифр издания

С

10




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

Название

С

80




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

Издательство

C

25




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

Год издания

N

4

0

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

Количество страниц

N

4

0




Примечание

C

40




по умолчанию – сборник


Отношение "Авторы" (поля "Id" (ПК), "Фамилия", "Имя", "Отчество").

Отношение "Произведения" (поля "Id" (ПК), "Название", "Тип" – роман, рассказ и т.п.).

Отношение "Авторы произведений" (поля "Произведение" (ВнК), "Автор" (ВнК)).

Отношение "Содержание" (поля "Книга" (ВнК), "Произведение" (ВнК), "Номер по порядку").

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

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

новых книг (за последние три года относительно текущей даты);

авторов с указанием количества произведений, написанных этим автором;

произведений, у которых нет авторов;

произведений, которые есть в двух и более книгах;

книг, в числе авторов которых есть Чехов А.П.

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

Представление "Романы" (книги, в каждой из которых опубликован один роман).

Представление "Активность авторов": автор – количество его произведений – количество книг, в которых опубликованы его произведения.

Представление "Авторы, не имеющие соавторов".

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

Вариант 25.

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

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

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

3. Отношение "Страхователи":

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

Тип

Длина

Дес.

Примечание

Номер страхового полиса

С

10

0

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

Паспортные данные

С

50




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

ФИО

С

40




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

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

D







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

Вид страхования

N

3

0

Внешний ключ к таблице "Виды страхования"

Сотрудник, заключивший договор

N

4

0

Внешний ключ к таблице "Сотрудники"

Дата заключения договора

D







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

Дата окончания договора

D







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

Сумма страховой премии

N

8

0

больше 0

Стоимость полиса

N

8




больше 0


4. Отношение "Страховые случаи" (поля "Страхователь" (ВнК), "Описание случая", "Дата наступления страхового случая", "Страховая выплата").

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

Проверить, что сумма страховых выплат не превышает страховой премии. Проверить, что первый страховой случай по каждому полису наступает не ранее чем через 6 дней после заключения договора страхования. Создать упорядоченные списки:

страхователей по видам страхования;

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

договоров страхования, для которых стоимость полиса не равна годовой стоимости полиса по данному виду страхования.

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

Представление "Кратковременное страхование" (с продолжительностью не более 2-х недель).

Представление "Доходы по видам страхования": вид страхования – год – количество полисов – суммарная стоимость полисов – сумма страховых выплат – доход.

Представление "Страховые выплаты": номер страхового полиса – вид страхования – сумма страховой премии – стоимость полиса – сумма страховых выплат – разница между стоимостью полиса и суммой страховых выплат.

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