Файл: Лабораторные работы по курсу "Базы данных" (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, то следует создать дополнительные отношения.